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

View differences:

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