Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.compat.cdc / org.gvsig.fmap.dal / org.gvsig.fmap.dal.file / org.gvsig.fmap.dal.file.shp / src / test / java / org / gvsig / fmap / dal / store / shp / TestSHP.java @ 40435

History | View | Annotate | Download (8.54 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
/*
24
* AUTHORS (In addition to CIT):
25
* 2008 IVER T.I. S.A.   {{Task}}
26
*/
27

    
28
package org.gvsig.fmap.dal.store.shp;
29

    
30
import java.io.File;
31
import java.util.Iterator;
32

    
33
import org.gvsig.fmap.dal.DataStoreParameters;
34
import org.gvsig.fmap.dal.exception.DataException;
35
import org.gvsig.fmap.dal.feature.BaseTestEditableFeatureStore;
36
import org.gvsig.tools.dispose.DisposableIterator;
37
import org.gvsig.fmap.dal.feature.EditableFeature;
38
import org.gvsig.fmap.dal.feature.Feature;
39
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
40
import org.gvsig.fmap.dal.feature.FeatureSet;
41
import org.gvsig.fmap.dal.feature.FeatureStore;
42
import org.gvsig.fmap.dal.feature.FeatureType;
43
import org.gvsig.fmap.dal.feature.NewFeatureStoreParameters;
44
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemServerExplorer;
45
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemServerExplorerParameters;
46
import org.gvsig.fmap.dal.store.dbf.DBFStoreParameters;
47
import org.gvsig.fmap.dal.store.dbf.DBFStoreProvider;
48

    
49
public class TestSHP extends BaseTestEditableFeatureStore {
50

    
51
        private FilesystemServerExplorer myExplorer;
52

    
53
        public static final File file_prueba = new File(TestSHP.class.getResource(
54
                        "data/prueba.shp").getFile());
55
        public static final File file_prueba_destino = new File(file_prueba
56
                        .getParent()
57
                        + File.separatorChar + "pruebaTemp.shp");
58
        public static final File file_pruebaNull = new File(TestSHP.class
59
                        .getResource("data/pruebaNull.shp").getFile());
60

    
61
        public static final File file_poly_valencia = new File(TestSHP.class
62
                        .getResource("data/poly-valencia.shp").getFile());
63

    
64
        public void testSimpleIteration() throws Exception {
65

    
66
                FeatureStore store = null;
67
                SHPStoreParameters shpParameters = null;
68

    
69
                shpParameters = (SHPStoreParameters) dataManager
70
                                .createStoreParameters(SHPStoreProvider.NAME);
71

    
72
                // shpParameters.setFile(file_poly_valencia);
73
                shpParameters.setFile(file_prueba);
74

    
75
                shpParameters.setCRS("EPSG:23030");
76

    
77
                store = (FeatureStore) dataManager.createStore(shpParameters);
78
                FeatureSet set;
79
                FeatureType type = store.getDefaultFeatureType();
80
                set = store.getFeatureSet();
81

    
82
                System.out.println("Num:" + set.getSize());
83
                DisposableIterator it = set.iterator();
84
                Iterator ftIt;
85
                FeatureAttributeDescriptor desc;
86

    
87
                int i = 0;
88
                Feature feature;
89
                while (it.hasNext()) {
90
                        ftIt = type.iterator();
91

    
92
                        feature = (Feature) it.next();
93
                        // while (ftIt.hasNext()) {
94
                        // desc = (FeatureAttributeDescriptor) ftIt.next();
95
                        // System.out.println(desc.getName() + ":"
96
                        // + feature.get(desc.getIndex()));
97
                        //
98
                        // }
99
                        // System.out.println(feature.get("NOMBRE"));
100
                        System.out.print(feature.getDefaultEnvelope() + "\t");
101
                        // System.out.print(feature.getDefaultGeometry() + "\t");
102
                        // System.out.println(feature.get("NOMBRE"));
103
                        System.out.println("row:" + i);
104
                        i++;
105

    
106

    
107
                }
108

    
109
                it.dispose();
110
                set.dispose();
111

    
112
                store.dispose();
113

    
114
        }
115

    
116
        public void testEditing(Object x) throws Exception {
117
                FeatureStore store = null;
118
                SHPStoreParameters shpParameters = null;
119

    
120
                shpParameters = (SHPStoreParameters) dataManager
121
                                .createStoreParameters(SHPStoreProvider.NAME);
122

    
123
                shpParameters.setFile(file_poly_valencia);
124

    
125
                store = (FeatureStore) dataManager.createStore(shpParameters);
126
                FeatureSet set;
127
                FeatureType type = store.getDefaultFeatureType();
128
                System.err.println("Antes de la edici?n");
129
                set = store.getFeatureSet();
130
                System.out.println("Num:" + set.getSize());
131
                DisposableIterator it = set.iterator();
132
                Iterator ftIt;
133
                FeatureAttributeDescriptor desc;
134

    
135
                int i = 0;
136
                Feature feature;
137
                while (it.hasNext()) {
138
                        ftIt = type.iterator();
139

    
140
                        feature = (Feature) it.next();
141
                        // while (ftIt.hasNext()) {
142
                        // desc = (FeatureAttributeDescriptor) ftIt.next();
143
                        // System.out.println(desc.getName() + ":"
144
                        // + feature.get(desc.getIndex()));
145
                        //
146
                        // }
147
                        // System.out.println(feature.get("NOMBRE"));
148
                        System.out.print(feature.getDefaultEnvelope() + "\t");
149
                        // System.out.print(feature.getDefaultGeometry() + "\t");
150
                        // System.out.println(feature.get("NOMBRE"));
151
                        System.out.println("row:" + i);
152
                        i++;
153

    
154

    
155
                }
156

    
157
                it.dispose();
158
                set.dispose();
159
                store.edit();
160
                EditableFeature ef = store.createNewFeature();
161
                store.insert(ef);
162
                store.finishEditing();
163
                System.err.println("Despu?s de la edici?n");
164
                set = store.getFeatureSet();
165
                System.out.println("Num:" + set.getSize());
166
                it = set.iterator();
167

    
168
                i = 0;
169
                while (it.hasNext()) {
170
                        ftIt = type.iterator();
171

    
172
                        feature = (Feature) it.next();
173
                        // while (ftIt.hasNext()) {
174
                        // desc = (FeatureAttributeDescriptor) ftIt.next();
175
                        // System.out.println(desc.getName() + ":"
176
                        // + feature.get(desc.getIndex()));
177
                        //
178
                        // }
179
                        // System.out.println(feature.get("NOMBRE"));
180
                        System.out.print(feature.getDefaultEnvelope() + "\t");
181
                        // System.out.print(feature.getDefaultGeometry() + "\t");
182
                        // System.out.println(feature.get("NOMBRE"));
183
                        System.out.println("row:" + i);
184
                        i++;
185

    
186

    
187
                }
188

    
189
                it.dispose();
190
                set.dispose();
191

    
192
                store.dispose();
193

    
194
        }
195

    
196
        public void testExport(Object x) throws Exception {
197
                DBFStoreParameters dbfParameters = null;
198

    
199
                dbfParameters = (DBFStoreParameters) dataManager
200
                                .createStoreParameters(DBFStoreProvider.NAME);
201

    
202
                dbfParameters.setFile(file_prueba);
203

    
204
                FeatureStore store = (FeatureStore) dataManager
205
                                .createStore(dbfParameters);
206
                FilesystemServerExplorerParameters explorerParams = (FilesystemServerExplorerParameters) dataManager
207
                                .createServerExplorerParameters(FilesystemServerExplorerParameters.DYNCLASS_NAME);
208
                explorerParams.setRoot(file_prueba.getParent());
209

    
210
                FilesystemServerExplorer explorer = (FilesystemServerExplorer) dataManager
211
                                .createServerExplorer(explorerParams);
212

    
213
                NewFeatureStoreParameters newParams = (NewFeatureStoreParameters) explorer
214
                                .getAddParameters(file_prueba_destino);
215

    
216
                store.export(explorer, DBFStoreProvider.NAME, newParams);
217

    
218
                FeatureStore result = (FeatureStore) dataManager.createStore(newParams);
219

    
220
                FeatureSet set = result.getFeatureSet();
221
                FeatureSet originalSet = store.getFeatureSet();
222
                assertEquals(set.getSize(), originalSet.getSize());
223

    
224
                DisposableIterator originalIter = originalSet.iterator();
225
                DisposableIterator iter = set.iterator();
226
                while (iter.hasNext()) {
227
                        assertEquals(originalIter.next(), iter.next());
228
                }
229

    
230
                originalIter.dispose();
231
                iter.dispose();
232
                result.dispose();
233
                explorer.remove(newParams);
234

    
235
        }
236

    
237
        /*
238
         * (non-Javadoc)
239
         *
240
         * @see
241
         * org.gvsig.fmap.dal.feature.BaseTestFeatureStore#getDefaultDataStoreParameters
242
         * ()
243
         */
244
        public DataStoreParameters getDefaultDataStoreParameters()
245
                        throws DataException {
246
                SHPStoreParameters shpParameters = (SHPStoreParameters) dataManager
247
                                .createStoreParameters(SHPStoreProvider.NAME);
248

    
249
                //                        shpParameters.setFile(file_poly_valencia);
250
                shpParameters.setFile(file_prueba);
251
                shpParameters.setCRS("EPSG:23030");
252
                return shpParameters;
253
        }
254

    
255
        /*
256
         * (non-Javadoc)
257
         *
258
         * @see org.gvsig.fmap.dal.feature.BaseTestFeatureStore#hasExplorer()
259
         */
260
        public boolean hasExplorer() {
261
                return true;
262
        }
263

    
264
        /*
265
         * (non-Javadoc)
266
         *
267
         * @seeorg.gvsig.fmap.dal.feature.BaseTestEditableFeatureStore#
268
         * getDefaultNewDataStoreParameters()
269
         */
270
        public NewFeatureStoreParameters getDefaultNewDataStoreParameters()
271
                        throws Exception {
272
                SHPStoreParameters parameters = (SHPStoreParameters) this
273
                                .getDefaultDataStoreParameters();
274

    
275
                if (this.myExplorer == null) {
276
                        FeatureStore store = (FeatureStore) dataManager
277
                                        .createStore(parameters);
278
                        myExplorer = (FilesystemServerExplorer) store.getExplorer();
279
                        store.dispose();
280
                }
281

    
282
                SHPNewStoreParameters result = (SHPNewStoreParameters) myExplorer
283
                                .getAddParameters(file_prueba_destino);
284

    
285
                result.setCRS(parameters.getCRS());
286
                return result;
287
        }
288

    
289
        public boolean usesResources() {
290
                return true;
291
        }
292

    
293
        public boolean resourcesNotifyChanges() {
294
                return true;
295
        }
296

    
297
}