Statistics
| Revision:

root / trunk / libraries / libRaster / src / org / gvsig / raster / dataset / io / features / WriteFileFormatFeatures.java @ 11981

History | View | Annotate | Download (5.41 KB)

1
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
2
 *
3
 * Copyright (C) 2007 IVER T.I. and Generalitat Valenciana.
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
18
 */
19
package org.gvsig.raster.dataset.io.features;
20

    
21
import org.gvsig.raster.RasterLibrary;
22
import org.gvsig.raster.dataset.IBuffer;
23
import org.gvsig.raster.dataset.Params;
24

    
25
/**
26
 * Caracteristicas de un formato de fichero utilizado para escritura. El contenido 
27
 * de esta clase es utilizado por el driver para informar de las caracteristicas de cada
28
 * formato. 
29
 *
30
 * 02-jun-2007
31
 * @author Nacho Brodin (nachobrodin@gmail.com)
32
 */
33
public class WriteFileFormatFeatures {
34
        private String                driverName = null;
35
        private String                ext = null;
36
        private int                        nBandsSupported = -1;
37
        private int[]                dataTypesSupported = new int[]{IBuffer.TYPE_BYTE};
38
        private Class                driver = null;
39
        protected Params        driverParams = new Params();
40
        
41
        /**
42
         * Constructor.
43
         * Asigna las caracteristicas del formato de escritura. El tipo de dato se inicializa por
44
         * defecto a solo byte. Si recibe como parametro un null el formato acepta por defecto el tipo
45
         * byte.
46
         * @param name Nombre del driver. En el caso de gdal debe coincidir con el nombre de driver de gdal
47
         * @param ext Extensi?n del fichero
48
         * @param bands N?mero de bandas m?ximas soportadas en la escritura. Si el valor es menor que 1 soporta cualquier n?mero.
49
         * @param dataTypes Array con el tipo de datos que soporta. Cada posici?n del array contiene un entero 
50
         * que corresponde con un tipo de dato soportado. Los tipo de datos posibles est?n listados como constante
51
         * en la clase IBuffer
52
         * @param driver Clase con el driver de la libreria de raster que gestiona el formato.
53
         */
54
        public WriteFileFormatFeatures(String name, String ext, int bands, int[] dataTypes, Class driver) {
55
                this.driverName = name;
56
                this.ext = ext;
57
                this.nBandsSupported = bands;
58
                if(dataTypes != null)
59
                        this.dataTypesSupported = dataTypes;
60
                this.driver = driver;
61
        }
62
        
63
        public WriteFileFormatFeatures() {
64
                
65
        }
66
        
67
         /**
68
     * Carga los par?metros comunes a todos los drivers en el objeto WriterParams.
69
     */
70
    public void loadParams() {
71
            driverParams.clear();
72
            
73
            driverParams.setParam(        "blocksize", 
74
                                                            String.valueOf(RasterLibrary.blockHeight), 
75
                                                            Params.CHOICE, 
76
                                                            new String[]{ "1", "8", "16", "32", "64", "128", "256", "512", "1024"});
77
            
78
            driverParams.setParam(        "georef", 
79
                                                                "true", 
80
                                                                Params.CHECK, 
81
                                                                null);
82
    }
83
    
84
    /**
85
     * Obtiene los par?metros del driver.
86
     * @return WriterParams
87
     */
88
    public Params getParams() {
89
                return driverParams;
90
        }
91
    
92
    /**
93
     * Asigna los par?metros del driver modificados por el cliente.
94
     * @param Params
95
     */
96
    public void setParams(Params params) {
97
                this.driverParams = params;
98
        }
99
    
100
        /**
101
         * Obtiene la clase del driver que gestiona la escritura de ese tipo de formato
102
         * @return Clase del driver
103
         */
104
        public Class getDriver() {
105
                return driver;
106
        }
107
        
108
        /**
109
         * Asigna la clase del driver que gestiona la escritura de ese tipo de formato
110
         * @param Clase del driver
111
         */
112
        public void setDriver(Class driver) {
113
                this.driver = driver;
114
        }
115
        
116
        /**
117
         * Obtiene una lista de los tipos de datos soportados. Estos est?n definidos como
118
         * constantes en IBuffer.
119
         * @return Lista con los tipos de datos soportados
120
         */
121
        public int[] getDataTypesSupported() {
122
                return dataTypesSupported;
123
        }
124
        
125
        /**
126
         * Asigna una lista de los tipos de datos soportados. Estos est?n definidos como
127
         * constantes en IBuffer.
128
         * @param Lista con los tipos de datos soportados
129
         */
130
        public void setDataTypesSupported(int[] dataTypesSupported) {
131
                this.dataTypesSupported = dataTypesSupported;
132
        }
133
        
134
        /**
135
         * Obtiene el nombre del driver. En el caso de gdal debe coincidir con el nombre de driver de gdal.
136
         * @return Nombre del driver
137
         */
138
        public String getDriverName() {
139
                return driverName;
140
        }
141
        
142
        /**
143
         * Asigna el nombre del driver. En el caso de gdal debe coincidir con el nombre de driver de gdal.
144
         * @return Nombre del driver
145
         */
146
        public void setDriverName(String driverName) {
147
                this.driverName = driverName;
148
        }
149
        
150
        /**
151
         * Obtiene la extensi?n del formato
152
         * @return Cadena con la extensi?n del formato
153
         */
154
        public String getExt() {
155
                return ext;
156
        }
157
        
158
        /**
159
         * Asigna la extensi?n del formato
160
         * @param ext Cadena con la extensi?n del formato
161
         */
162
        public void setExt(String ext) {
163
                this.ext = ext;
164
        }
165
        
166
        /**
167
         * Obtiene el n?mero de bandas soportadas o -1 si es cualquier n?mero de ellas
168
         * @return N?mero de bandas soportadas
169
         */
170
        public int getNBandsSupported() {
171
                return nBandsSupported;
172
        }
173
        
174
        /**
175
         * Asigna el n?mero de bandas soportadas o -1 si es cualquier n?mero de ellas
176
         * @param N?mero de bandas soportadas
177
         */
178
        public void setNBandsSupported(int bandsSupported) {
179
                nBandsSupported = bandsSupported;
180
        }
181
}