Revision 6492

View differences:

org.gvsig.raster/branches/org.gvsig.raster.2.4/org.gvsig.raster/org.gvsig.raster.gdal/org.gvsig.raster.gdal.provider/src/main/java/org/gvsig/raster/gdal/provider/AbstractRasterGdalStoreProvider.java
28 28
import org.cresques.cts.IProjection;
29 29
import org.gdal.gdal.Dataset;
30 30
import org.gdal.gdal.Driver;
31
import org.slf4j.Logger;
32
import org.slf4j.LoggerFactory;
33

  
31 34
import org.gvsig.fmap.dal.DataStoreNotification;
32 35
import org.gvsig.fmap.dal.DataStoreParameters;
33 36
import org.gvsig.fmap.dal.FileHelper;
......
37 40
import org.gvsig.fmap.dal.exception.OpenException;
38 41
import org.gvsig.fmap.dal.raster.api.BandAttributeDescriptor;
39 42
import org.gvsig.fmap.dal.raster.api.BandDescriptor;
43
import org.gvsig.fmap.dal.raster.api.BandQuery;
40 44
import org.gvsig.fmap.dal.raster.api.RasterQuery;
41 45
import org.gvsig.fmap.dal.raster.spi.AbstractRasterStoreProvider;
42 46
import org.gvsig.fmap.dal.resource.spi.ResourceConsumer;
......
66 70
import org.gvsig.tools.locator.LocatorException;
67 71
import org.gvsig.tools.task.SimpleTaskStatus;
68 72
import org.gvsig.tools.task.TaskStatusManager;
69
import org.slf4j.Logger;
70
import org.slf4j.LoggerFactory;
71 73

  
72 74
/**
73 75
 * Provider for Raster GDAL files
......
210 212
    @Override
211 213
    public Buffer createBuffer(RasterQuery rasterQuery) throws BufferException {
212 214

  
213
        BufferManager bufferManager=BufferLocator.getBufferManager();
214
        Buffer buffer =
215
            bufferManager.createBuffer(gdalDataSet.getRasterYSize(), gdalDataSet.getRasterXSize(),
216
                bandDataTypes, this.bandNoDatas, this.projection, envelope, this.pageManagers);
215
        BufferManager bufferManager = BufferLocator.getBufferManager();
217 216

  
217
        Buffer buffer = null;
218

  
219
        if (rasterQuery != null && !rasterQuery.getBands().isEmpty()) {
220
            List<BandQuery> bands;
221
            bands = rasterQuery.getBands();
222
            int bandDataTypes[];
223
            bandDataTypes = new int[bands.size()];
224
            NoData[] bandNoDatas = new NoData[bands.size()];
225
            List<PageManager> pageManagers = new ArrayList<PageManager>();
226

  
227
            int i=0;
228
            for (BandQuery bandQuery : bands) {
229
                int band = bandQuery.getBand();
230
                bandDataTypes[i] = this.bandDataTypes[band];
231
                bandNoDatas[i] = this.bandNoDatas[band];
232
                pageManagers.add(this.pageManagers.get(band));
233
                i++;
234
            }
235
            buffer =
236
                bufferManager.createBuffer(gdalDataSet.getRasterYSize(), gdalDataSet.getRasterXSize(), bandDataTypes,
237
                    bandNoDatas, this.projection, envelope, pageManagers);
238
        } else {
239
            buffer =
240
                bufferManager.createBuffer(gdalDataSet.getRasterYSize(), gdalDataSet.getRasterXSize(), this.bandDataTypes,
241
                    this.bandNoDatas, this.projection, this.envelope, this.pageManagers);
242
        }
243

  
218 244
        return buffer;
219 245
    }
220 246

  

Also available in: Unified diff