Revision 2438 org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/buffer/cache/CacheDataFromDriverServer.java
CacheDataFromDriverServer.java | ||
---|---|---|
24 | 24 |
import java.io.IOException; |
25 | 25 |
|
26 | 26 |
import org.gvsig.fmap.dal.coverage.RasterLocator; |
27 |
import org.gvsig.fmap.dal.coverage.datastruct.BandList; |
|
28 |
import org.gvsig.fmap.dal.coverage.datastruct.DatasetBand; |
|
29 | 27 |
import org.gvsig.fmap.dal.coverage.datastruct.Extent; |
30 |
import org.gvsig.fmap.dal.coverage.exception.BandNotFoundInListException; |
|
31 | 28 |
import org.gvsig.fmap.dal.coverage.exception.NotSupportedExtensionException; |
32 | 29 |
import org.gvsig.fmap.dal.coverage.exception.ProcessInterruptedException; |
30 |
import org.gvsig.fmap.dal.coverage.exception.QueryException; |
|
33 | 31 |
import org.gvsig.fmap.dal.coverage.exception.RasterDriverException; |
34 |
import org.gvsig.raster.impl.buffer.DefaultRasterQuery; |
|
35 |
import org.gvsig.raster.impl.datastruct.BandListImpl; |
|
36 |
import org.gvsig.raster.impl.datastruct.DatasetBandImpl; |
|
37 |
import org.gvsig.raster.impl.provider.DefaultRasterProvider; |
|
32 |
import org.gvsig.fmap.dal.coverage.store.RasterQuery; |
|
33 |
import org.gvsig.raster.impl.buffer.SpiRasterQuery; |
|
34 |
import org.gvsig.raster.impl.provider.AbstractRasterProvider; |
|
38 | 35 |
import org.gvsig.raster.impl.provider.RasterProvider; |
36 |
import org.gvsig.raster.impl.store.DefaultRasterStore; |
|
37 |
import org.slf4j.Logger; |
|
38 |
import org.slf4j.LoggerFactory; |
|
39 | 39 |
|
40 | 40 |
|
41 | 41 |
/** |
... | ... | |
49 | 49 |
* |
50 | 50 |
*/ |
51 | 51 |
public class CacheDataFromDriverServer implements ICacheDataSource { |
52 |
private Logger log = LoggerFactory.getLogger(CacheDataFromDriverServer.class); |
|
53 |
private AbstractRasterProvider provider = null; |
|
54 |
private Extent pageExtent = null; |
|
52 | 55 |
|
53 |
private DefaultRasterProvider dataset = null; |
|
54 |
private Extent pageExtent = null; |
|
55 |
|
|
56 | 56 |
/** |
57 | 57 |
* Constructor. |
58 | 58 |
* Crea el identificador para todos los trozos de cach? que se guardar?n en disco. |
... | ... | |
63 | 63 |
* @throws NotSupportedExtensionException |
64 | 64 |
*/ |
65 | 65 |
public CacheDataFromDriverServer(RasterProvider provider, int numPag, Extent extent) { |
66 |
if(provider instanceof DefaultRasterProvider)
|
|
67 |
this.dataset = (DefaultRasterProvider)dataset;
|
|
66 |
if(provider instanceof AbstractRasterProvider)
|
|
67 |
this.provider = (AbstractRasterProvider)provider;
|
|
68 | 68 |
pageExtent = extent; |
69 | 69 |
} |
70 | 70 |
|
71 |
/* (non-Javadoc) |
|
72 |
* @see org.gvsig.fmap.dataaccess.cache.ICacheDataSource#loadPage(int, org.gvsig.fmap.dataaccess.cache.PageBuffer) |
|
73 |
*/ |
|
74 | 71 |
public void loadPage(PageBandBuffer pageBuffer) throws ProcessInterruptedException { |
75 | 72 |
//Creamos un BandList con todas las bandas del fichero |
76 |
BandList bandList = new BandListImpl(); |
|
77 |
for(int i = 0; i < dataset.getBandCount();i++) {
|
|
73 |
/*BandList bandList = new BandListImpl();
|
|
74 |
for(int i = 0; i < provider.getBandCount();i++) {
|
|
78 | 75 |
try { |
79 |
DatasetBand band = new DatasetBandImpl(dataset.getURIByBand(i), i, dataset.getDataType()[i], dataset.getBandCount());
|
|
76 |
DatasetBand band = new DatasetBandImpl(provider.getURIByBand(i), i, provider.getDataType()[i], provider.getBandCount());
|
|
80 | 77 |
bandList.addBand(band, i); |
81 | 78 |
} catch(BandNotFoundInListException ex) { |
82 | 79 |
//No a?adimos la banda |
83 | 80 |
} |
84 |
} |
|
81 |
}*/
|
|
85 | 82 |
try { |
86 |
DefaultRasterQuery q = (DefaultRasterQuery)RasterLocator.getManager().createQuery(); |
|
87 |
q.setBBox(pageExtent); |
|
88 |
q.setType(DefaultRasterQuery.TYPE_COORDS); |
|
89 |
q.setBandList(bandList); |
|
90 |
q.setBuffer(pageBuffer); |
|
91 |
q.setAdjustToExtent(true); |
|
92 |
dataset.getDataSet(q); |
|
83 |
DefaultRasterStore store = new DefaultRasterStore(); |
|
84 |
store.setProvider(provider); |
|
85 |
|
|
86 |
RasterQuery q = RasterLocator.getManager().createQuery(); |
|
87 |
q.setAreaOfInterest(pageExtent, pageBuffer.getWidth(), pageBuffer.getHeight()); |
|
88 |
q.setAllDrawableBands(); |
|
89 |
q.setBufferForProviders(pageBuffer); |
|
90 |
|
|
91 |
provider.getDataSet((SpiRasterQuery)q); |
|
93 | 92 |
//dataset.getWindow(pageExtent, bandList, pageBuffer); |
94 | 93 |
} catch (RasterDriverException e) { |
94 |
log.debug("Error loading the PageBandBuffer", e); |
|
95 |
} catch (QueryException e) { |
|
96 |
log.debug("Error loading the PageBandBuffer", e); |
|
95 | 97 |
} |
96 | 98 |
} |
97 | 99 |
|
98 |
/* (non-Javadoc) |
|
99 |
* @see org.gvsig.fmap.dataaccess.cache.ICacheDataSource#savePage(int, org.gvsig.fmap.dataaccess.cache.PageBuffer) |
|
100 |
*/ |
|
101 | 100 |
public void savePage(PageBandBuffer pageBuffer) throws IOException { |
102 | 101 |
//Read Only |
103 | 102 |
} |
104 | 103 |
|
105 |
/* |
|
106 |
* (non-Javadoc) |
|
107 |
* @see org.gvsig.raster.dataaccess.cache.ICacheDataSource#delete() |
|
108 |
*/ |
|
109 | 104 |
public void delete() { |
110 | 105 |
//Read Only |
111 | 106 |
} |
112 | 107 |
|
113 |
/* |
|
114 |
* (non-Javadoc) |
|
115 |
* @see org.gvsig.raster.dataaccess.cache.ICacheDataSource#getPath() |
|
116 |
*/ |
|
117 | 108 |
public String getPath() { |
118 |
if(dataset != null)
|
|
119 |
return dataset.getURIOfFirstProvider();
|
|
109 |
if(provider != null)
|
|
110 |
return provider.getURIOfFirstProvider();
|
|
120 | 111 |
return null; |
121 | 112 |
} |
122 | 113 |
} |
Also available in: Unified diff