Revision 2259 org.gvsig.raster.ermapper/branches/org.gvsig.raster.ermapper_dataaccess_refactoring/org.gvsig.raster.ermapper.io/src/main/java/org/gvsig/raster/ermapper/io/ErmapperProvider.java

View differences:

ErmapperProvider.java
22 22
package org.gvsig.raster.ermapper.io;
23 23

  
24 24
import java.awt.geom.AffineTransform;
25
import java.awt.geom.NoninvertibleTransformException;
26 25
import java.awt.geom.Point2D;
27 26
import java.io.BufferedReader;
28 27
import java.io.File;
......
49 48
import org.gvsig.fmap.dal.spi.DataManagerProviderServices;
50 49
import org.gvsig.fmap.dal.spi.DataStoreProviderServices;
51 50
import org.gvsig.metadata.MetadataLocator;
52
import org.gvsig.raster.cache.tile.provider.TileListener;
53 51
import org.gvsig.raster.cache.tile.provider.TileServer;
52
import org.gvsig.raster.impl.buffer.SpiRasterQuery;
54 53
import org.gvsig.raster.impl.datastruct.ExtentImpl;
55 54
import org.gvsig.raster.impl.process.RasterTask;
56 55
import org.gvsig.raster.impl.process.RasterTaskQueue;
57
import org.gvsig.raster.impl.provider.DefaultRasterProvider;
56
import org.gvsig.raster.impl.provider.AbstractRasterProvider;
58 57
import org.gvsig.raster.impl.provider.RasterProvider;
59 58
import org.gvsig.raster.impl.provider.tile.FileTileServer;
60 59
import org.gvsig.raster.impl.store.AbstractRasterDataParameters;
60
import org.gvsig.raster.impl.store.DefaultRasterStore;
61 61
import org.gvsig.raster.impl.store.DefaultStoreFactory;
62 62
import org.gvsig.raster.impl.store.properties.DataStoreColorInterpretation;
63 63
import org.gvsig.raster.impl.store.properties.DataStoreTransparency;
......
74 74
 *
75 75
 * @author Nacho Brodin (nachobrodin@gmail.com)
76 76
 */
77
public class ErmapperProvider extends DefaultRasterProvider implements JNCSProgressiveUpdate {
77
public class ErmapperProvider extends AbstractRasterProvider implements JNCSProgressiveUpdate {
78 78
	//private static final Logger           logger                   = LoggerFactory.getLogger(ErmapperProvider.class);
79 79
	public static String                  NAME                     = "Ermapper Store";
80 80
	public static String                  DESCRIPTION              = "Ermapper Raster file";
......
251 251
		return null;
252 252
	}
253 253

  
254
	/*
255
	 * (non-Javadoc)
256
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#load()
257
	 */
258 254
	public RasterProvider load() {
259 255
		ownTransformation = new AffineTransform(file.cellIncrementX, 0, 0, file.cellIncrementY, file.originX, file.originY);
260 256
		externalTransformation = (AffineTransform) ownTransformation.clone();
261 257
		return this;
262 258
	}
263 259
	
264
	/*
265
	 * (non-Javadoc)
266
	 * @see org.gvsig.raster.impl.provider.RasterProvider#isOpen()
267
	 */
268 260
	public boolean isOpen() {
269 261
		return open;
270 262
	}
271 263

  
272
	/*
273
	 * (non-Javadoc)
274
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#close()
275
	 */
276 264
	public void close() {
277 265
		if(file != null) {
278 266
			open = false;
......
283 271
		}
284 272
	}
285 273

  
286
	/*
287
	 * (non-Javadoc)
288
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getTransparency()
289
	 */
290 274
	public Transparency getTransparency() {
291 275
		if(fileTransparency == null)
292 276
			fileTransparency = new DataStoreTransparency();
293 277
		return fileTransparency;
294 278
	}
295 279

  
296
	/*
297
	 * (non-Javadoc)
298
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getWidth()
299
	 */
300 280
	public double getWidth() {
301 281
		return file.width;
302 282
	}
303 283

  
304
	/*
305
	 * (non-Javadoc)
306
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getHeight()
307
	 */
308 284
	public double getHeight() {
309 285
		return file.height;
310 286
	}
311 287

  
312
	/*
313
	 * (non-Javadoc)
314
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getView()
315
	 */
316 288
	public Extent getView() {
317 289
		return viewRequest;
318 290
	}
319 291

  
320
	/*
321
	 * (non-Javadoc)
322
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#setView(org.gvsig.fmap.dal.coverage.datastruct.Extent)
323
	 */
324 292
	public void setView(Extent e) {
325 293
		viewRequest = new ExtentImpl(e);
326 294
	}
327 295
	
328
	/*
329
	 * (non-Javadoc)
330
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getWindowRaster(double, double, double, double, int, int, org.gvsig.fmap.dal.coverage.datastruct.BandList, org.gvsig.raster.cache.tile.provider.TileListener)
331
	 */
332
	public void getWindow(Extent ex, int bufWidth, int bufHeight, 
333
			BandList bandList, TileListener listener, TaskStatus status)throws ProcessInterruptedException, RasterDriverException {
334
		 
296
	@Override
297
	public void loadBuffer(SpiRasterQuery query)
298
			throws ProcessInterruptedException, RasterDriverException {
299
		setView(query.getAdjustedRequestBoundingBox());
300
		int bufWidth = query.getAdjustedBufWidth();
301
		int bufHeight = query.getAdjustedBufHeight();
302
		int[] stpBuffer = new int[]{0, 0 , bufWidth, bufHeight};
303
		loadBuffer(viewRequest, 
304
				bufWidth, 
305
				bufHeight, 
306
				query.getBufferForProviders(), 
307
				query.getBandList(), 
308
				stpBuffer, 
309
				query.getTaskStatus());
335 310
	}
311
	
336 312

  
337
	/*
338
	 * (non-Javadoc)
339
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getWindowRaster(double, double, double, double, org.gvsig.fmap.dal.coverage.datastruct.BandList, org.gvsig.fmap.dal.coverage.dataset.Buffer)
340
	 */
341
	public Buffer getWindow(Extent ex, BandList bandList, Buffer rasterBuf, TaskStatus status) 
313
	/*public Buffer getWindow(Extent ex, BandList bandList, Buffer rasterBuf, TaskStatus status) 
342 314
		throws ProcessInterruptedException, RasterDriverException {
343 315
		
344 316
		if(status != null && status.isCancelled())
......
368 340
			return null;
369 341
		
370 342
		return rasterBuf;
371
	}
343
	}*/
372 344

  
373
	/*
374
	 * (non-Javadoc)
375
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getWindowRaster(double, double, double, double, org.gvsig.fmap.dal.coverage.datastruct.BandList, org.gvsig.fmap.dal.coverage.dataset.Buffer, boolean)
376
	 */
377
	public Buffer getWindow(double ulx, double uly, double w, double h, 
345
	/*public Buffer getWindow(double ulx, double uly, double w, double h, 
378 346
			BandList bandList, Buffer rasterBuf, boolean adjustToExtent, TaskStatus status) throws ProcessInterruptedException, RasterDriverException {
379 347
		//El incremento o decremento de las X e Y depende de los signos de rotaci?n y escala en la matriz de transformaci?n. Por esto
380 348
		//tenemos que averiguar si lrx es x + w o x -w, asi como si lry es y + h o y - h
......
420 388
			return null;
421 389
		
422 390
		return rasterBuf;
423
	}
391
	}*/
424 392

  
425
	/*
426
	 * (non-Javadoc)
427
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getWindowRaster(double, double, double, double, int, int, org.gvsig.fmap.dal.coverage.datastruct.BandList, org.gvsig.fmap.dal.coverage.dataset.Buffer, boolean)
428
	 */
429
	public Buffer getWindow(Extent extent, int bufWidth, int bufHeight,
393
	/*public Buffer getWindow(Extent extent, int bufWidth, int bufHeight,
430 394
			BandList bandList, Buffer rasterBuf, boolean adjustToExtent, TaskStatus status) throws ProcessInterruptedException, RasterDriverException {
431 395
		
432 396
		if(status != null && status.isCancelled())
......
460 424
			return null;
461 425
		
462 426
		return rasterBuf;
463
	}
427
	}*/
464 428
	
465
	/*
466
	 * (non-Javadoc)
467
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getWindowRaster(int, int, int, int, int, int, org.gvsig.fmap.dal.coverage.datastruct.BandList, org.gvsig.fmap.dal.coverage.dataset.Buffer)
468
	 */
469
	public Buffer getWindow(int x, int y, int w, int h, 
429
	/*public Buffer getWindow(int x, int y, int w, int h, 
470 430
			BandList bandList, Buffer rasterBuf, TaskStatus status) throws ProcessInterruptedException, RasterDriverException {
471 431
		
472 432
		if(status != null && status.isCancelled())
......
484 444
			return null;
485 445
		
486 446
		return rasterBuf;
487
	}
447
	}*/
488 448

  
489 449
	/**
490 450
	 * Carga el buffer con las bandas RGB del raster con los par?metros especificados de extensi?n
......
714 674
	public void reProject(ICoordTrans rp) {
715 675
	}
716 676

  
717
	/*
718
	 * (non-Javadoc)
719
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getBlockSize()
720
	 */
721 677
	public int getBlockSize() {
722 678
		return 0;
723 679
	}
724 680

  
725
	/*
726
	 * (non-Javadoc)
727
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#readCompleteLine(int, int)
728
	 */
729 681
	public Object readCompleteLine(int line, int band) throws InvalidSetViewException, FileNotOpenException, RasterDriverException {
730 682
		if(line < 0 || line >= file.height || band < 0 || band >= getBandCount())
731 683
			throw new InvalidSetViewException("Request out of grid");
......
783 735
		return null;
784 736
	}
785 737

  
786
	/*
787
	 * (non-Javadoc)
788
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#readBlock(int, int)
789
	 */
790 738
	public Object readBlock(int pos, int blockHeight, double scale) throws InvalidSetViewException, FileNotOpenException, RasterDriverException, ProcessInterruptedException {
791 739
		RasterTask task = RasterTaskQueue.get(Thread.currentThread().getId() + "");
792 740
		if(pos < 0)
......
849 797
		return buf;
850 798
	}
851 799

  
852
	/*
853
	 * (non-Javadoc)
854
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getData(int, int, int)
855
	 */
856 800
	public Object getData(int x, int y, int band)throws InvalidSetViewException, FileNotOpenException, RasterDriverException {
857 801
		if(x < 0 || y < 0 || x >= file.width || y >= file.height)
858 802
			throw new InvalidSetViewException("Request out of grid");
......
893 837
		}
894 838
	}
895 839

  
896
	/*
897
	 * (non-Javadoc)
898
	 * @see com.ermapper.ecw.JNCSProgressiveUpdate#refreshUpdate(int, int, double, double, double, double)
899
	 */
900 840
	public void refreshUpdate(int arg0, int arg1, double arg2, double arg3, double arg4, double arg5) {
901 841
	}
902 842

  
903
	/*
904
	 * (non-Javadoc)
905
	 * @see com.ermapper.ecw.JNCSProgressiveUpdate#refreshUpdate(int, int, int, int, int, int)
906
	 */
907 843
	public void refreshUpdate(int arg0, int arg1, int arg2, int arg3, int arg4, int arg5) {
908 844
	}
909 845

  
910
	/*
911
	 * (non-Javadoc)
912
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getColorInterpretation()
913
	 */
914 846
	public DataStoreColorInterpretation getColorInterpretation(){
915 847
		if(colorInterpr == null) {
916 848
			colorInterpr = new DataStoreColorInterpretation();
......
926 858
		return colorInterpr;
927 859
	}
928 860

  
929
	/*
930
	 * (non-Javadoc)
931
	 * @see org.gvsig.raster.impl.provider.RasterProvider#getOverviewCount(int)
932
	 */
933 861
	public int getOverviewCount(int band) throws BandAccessException, RasterDriverException {
934 862
		if(band >= getBandCount())
935 863
			throw new BandAccessException("Wrong band");
936 864
		return 0;
937 865
	}
938 866

  
939
	/*
940
	 * (non-Javadoc)
941
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getOverviewWidth(int, int)
942
	 */
943 867
	public int getOverviewWidth(int band, int overview) throws BandAccessException, RasterDriverException {
944 868
		if (band >= getBandCount())
945 869
			throw new BandAccessException("Wrong band");
946 870
		return 0;
947 871
	}
948 872

  
949
	/*
950
	 * (non-Javadoc)
951
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getOverviewHeight(int, int)
952
	 */
953 873
	public int getOverviewHeight(int band, int overview) throws BandAccessException, RasterDriverException {
954 874
		if (band >= getBandCount())
955 875
			throw new BandAccessException("Wrong band");
956 876
		return 0;
957 877
	}
958 878

  
959
	/*
960
	 * (non-Javadoc)
961
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#isOverviewsSupported()
962
	 */
963 879
	public boolean isOverviewsSupported() {
964 880
		return false;
965 881
	}
......
969 885
		return file.projection;
970 886
	}
971 887

  
972
	/*
973
	 * (non-Javadoc)
974
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#getWktProjection()
975
	 */
976 888
	public String getWktProjection() {
977 889
		return null;
978 890
	}
979 891
	
980
	/*
981
	 * (non-Javadoc)
982
	 * @see org.gvsig.fmap.dal.spi.DataStoreProvider#getName()
983
	 */
984 892
	public String getName() {
985 893
		return NAME;
986 894
	}
987 895
	
988
	/*
989
	 * (non-Javadoc)
990
	 * @see org.gvsig.raster.impl.provider.RasterProvider#setStatus(org.gvsig.raster.impl.provider.RasterProvider)
991
	 */
992 896
	public void setStatus(RasterProvider provider) {
993 897
		if(provider instanceof ErmapperProvider) {
994 898
			//Not implemented yet
995 899
		}
996 900
	}
997 901
	
998
	/*
999
	 * (non-Javadoc)
1000
	 * @see org.gvsig.raster.impl.provider.DefaultRasterProvider#isSupersamplingSupported()
1001
	 */
1002 902
	public boolean isSupersamplingSupported() {
1003 903
		return false;
1004 904
	}
1005 905
	
1006
	/*
1007
	 * (non-Javadoc)
1008
	 * @see org.gvsig.raster.impl.provider.RasterProvider#getTileServer()
1009
	 */
1010 906
	public TileServer getTileServer() {
1011
		if(tileServer == null)
1012
			tileServer = new FileTileServer(this);
907
		if(tileServer == null) {
908
			DefaultRasterStore store = new DefaultRasterStore();
909
			store.setProvider(this);
910
			tileServer = new FileTileServer(store);
911
		}
1013 912
		return tileServer;
1014 913
	}
1015
	
1016 914
}

Also available in: Unified diff