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 @ 40559

History | View | Annotate | Download (8.58 KB)

1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
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 3
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
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
/*
25
* AUTHORS (In addition to CIT):
26
* 2008 IVER T.I. S.A.   {{Task}}
27
*/
28

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

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

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

    
50
public class TestSHP extends BaseTestEditableFeatureStore {
51

    
52
        private FilesystemServerExplorer myExplorer;
53

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

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

    
65
        public void testSimpleIteration() throws Exception {
66

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

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

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

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

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

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

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

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

    
107

    
108
                }
109

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

    
113
                store.dispose();
114

    
115
        }
116

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

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

    
124
                shpParameters.setFile(file_poly_valencia);
125

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

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

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

    
155

    
156
                }
157

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

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

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

    
187

    
188
                }
189

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

    
193
                store.dispose();
194

    
195
        }
196

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

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

    
203
                dbfParameters.setFile(file_prueba);
204

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

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

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

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

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

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

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

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

    
236
        }
237

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

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

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

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

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

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

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

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

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

    
298
}