Revision 6302 org.gvsig.raster/branches/org.gvsig.raster.2.4/org.gvsig.raster/org.gvsig.fmap.dal.file.jimi/src/main/java/org/gvsig/fmap/dal/file/jimi/JimiRasterStoreProvider.java
JimiRasterStoreProvider.java | ||
---|---|---|
33 | 33 |
import java.util.ArrayList; |
34 | 34 |
import java.util.Hashtable; |
35 | 35 |
import java.util.List; |
36 |
import java.util.Map; |
|
36 | 37 |
|
37 | 38 |
import org.apache.commons.io.FileUtils; |
38 | 39 |
import org.apache.commons.io.FilenameUtils; |
... | ... | |
49 | 50 |
import org.gvsig.fmap.dal.exception.OpenException; |
50 | 51 |
import org.gvsig.fmap.dal.exception.ReadException; |
51 | 52 |
import org.gvsig.fmap.dal.exception.ValidateDataParametersException; |
53 |
import org.gvsig.fmap.dal.raster.api.BandAttributeDescriptor; |
|
54 |
import org.gvsig.fmap.dal.raster.api.BandDescriptor; |
|
55 |
import org.gvsig.fmap.dal.raster.api.BandQuery; |
|
52 | 56 |
import org.gvsig.fmap.dal.raster.api.RasterQuery; |
53 | 57 |
import org.gvsig.fmap.dal.raster.spi.AbstractRasterStoreProvider; |
54 | 58 |
import org.gvsig.fmap.dal.resource.ResourceAction; |
... | ... | |
66 | 70 |
import org.gvsig.metadata.MetadataLocator; |
67 | 71 |
import org.gvsig.metadata.MetadataManager; |
68 | 72 |
import org.gvsig.metadata.exceptions.MetadataException; |
73 |
import org.gvsig.raster.lib.buffer.api.BandInfo; |
|
69 | 74 |
import org.gvsig.raster.lib.buffer.api.Buffer; |
70 | 75 |
import org.gvsig.raster.lib.buffer.api.BufferLocator; |
71 | 76 |
import org.gvsig.raster.lib.buffer.api.BufferManager; |
... | ... | |
169 | 174 |
private JimiRasterStoreProviderParameters getJimiParameters() { |
170 | 175 |
return (JimiRasterStoreProviderParameters) this.getParameters(); |
171 | 176 |
} |
177 |
|
|
178 |
@Override |
|
179 |
public BandDescriptor getBandDescriptor(int band) { |
|
180 |
if(band > this.getBands()){ |
|
181 |
throw new IllegalArgumentException("Invalid band"); |
|
182 |
} |
|
183 |
return getStoreServices().createBandDescriptor(band, |
|
184 |
new ArrayList<BandAttributeDescriptor>()); |
|
185 |
} |
|
186 |
|
|
187 |
@Override |
|
188 |
public int getBands() { |
|
189 |
return image.bands; |
|
190 |
} |
|
172 | 191 |
|
173 | 192 |
@Override |
174 | 193 |
public Buffer createBuffer(RasterQuery rasterQuery) throws BufferException { |
175 |
BufferManager bufferManager=BufferLocator.getBufferManager(); |
|
176 |
int[] bandDataTypes=new int[image.bands]; |
|
177 |
NoData[] bandNoData=new NoData[image.bands]; |
|
178 |
List<PageManager> pageManagers=new ArrayList<PageManager>(); |
|
179 |
for (int band=0;band<image.bands;band++){ |
|
180 |
bandDataTypes[band]=image.dataType; |
|
181 |
bandNoData[band]=null; |
|
194 |
|
|
195 |
BufferManager bufferManager = BufferLocator.getBufferManager(); |
|
196 |
List<BandQuery> bands = rasterQuery.getBands(); |
|
197 |
int[] bandDataTypes = new int[bands.size()]; |
|
198 |
NoData[] bandNoData = new NoData[bands.size()]; |
|
199 |
|
|
200 |
List<PageManager> pageManagers = new ArrayList<PageManager>(); |
|
201 |
for (BandQuery bandQuery : bands) { |
|
202 |
int band = bandQuery.getBand(); |
|
203 |
bandDataTypes[band] = image.dataType; |
|
204 |
bandNoData[band] = null; |
|
182 | 205 |
pageManagers.add(new MemoryImageBandPageManager(image, band)); |
183 | 206 |
} |
184 | 207 |
|
185 |
Buffer buffer=bufferManager.createBuffer(image.rows, image.columns, bandDataTypes, bandNoData, projection, envelope, pageManagers); |
|
208 |
Buffer buffer = |
|
209 |
bufferManager.createBuffer(image.rows, image.columns, bandDataTypes, bandNoData, |
|
210 |
projection, envelope, pageManagers); |
|
186 | 211 |
|
187 | 212 |
return buffer; |
188 | 213 |
} |
214 |
|
|
215 |
@Override |
|
216 |
public BandInfo getBandInfo(int band) { |
|
217 |
return null; |
|
218 |
} |
|
189 | 219 |
|
190 |
|
|
191 | 220 |
@Override |
192 | 221 |
public DataServerExplorer getExplorer() |
193 | 222 |
throws ReadException, ValidateDataParametersException { |
... | ... | |
258 | 287 |
if (getJimiParameters().getWldParams()!=null){ |
259 | 288 |
envelope=createWLDEnvelope(getJimiParameters().getWldParams()); |
260 | 289 |
}else{ |
261 |
envelope = GeometryLocator.getGeometryManager().createEnvelope(0, 0, image.columns, image.rows, Geometry.SUBTYPES.GEOM2D); |
|
290 |
envelope = |
|
291 |
GeometryLocator.getGeometryManager().createEnvelope(0, 0, |
|
292 |
image.columns, image.rows, Geometry.SUBTYPES.GEOM2D); |
|
262 | 293 |
} |
263 | 294 |
|
264 | 295 |
resource.notifyClose(); |
... | ... | |
496 | 527 |
} |
497 | 528 |
} |
498 | 529 |
|
499 |
|
|
500 | 530 |
public MemoryImage getMemoryImage(){ |
501 | 531 |
return image; |
502 | 532 |
} |
Also available in: Unified diff