Revision 11284

View differences:

trunk/libraries/libRaster/src/org/gvsig/raster/dataset/IDataWriter.java
25 25
 * @author Nacho Brodin (nachobrodin@gmail.com)
26 26
 */
27 27
public interface IDataWriter {
28
	/**
29
	 * Para el tipo de datos ARGB (32 bits en un solo entero) obtiene un array que representa 
30
	 * los datos le?dos. Este array se obtendr? de la fuente de datos
31
	 * asociada al renderizador y sera de ancho sizeX y alto sizeY. Es el propio renderizador
32
	 * el encargado de llevar la posici?n de la ?ltima l?nea le?da para la siguiente petici?n
33
	 * ofrecer datos a partir de donde se quedo.
34
	 * @param sizeX Ancho del bloque de datos
35
	 * @param sizeY Alto del bloque de datos
36
	 * @return Array con los datos leidos
37
	 */
28 38
	public int[] readARGBData(int sizeX, int sizeY, int nBand);
29 39
	
40
	/**
41
	 * Para el tipo de datos byte obtiene un array bidimensional donde la primera dimensi?n
42
	 * son las bandas y la segunda los datos. Este array se obtendra de la fuente de datos
43
	 * asociada al renderizador y sera de ancho sizeX y alto sizeY. Es el propio renderizador
44
	 * el encargado de llevar la posici?n de la ?ltima l?nea le?da para la siguiente petici?n
45
	 * ofrecer datos a partir de donde se quedo.
46
	 * @param sizeX Ancho del bloque de datos
47
	 * @param sizeY Alto del bloque de datos
48
	 * @return Array bidimensionar de numero de bandas por datos leidos
49
	 */
30 50
    public byte[][] readByteData(int sizeX, int sizeY);
51
	/**
52
	 * Para el tipo de datos short obtiene un array bidimensional donde la primera dimensi?n
53
	 * son las bandas y la segunda los datos. Este array se obtendra de la fuente de datos
54
	 * asociada al renderizador y sera de ancho sizeX y alto sizeY. Es el propio renderizador
55
	 * el encargado de llevar la posici?n de la ?ltima l?nea le?da para la siguiente petici?n
56
	 * ofrecer datos a partir de donde se quedo.
57
	 * @param sizeX Ancho del bloque de datos
58
	 * @param sizeY Alto del bloque de datos
59
	 * @return Array bidimensionar de numero de bandas por datos leidos
60
	 */
31 61
    public short[][] readShortData(int sizeX, int sizeY);
62
	/**
63
	 * Para el tipo de datos int obtiene un array bidimensional donde la primera dimensi?n
64
	 * son las bandas y la segunda los datos. Este array se obtendra de la fuente de datos
65
	 * asociada al renderizador y sera de ancho sizeX y alto sizeY. Es el propio renderizador
66
	 * el encargado de llevar la posici?n de la ?ltima l?nea le?da para la siguiente petici?n
67
	 * ofrecer datos a partir de donde se quedo.
68
	 * @param sizeX Ancho del bloque de datos
69
	 * @param sizeY Alto del bloque de datos
70
	 * @return Array bidimensionar de numero de bandas por datos leidos
71
	 */
32 72
    public int[][] readIntData(int sizeX, int sizeY);
73
	/**
74
	 * Para el tipo de datos float obtiene un array bidimensional donde la primera dimensi?n
75
	 * son las bandas y la segunda los datos. Este array se obtendra de la fuente de datos
76
	 * asociada al renderizador y sera de ancho sizeX y alto sizeY. Es el propio renderizador
77
	 * el encargado de llevar la posici?n de la ?ltima l?nea le?da para la siguiente petici?n
78
	 * ofrecer datos a partir de donde se quedo.
79
	 * @param sizeX Ancho del bloque de datos
80
	 * @param sizeY Alto del bloque de datos
81
	 * @return Array bidimensionar de numero de bandas por datos leidos
82
	 */
33 83
    public float[][] readFloatData(int sizeX, int sizeY);
84
	/**
85
	 * Para el tipo de datos double obtiene un array bidimensional donde la primera dimensi?n
86
	 * son las bandas y la segunda los datos. Este array se obtendra de la fuente de datos
87
	 * asociada al renderizador y sera de ancho sizeX y alto sizeY. Es el propio renderizador
88
	 * el encargado de llevar la posici?n de la ?ltima l?nea le?da para la siguiente petici?n
89
	 * ofrecer datos a partir de donde se quedo.
90
	 * @param sizeX Ancho del bloque de datos
91
	 * @param sizeY Alto del bloque de datos
92
	 * @return Array bidimensionar de numero de bandas por datos leidos
93
	 */
34 94
    public double[][] readDoubleData(int sizeX, int sizeY);
35 95
}
trunk/libraries/libRaster/src/org/gvsig/raster/dataset/io/GdalWriter.java
106 106
     * @param drvType        Tipo de driver
107 107
     */
108 108
    public GdalWriter(String fileName) {
109
    	ident = fileName.toLowerCase().substring(fileName.lastIndexOf(".") + 1); 
109
    	ident = RasterUtilities.getExtensionFromFileName(fileName);
110 110
    	driver = (String)typeList.get(ident);
111 111
    	
112 112
    	loadParams();
trunk/libraries/libRaster/src/org/gvsig/raster/dataset/GeoRasterWriter.java
28 28

  
29 29
import org.gvsig.raster.RasterLibrary;
30 30
import org.gvsig.raster.shared.Extent;
31
import org.gvsig.raster.util.RasterUtilities;
31 32
import org.gvsig.raster.util.extensionPoints.ExtensionPoint;
32 33
import org.gvsig.raster.util.extensionPoints.ExtensionPoints;
33 34
import org.gvsig.raster.util.extensionPoints.ExtensionPointsSingleton;
......
173 174
	 * @return GeoRasterWriter, o null si hay problemas.
174 175
	 */
175 176
	public static GeoRasterWriter getWriter(String fName) throws NotSupportedExtensionException, RasterDriverException {
176
		String ext = fName.toLowerCase().substring(fName.lastIndexOf('.')+1);
177
		String ext = RasterUtilities.getExtensionFromFileName(fName);
177 178
		GeoRasterWriter grw = null;
178 179
		
179 180
		ExtensionPoints extensionPoints = ExtensionPointsSingleton.getInstance();
trunk/libraries/libRaster/src/org/gvsig/raster/buffer/BufferFactory.java
161 161
		return  mDataset.getDatasetCount();
162 162
	}
163 163
	
164
	/*
165
	 *  (non-Javadoc)
166
	 * @see org.gvsig.fmap.dataaccess.IQueryableRaster#getGeoRasterMultiFile()
164
	/**
165
	 * Obtiene la estructura que contiene la lista de ficheros del Grid
166
	 * @return GeoRasterMultiFile
167 167
	 */
168 168
	public RasterMultiDataset getGeoRasterMultiFile() {
169 169
		return mDataset;
......
187 187
		palette = null;
188 188
	}
189 189
	
190
	/*
191
	 *  (non-Javadoc)
192
	 * @see org.gvsig.fmap.dataaccess.IQueryableRaster#addDrawableBands(int[])
190
	/**
191
	 * Para este GeoRasterFile asigna que bandas se pintaran
192
	 * sobre el RasterBuf cuando se haga un update. Cada posici?n del vector es una banda
193
	 * del rasterBuf y el contenido de esa posici?n es la banda de la imagen que se dibujar?
194
	 * sobre ese RasterBuf.
195
	 * @param drawableBands	Array con las bandas a dibujar.
196
	 * @return array con tantos elementos como bandas a dibujar. El valor contenido es el fichero del 
197
	 * dataset multifichero al que corresponde la banda.
193 198
	 */
194 199
	public int[] addDrawableBands(int[] drawableBands) {
195 200
		this.drawableBands = drawableBands;
......
209 214
		return files;
210 215
	}
211 216

  
212
	/*
213
	 *  (non-Javadoc)
214
	 * @see org.gvsig.fmap.dataaccess.IQueryableRaster#setAllDrawableBands()
217
	/**
218
	 * Para este GeoRasterFile asigna que bandas se pintaran
219
	 * sobre el RasterBuf cuando se haga un update. Cada posici?n del vector es una banda
220
	 * del rasterBuf y el contenido de esa posici?n es la banda de la imagen que se dibujar?
221
	 * sobre ese RasterBuf. Esta llamada asigna todas las bandas dibujables en su orden natural.
222
	 * @return array con tantos elementos como bandas a dibujar. El valor contenido es el fichero del 
223
	 * dataset multifichero al que corresponde la banda.
215 224
	 */
216 225
	public int[] setAllDrawableBands() {
217 226
		clearDrawableBand();
......
229 238
		return files;
230 239
	}
231 240

  
232
	/*
233
	 *  (non-Javadoc)
234
	 * @see org.gvsig.fmap.dataaccess.IQueryableRaster#getDrawableBands()
241
	/**
242
	 * Obtiene el array que contiene el orden de bandas. Cada posici?n del vector es una banda
243
	 * del rasterBuf y el contenido de esa posici?n es la banda de la imagen que se dibujar?
244
	 * sobre ese RasterBuf.
245
	 * @return Array de enteros con el orden de las badas
235 246
	 */
236 247
	public int[] getDrawableBands() {
237 248
		return drawableBands;
......
409 420
		return width;
410 421
	}
411 422

  
412
	/*
413
	 *  (non-Javadoc)
414
	 * @see org.gvsig.fmap.dataaccess.IQueryableRaster#getXCellSize()
423
	/**
424
	 * Tama?o de celda en X
425
	 * @return 
415 426
	 */
416 427
	public double getXCellSize() {
417 428

  
......
422 433
		
423 434
	}
424 435

  
425
	/*
426
	 *  (non-Javadoc)
427
	 * @see org.gvsig.fmap.dataaccess.IQueryableRaster#getYCellSize()
436
	/**
437
	 * Tama?o de celda en Y
438
	 * @return
428 439
	 */
429 440
	public double getYCellSize() {
430 441

  
431 442
		return 0;
432 443
	}
433 444

  
434
	/*
435
	 *  (non-Javadoc)
436
	 * @see org.gvsig.fmap.dataaccess.IQueryableRaster#isNoData(int, int, int)
445
	/**
446
	 * Devuelve true si la celda contiene un valor de NODATA
447
	 * @param x	coordenada X
448
	 * @param y coordenada Y
449
	 * @return
437 450
	 */
438 451
	public boolean isNoData(int x, int y, int band) {
439 452

  
......
452 465
		return 0D;
453 466
	}
454 467

  
455
	/*
456
	 *  (non-Javadoc)
457
	 * @see org.gvsig.fmap.dataaccess.IQueryableRaster#setDataType(int)
468
	/**
469
	 * Asigna tipo de datos del raster
470
	 * @see java.awt.image.DataBuffer
458 471
	 */
459 472
	public void setDataType(int dt) {
460 473
		
461 474
	}
462 475
	
463
	/*
464
	 *  (non-Javadoc)
465
	 * @see org.gvsig.fmap.dataaccess.IQueryableRaster#getBandCount()
476
	/**
477
	 * Obtiene el n?mero de bandas
478
	 * @return N?mero de bandas
466 479
	 */
467 480
	public int getBandCount() {
468 481
		if(rasterBuf != null)
......
495 508
		return mDataset.getExtent();
496 509
	}
497 510

  
498
	/*
499
	 *  (non-Javadoc)
500
	 * @see org.gvsig.fmap.dataaccess.IQueryableRaster#getData(int, int, int, int)
511
	/**
512
	 * Obtiene un buffer desde la posici?n x,y en pixeles de ancho w y alto h
513
	 * @param x Coordenada x de la esquina superior izquierda
514
	 * @param y Coordenada y de la esquina superior izquierda
515
	 * @param w Ancho del grid
516
	 * @param h Alto del grid
517
	 * @return Buffer de datos
501 518
	 */
502 519
	public RasterBuffer getData(int x, int y, int w, int h) {
503 520
		return null;
504 521
	}
505 522

  
506
	/*
507
	 *  (non-Javadoc)
508
	 * @see org.gvsig.fmap.dataaccess.IQueryableRaster#getCoordsGeoTransformFile()
523
	/**
524
	 * Obtiene las coordenadas del fichero worldFile (o cabecera del raster) asociado 
525
	 * o el RMF en caso de que existan. Si la imagen no est? georreferenciada tendr?
526
	 * las coordenadas pixel de la misma 
527
	 * @return Array de seis valores:
528
	 * 	<TABLE BORDER="1">
529
	 * 	<TR><TD><B>0:</B></TD><TD>Valor X de la esquina superior izquierda.</TD></TR>
530
	 * 	<TR><TD><B>1:</B></TD><TD>Tama?o de pixel en X.</TD></TR>
531
	 * 	<TR><TD><B>2:</B></TD><TD>Shearing en X.</TD></TR>
532
	 * 	<TR><TD><B>3:</B></TD><TD>Valor Y de la esquina superior izquierda.</TD></TR>
533
	 * 	<TR><TD><B>4:</B></TD><TD>Shearing en Y.</TD></TR>
534
	 * 	<TR><TD><B>5:</B></TD><TD>Tama?o de pixel en Y.</TD></TR>
535
	 * 	</TABLE>
509 536
	 */
510 537
	public double[] getCoordsGeoTransformFile() {
511 538
		return mDataset.getCoordsGeoTransformFile();		
512 539
	}
513 540
	
514
	/*
515
	 *  (non-Javadoc)
516
	 * @see org.gvsig.fmap.dataaccess.IQueryableRaster#getLastSelectedView()
541
	/**
542
	 * Obtiene el extent de la ?ltima selecci?n hecha con alguna de las llamadas
543
	 * setAreaOfInterest. Este extent es devuelto en coordenadas reales con las transformaciones
544
	 * que se hayan aplicado sobre el/los dataset.
545
	 * @return Extent Coordenadas reales que representan el ?ltimo ?rea de datos
546
	 * solicitada.
517 547
	 */
518 548
	public Extent getLastSelectedView() {
519 549
		return mDataset.getLastSelectedView();
......
527 557
		return dataExtent;
528 558
	}
529 559
	
530
	/*
531
	 * (non-Javadoc)
532
	 * @see org.gvsig.fmap.dataaccess.IQueryableRaster#getPalettes()
560
	/**
561
	 * Obtiene la lista de paletas asociadas a las bandas cargadas en el DataSource
562
	 * @return Lista con las paletas o null si no hay ninguna asocida. Un nulo en una
563
	 * posici?n del array tambi?n indicar? que para esa banda no hay paletas asociadas.
533 564
	 */
534 565
	public DatasetPalette[] getPalettes() {
535 566
		return palette;
trunk/libraries/libRaster/src/org/gvsig/raster/buffer/IQueryableRaster.java
26 26

  
27 27
/**
28 28
 * Interfaz que deben implementar las clases que sirven datos y tienen posibilidad
29
 * de consulta. Tipicamente en gvSIG es implementado por DataSource que ofrecer?
30
 * sus datos a trav?s de un RasterBuffer y su interfaz IBuffer.
29
 * de consulta. 
31 30
 * 
32 31
 * @author Nacho Brodin (nachobrodin@gmail.com)
33 32
 *
......
39 38
	public final static int INTERPOLATION_InverseDistance	= 3;
40 39
	public final static int INTERPOLATION_BicubicSpline		= 4;
41 40
	public final static int INTERPOLATION_BSpline			= 5;
42

  
43
	/**
44
	 * Obtiene el ancho de la imagen
45
	 * @return  Ancho en pixeles de la imagen
46
	 */
47
	public int getWidth();
48 41
	
49 42
	/**
50
	 * Obtiene el alto de la imagen
51
	 * @return  Alto en pixeles de la imagen
43
	 * Consulta si una capa est? siendo tileada o no
44
	 * @return true si est? siendo tileada y false si no lo est?
52 45
	 */
53
	public int getHeight();
46
	public boolean isTiled();
54 47
	
55 48
	/**
56
	 * Tama?o de celda en X
57
	 * @return 
49
	 * Obtiene el tama?o del tile si la capa est? siendo tileada. Esta funci?n e fundamentalmente
50
	 * usada por salvar a raster donde se consulta el tama?o del tile para hacer bandas de ese ancho.
51
	 * @return array con dos enteros que representan el ancho y el alto del tile
58 52
	 */
59
	public double getXCellSize();
53
	public int[] getTileSize();
60 54
	
61
	/**
62
	 * Tama?o de celda en Y
63
	 * @return
64
	 */
65
	public double getYCellSize();
66
	
67
	/**
68
	 * Asigna el ?rea de interes en coordenadas del mundo real. Si las coordenadas exceden del tama?o de la imagen
69
	 * estas coordenadas son ajustadas el extent.
70
	 * @param x Coordenada X, esquina superior izquierda
71
	 * @param y Coordenada Y, esquina superior izquierda
72
	 * @param w Ancho del ?rea 
73
	 * @param h Alto del ?rea
74
	 * @param adjustToExtent Flag que dice si el extent solicitado debe ajustarse al extent del raster o no.
75
	 * @throws ArrayIndexOutOfBoundsException
76
	 */
77
	public void setAreaOfInterest(double x, double y, double w, double h, boolean adjustToExtent) throws ArrayIndexOutOfBoundsException;
78
	
79
	/**
80
	 * Asigna el ?rea de interes en coordenadas pixel. Si las coordenadas exceden del tama?o de la imagen
81
	 * lanza una excepci?n.
82
	 * @param x Coordenada X, esquina superior izquierda
83
	 * @param y Coordenada Y, esquina superior izquierda
84
	 * @param w Ancho del ?rea 
85
	 * @param h Alto del ?rea
86
	 * @throws ArrayIndexOutOfBoundsException
87
	 */
88
	public void setAreaOfInterest(int x, int y, int w, int h) throws ArrayIndexOutOfBoundsException;
89
	
90
	/**
91
	 * Asigna el ?rea de inter?s a toda la extensi?n del raster.
92
	 */
93
	public void setAreaOfInterest();
94
	
95
	/**
96
	 * Asigna el ?rea de interes en coordenadas pixel. Esta operaci?n cargar? un RasterBuffer con los datos solicitados por
97
	 * lo que, si al acabar hacemos getRasterBuf obtendremos la matriz de datos. Si las coordenadas exceden del tama?o 
98
	 * de la imagen lanza una excepci?n.
99
	 * @param x Coordenada X, esquina superior izquierda
100
	 * @param y Coordenada Y, esquina superior izquierda
101
	 * @param w Ancho del ?rea 
102
	 * @param h Alto del ?rea
103
	 * @param bufWidth Ancho del buffer
104
	 * @param bufHeight Alto del buffer
105
	 * @throws ArrayIndexOutOfBoundsException
106
	 */
107
	public void setAreaOfInterest(int x, int y, int w, int h, int bufWidth, int bufHeight) throws ArrayIndexOutOfBoundsException;
108
	
109
	/**
110
	 * Asigna el ?rea de interes en coordenadas del mundo real. Si las coordenadas exceden del tama?o de la imagen
111
	 * estas coordenadas son ajustadas el extent.
112
	 * @param x Coordenada X, esquina superior izquierda
113
	 * @param y Coordenada Y, esquina superior izquierda
114
	 * @param w Ancho del ?rea 
115
	 * @param h Alto del ?rea
116
	 * @param bufWidth Ancho del buffer
117
	 * @param bufHeight Alto del buffer
118
	 * @param adjustToExtent Flag que dice si el extent solicitado debe ajustarse al extent del raster o no. 
119
	 * @return En caso de que el buffer sea mayor que el tama?o seleccionado de raster se produce supersampleo. La funci?n devuelve
120
	 * un array de dos elementos que representan el desplazamiento en pixels de X e Y de la esquina superior izquierda. 
121
	 * @throws ArrayIndexOutOfBoundsException
122
	 */
123
	public int[] setAreaOfInterest(double minX, double minY, double maxX, double maxY, int bufWidth, int bufHeight, boolean adjustToExtent) throws ArrayIndexOutOfBoundsException;
124
	
125
	/**
126
	 * Obtiene un buffer desde la posici?n x,y en pixeles de ancho w y alto h
127
	 * @param x Coordenada x de la esquina superior izquierda
128
	 * @param y Coordenada y de la esquina superior izquierda
129
	 * @param w Ancho del grid
130
	 * @param h Alto del grid
131
	 * @return Buffer de datos
132
	 */
133
	public RasterBuffer getData(int x, int y, int w, int h);
134
	
135
	/**
136
	 * Devuelve el tipo de datos del raster
137
	 * @see java.awt.image.DataBuffer
138
	 */
139
	public int getDataType();
140

  
141
	/**
142
	 * Asigna tipo de datos del raster
143
	 * @see java.awt.image.DataBuffer
144
	 */
145
	public void setDataType(int dt);
146

  
147
	/**
148
	 * Devuelve true si la celda contiene un valor de NODATA
149
	 * @param x	coordenada X
150
	 * @param y coordenada Y
151
	 * @return
152
	 */
153
	public boolean isNoData(int x, int y, int band);
154
	
155
	/**
156
	 * Obtiene el n?mero de bandas
157
	 * @return N?mero de bandas
158
	 */
159
	public int getBandCount();
160
	
161
	/**
162
	 * Obtiene el buffer de datos del grid
163
	 * @return RasterBuf
164
	 */
165
	public IBuffer getRasterBuf();
166
	
167
	/**
168
	 * Para este GeoRasterFile asigna que bandas se pintaran
169
	 * sobre el RasterBuf cuando se haga un update. Cada posici?n del vector es una banda
170
	 * del rasterBuf y el contenido de esa posici?n es la banda de la imagen que se dibujar?
171
	 * sobre ese RasterBuf.
172
	 * @param drawableBands	Array con las bandas a dibujar.
173
	 * @return array con tantos elementos como bandas a dibujar. El valor contenido es el fichero del 
174
	 * dataset multifichero al que corresponde la banda.
175
	 */
176
	public int[] addDrawableBands(int[] drawableBands);
177
	
178
	/**
179
	 * Para este GeoRasterFile asigna que bandas se pintaran
180
	 * sobre el RasterBuf cuando se haga un update. Cada posici?n del vector es una banda
181
	 * del rasterBuf y el contenido de esa posici?n es la banda de la imagen que se dibujar?
182
	 * sobre ese RasterBuf. Esta llamada asigna todas las bandas dibujables en su orden natural.
183
	 * @return array con tantos elementos como bandas a dibujar. El valor contenido es el fichero del 
184
	 * dataset multifichero al que corresponde la banda.
185
	 */
186
	public int[] setAllDrawableBands();
187
	
188
	/**
189
	 * Obtiene el array que contiene el orden de bandas. Cada posici?n del vector es una banda
190
	 * del rasterBuf y el contenido de esa posici?n es la banda de la imagen que se dibujar?
191
	 * sobre ese RasterBuf.
192
	 * @return Array de enteros con el orden de las badas
193
	 */
194
	public int[] getDrawableBands();
195
	
196
	/**
197
	 * Obtiene el extent de la fuente de datos
198
	 * @return Extent
199
	 */
200
	public Extent getExtent();
201
	
202
	/**
203
	 * Obtiene el extent correspondiente a los datos cargados en el buffer
204
	 * @return Extent
205
	 */
206
	public Extent getDataExtent();
207
	
208
	/**
209
	 * Obtiene las coordenadas del fichero worldFile (o cabecera del raster) asociado 
210
	 * o el RMF en caso de que existan. Si la imagen no est? georreferenciada tendr?
211
	 * las coordenadas pixel de la misma 
212
	 * @return Array de seis valores:
213
	 * 	<TABLE BORDER="1">
214
	 * 	<TR><TD><B>0:</B></TD><TD>Valor X de la esquina superior izquierda.</TD></TR>
215
	 * 	<TR><TD><B>1:</B></TD><TD>Tama?o de pixel en X.</TD></TR>
216
	 * 	<TR><TD><B>2:</B></TD><TD>Shearing en X.</TD></TR>
217
	 * 	<TR><TD><B>3:</B></TD><TD>Valor Y de la esquina superior izquierda.</TD></TR>
218
	 * 	<TR><TD><B>4:</B></TD><TD>Shearing en Y.</TD></TR>
219
	 * 	<TR><TD><B>5:</B></TD><TD>Tama?o de pixel en Y.</TD></TR>
220
	 * 	</TABLE>
221
	 */
222
	public double[] getCoordsGeoTransformFile();
223
	
224
	/**
225
	 * Obtiene el extent de la ?ltima selecci?n hecha con alguna de las llamadas
226
	 * setAreaOfInterest. Este extent es devuelto en coordenadas reales con las transformaciones
227
	 * que se hayan aplicado sobre el/los dataset.
228
	 * @return Extent Coordenadas reales que representan el ?ltimo ?rea de datos
229
	 * solicitada.
230
	 */
231
	public Extent getLastSelectedView();
232
	
233
	/**
234
	 * Obtiene la estructura que contiene la lista de ficheros del Grid
235
	 * @return GeoRasterMultiFile
236
	 */
237
	public RasterMultiDataset getGeoRasterMultiFile();
238
	
239
	/**
240
	 * Obtiene la lista de paletas asociadas a las bandas cargadas en el DataSource
241
	 * @return Lista con las paletas o null si no hay ninguna asocida. Un nulo en una
242
	 * posici?n del array tambi?n indicar? que para esa banda no hay paletas asociadas.
243
	 */
244
	public DatasetPalette[] getPalettes();
245
	
246 55
}
trunk/libraries/libRaster/src/org/gvsig/raster/util/RasterUtilities.java
521 521
		return "";
522 522
    }
523 523
    
524
    /**
525
     * Obtiene la extensi?n del fichero a partir de su nombre.
526
     * @param file Nombre o ruta del fichero
527
     * @return Cadena con la extensi?n que representa el tipo de fichero.
528
     */
529
    public static String getExtensionFromFileName(String file) {
530
    	return file.toLowerCase().substring(file.lastIndexOf(".") + 1);
531
    }
532
    
524 533
    //---------------------------------------------------------------
525 534
    //VARIOS
526 535
    

Also available in: Unified diff