Statistics
| Revision:

gvsig-raster / org.gvsig.raster / trunk / org.gvsig.raster / org.gvsig.raster.lib / org.gvsig.raster.lib.impl / src / main / java / org / gvsig / raster / impl / store / AbstractNewRasterStoreParameters.java @ 1028

History | View | Annotate | Download (9.17 KB)

1
/* gvSIG. Geographic Information System of the Valencian Government
2
*
3
* Copyright (C) 2007-2008 Infrastructures and Transports Department
4
* of the Valencian Government (CIT)
5
*
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
9
* of the License, or (at your option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
* MA  02110-1301, USA.
20
*
21
*/
22

    
23
package org.gvsig.raster.impl.store;
24

    
25
import java.awt.geom.AffineTransform;
26
import java.io.File;
27

    
28
import org.cresques.cts.IProjection;
29
import org.gvsig.fmap.dal.coverage.dataset.Buffer;
30
import org.gvsig.fmap.dal.coverage.datastruct.Params;
31
import org.gvsig.fmap.dal.coverage.store.parameter.NewRasterStoreParameters;
32
import org.gvsig.tools.ToolsLocator;
33
import org.gvsig.tools.dynobject.DelegatedDynObject;
34
import org.gvsig.tools.dynobject.DynClass;
35
import org.gvsig.tools.dynobject.DynField;
36
import org.gvsig.tools.dynobject.DynObjectManager;
37

    
38
/**
39
 * This class represents parameters that we need to create a new
40
 * raster source.
41
 *
42
 * @author Nacho Brodin (nachobrodin@gmail.com)
43
 */
44
public abstract class AbstractNewRasterStoreParameters extends AbstractRasterFileDataParameters
45
        implements NewRasterStoreParameters {
46
        public static final String         DYNCLASS_NAME               = "NewRasterStoreParameters";
47
        protected DelegatedDynObject       delegatedDynObject          = null;
48
        private static DynClass            DYNCLASS                    = null;
49
        private Buffer                     buffer                      = null;
50
        private int                        percent                     = 0;
51
        
52
        public AbstractNewRasterStoreParameters() {
53
                super();
54
                initialize();
55
        }
56
        
57
        public static void registerDynClass() {
58
                   DynObjectManager dynman = ToolsLocator.getDynObjectManager();
59
            DynClass dynClass = dynman.get(DYNCLASS_NAME);
60
            DynField field;
61
            if (dynClass == null) {
62
                    dynClass = dynman.add(DYNCLASS_NAME);
63
                    
64
//                    field = dynClass.addDynField(FIELD_BUFFER);
65
//                    field.setDescription("Data buffer");
66
//                    field.setClassOfValue(Object.class);
67
//                    field.setMandatory(false);
68

    
69
                    field = dynClass.addDynField(FIELD_SRS);
70
                    field.setDescription("SRS");
71
                    field.setClassOfValue(Object.class);
72
                    field.setMandatory(false);
73

    
74
                    field = dynClass.addDynField(FIELD_PARAMS);
75
                    field.setDescription("Driver parameters");
76
                    field.setClassOfValue(Object.class);
77
                    field.setMandatory(false);
78

    
79
                    field = dynClass.addDynFieldInt(FIELD_BAND);
80
                    field.setDescription("band");
81
                    field.setClassOfValue(Integer.class);
82
                    field.setMandatory(false);
83
                    
84
                    field = dynClass.addDynFieldString(FIELD_WKT);
85
            field.setDescription("");
86
            field.setMandatory(false);
87
            field.setClassOfValue(String.class);
88
            
89
            field = dynClass.addDynFieldArray(FIELD_COLORINTERPRETATION);
90
            field.setDescription("Color interpretation by band");
91
            field.setMandatory(false);
92
            field.setClassOfValue(String.class);
93
            
94
            field = dynClass.addDynFieldString(FIELD_AFFINETRANSFORM);
95
                    field.setDescription("Affine transform");
96
                    field.setClassOfValue(String.class);
97
                    field.setMandatory(false);
98
                    
99
                    field = dynClass.addDynFieldString(FIELD_URI);
100
                    field.setDescription("Uniform Resource Identifier (File name or URL)");
101
                    field.setClassOfValue(String.class);
102
                    field.setMandatory(false);
103
                    
104
            DYNCLASS = dynClass;
105
            }
106
                
107
        }
108
        
109
        protected void initialize() {
110
                this.delegatedDynObject = (DelegatedDynObject) ToolsLocator
111
                                .getDynObjectManager().createDynObject(
112
                                                DYNCLASS);
113
        }
114
        
115
        protected DelegatedDynObject getDelegatedDynObject() {
116
                return this.delegatedDynObject;
117
        }
118
        
119
        /*
120
         * (non-Javadoc)
121
         * @see org.gvsig.fmap.dal.coverage.store.parameter.NewRasterStoreParameters#getBuffer()
122
         */
123
        public Buffer getBuffer() {
124
                return buffer;
125
        }
126

    
127
        /*
128
         * (non-Javadoc)
129
         * @see org.gvsig.fmap.dal.coverage.store.parameter.NewRasterStoreParameters#getColorInterpretation()
130
         */
131
        public String[] getColorInterpretation() {
132
                return (String[])getDynValue(FIELD_COLORINTERPRETATION);
133
        }
134

    
135
        /*
136
         * (non-Javadoc)
137
         * @see org.gvsig.fmap.dal.coverage.store.parameter.NewRasterStoreParameters#getFileName()
138
         */
139
        public String getFileName() {
140
                String s = getFile().toString();
141
                int n = s.lastIndexOf(File.separator);
142
                if(n >= 0)
143
                        return s.substring(n + 1, s.length());
144
                return s;
145
        }
146
        
147
        /*
148
         * (non-Javadoc)
149
         * @see org.gvsig.fmap.dal.coverage.store.parameter.NewRasterStoreParameters#getPath()
150
         */
151
        public String getPath() {
152
                String s = getFile().toString();
153
                int n = s.lastIndexOf(File.separator);
154
                if(n >= 0)
155
                        return s.substring(0, n);
156
                return s;
157
        }
158
        
159
        /*
160
         * (non-Javadoc)
161
         * @see org.gvsig.fmap.dal.coverage.store.parameter.NewRasterStoreParameters#getProjection()
162
         */
163
        public IProjection getProjection() {
164
                return (IProjection) getDynValue(FIELD_SRS);
165
        }
166
        
167
        /*
168
         * (non-Javadoc)
169
         * @see org.gvsig.fmap.dal.coverage.store.parameter.NewRasterStoreParameters#getDriverParams()
170
         */
171
        public Params getDriverParams() {
172
                return (Params)getDynValue(FIELD_PARAMS);
173
        }
174
        
175
        /*
176
         * (non-Javadoc)
177
         * @see org.gvsig.fmap.dal.coverage.store.parameter.NewRasterStoreParameters#setDriverParams(org.gvsig.fmap.dal.coverage.datastruct.Params)
178
         */
179
        public void setDriverParams(Params params) {
180
                this.setDynValue(FIELD_PARAMS, params);
181
        }
182
        
183
        /*
184
         * (non-Javadoc)
185
         * @see org.gvsig.fmap.dal.coverage.store.parameter.NewRasterStoreParameters#setBuffer(org.gvsig.fmap.dal.coverage.dataset.Buffer)
186
         */
187
        public void setBuffer(Buffer buffer) {
188
                this.buffer = buffer;
189
        }
190
        
191
        /*
192
         * (non-Javadoc)
193
         * @see org.gvsig.fmap.dal.coverage.store.parameter.NewRasterStoreParameters#getBand()
194
         */
195
        public int getBand() {
196
                if(getDynValue(FIELD_BAND) == null)
197
                        return -1;
198
                return (Integer)getDynValue(FIELD_BAND);
199
        }
200
        
201
        /*
202
         * (non-Javadoc)
203
         * @see org.gvsig.fmap.dal.coverage.store.parameter.NewRasterStoreParameters#setBand(int)
204
         */
205
        public void setBand(int n) {
206
                this.setDynValue(FIELD_BAND, n);
207
        }
208
        
209
        /*
210
         * (non-Javadoc)
211
         * @see org.gvsig.fmap.dal.coverage.store.parameter.NewRasterStoreParameters#setAffineTransform(java.awt.geom.AffineTransform)
212
         */
213
        public void setAffineTransform(AffineTransform at) {
214
                StringBuilder str = new StringBuilder();
215
                str.append(at.getScaleX());
216
                str.append(",");
217
                str.append(at.getShearX());
218
                str.append(",");
219
                str.append(at.getShearY());
220
                str.append(",");
221
                str.append(at.getScaleY());
222
                str.append(",");
223
                str.append(at.getTranslateX());
224
                str.append(",");
225
                str.append(at.getTranslateY());
226
                this.setDynValue(FIELD_AFFINETRANSFORM, str);
227
        }
228
        
229
        /*
230
         * (non-Javadoc)
231
         * @see org.gvsig.fmap.dal.coverage.store.parameter.NewRasterStoreParameters#getAffineTransform()
232
         */
233
        public AffineTransform getAffineTransform() {
234
                if(getDynValue(FIELD_AFFINETRANSFORM) != null) {
235
                        String str = (String)getDynValue(FIELD_AFFINETRANSFORM);
236
                        String[] values = str.split(",");
237
                        return new AffineTransform(
238
                                        new Double(values[0]), 
239
                                        new Double(values[1]), 
240
                                        new Double(values[2]), 
241
                                        new Double(values[3]), 
242
                                        new Double(values[4]), 
243
                                        new Double(values[5]));
244
                }
245
                return null;
246
        }
247
        
248
        /*
249
         * (non-Javadoc)
250
         * @see org.gvsig.fmap.dal.coverage.store.parameter.NewRasterStoreParameters#setWktProjection(java.lang.String)
251
         */
252
        public void setWktProjection(String wkt) {
253
                this.setDynValue(FIELD_WKT, wkt);
254
        }
255
        
256
        /*
257
         * (non-Javadoc)
258
         * @see org.gvsig.fmap.dal.coverage.store.parameter.NewRasterStoreParameters#getWktProjection()
259
         */
260
        public String getWktProjection() {
261
                return (String)getDynValue(FIELD_WKT);
262
        }
263

    
264
        /*
265
         * (non-Javadoc)
266
         * @see org.gvsig.fmap.dal.coverage.store.parameter.NewRasterStoreParameters#setColorInterpretation(java.lang.String[])
267
         */
268
        public void setColorInterpretation(String[] colorInterpretation) {
269
                this.setDynValue(FIELD_COLORINTERPRETATION, colorInterpretation);
270
        }
271

    
272
        /*
273
         * (non-Javadoc)
274
         * @see org.gvsig.fmap.dal.coverage.store.parameter.NewRasterStoreParameters#setDestination(java.lang.String, java.lang.String)
275
         */
276
        public void setDestination(String path, String fileName) {
277
                this.setFile(new File(path, fileName));
278
        }
279

    
280
        /*
281
         * (non-Javadoc)
282
         * @see org.gvsig.fmap.dal.coverage.store.parameter.NewRasterStoreParameters#setProjection(org.cresques.cts.IProjection)
283
         */
284
        public void setProjection(IProjection projection) {
285
                this.setDynValue(FIELD_SRS, projection);
286
        }
287
        
288
        public boolean isValid() {
289
                if(getFileName() == null)
290
                        return false;
291
                return true;
292
        }
293
        
294
        /*
295
         * (non-Javadoc)
296
         * @see org.gvsig.fmap.dal.coverage.store.parameter.NewRasterStoreParameters#setPercent(int)
297
         */
298
        public void setPercent(int n) {
299
                this.percent = n;
300
        }
301
        
302
        /*
303
         * (non-Javadoc)
304
         * @see org.gvsig.fmap.dal.coverage.store.parameter.NewRasterStoreParameters#getPercent()
305
         */
306
        public int getPercent() {
307
                return percent;
308
        }
309
}