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

History | View | Annotate | Download (8.62 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
package org.gvsig.fmap.dal.store.shp;
26

    
27
import java.io.File;
28
import java.util.Iterator;
29

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

    
46
public class TestSHP extends BaseTestEditableFeatureStore {
47

    
48
        private FilesystemServerExplorer myExplorer;
49

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

    
58
        public static final File file_poly_valencia = new File(TestSHP.class
59
                        .getResource("data/poly-valencia.shp").getFile());
60

    
61
        public void testSimpleIteration() throws Exception {
62

    
63
                FeatureStore store = null;
64
                SHPStoreParameters shpParameters = null;
65

    
66
                shpParameters = (SHPStoreParameters) dataManager
67
                                .createStoreParameters(SHPStoreProvider.NAME);
68

    
69
                // shpParameters.setFile(file_poly_valencia);
70
                shpParameters.setFile(file_prueba);
71

    
72
                shpParameters.setCRS("EPSG:23030");
73

    
74
                store = (FeatureStore) dataManager.createStore(shpParameters);
75
                FeatureSet set;
76
                FeatureType type = store.getDefaultFeatureType();
77
                set = store.getFeatureSet();
78

    
79
                System.out.println("Num:" + set.getSize());
80
                DisposableIterator it = (DisposableIterator) set.iterator();
81
                Iterator ftIt;
82
                FeatureAttributeDescriptor desc;
83

    
84
                int i = 0;
85
                Feature feature;
86
                while (it.hasNext()) {
87
                        ftIt = type.iterator();
88

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

    
103

    
104
                }
105

    
106
                it.dispose();
107
                set.dispose();
108

    
109
                store.dispose();
110

    
111
        }
112

    
113
        public void testEditing(Object x) throws Exception {
114
                FeatureStore store = null;
115
                SHPStoreParameters shpParameters = null;
116

    
117
                shpParameters = (SHPStoreParameters) dataManager
118
                                .createStoreParameters(SHPStoreProvider.NAME);
119

    
120
                shpParameters.setFile(file_poly_valencia);
121

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

    
132
                int i = 0;
133
                Feature feature;
134
                while (it.hasNext()) {
135
                        ftIt = type.iterator();
136

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

    
151

    
152
                }
153

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

    
165
                i = 0;
166
                while (it.hasNext()) {
167
                        ftIt = type.iterator();
168

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

    
183

    
184
                }
185

    
186
                it.dispose();
187
                set.dispose();
188

    
189
                store.dispose();
190

    
191
        }
192

    
193
        public void testExport(Object x) throws Exception {
194
                DBFStoreParameters dbfParameters = null;
195

    
196
                dbfParameters = (DBFStoreParameters) dataManager
197
                                .createStoreParameters(DBFStoreProvider.NAME);
198

    
199
                dbfParameters.setFile(file_prueba);
200

    
201
                FeatureStore store = (FeatureStore) dataManager
202
                                .createStore(dbfParameters);
203
                FilesystemServerExplorerParameters explorerParams = (FilesystemServerExplorerParameters) dataManager
204
                                .createServerExplorerParameters(FilesystemServerExplorerParameters.DYNCLASS_NAME);
205
                explorerParams.setRoot(file_prueba.getParent());
206

    
207
                FilesystemServerExplorer explorer = (FilesystemServerExplorer) dataManager
208
                                .createServerExplorer(explorerParams);
209

    
210
                NewFeatureStoreParameters newParams = (NewFeatureStoreParameters) explorer
211
                                .getAddParameters(file_prueba_destino);
212

    
213
                store.export(explorer, DBFStoreProvider.NAME, newParams);
214

    
215
                FeatureStore result = (FeatureStore) dataManager.createStore(newParams);
216

    
217
                FeatureSet set = result.getFeatureSet();
218
                FeatureSet originalSet = store.getFeatureSet();
219
                assertEquals(set.getSize(), originalSet.getSize());
220

    
221
                DisposableIterator originalIter = (DisposableIterator) originalSet.iterator();
222
                DisposableIterator iter = (DisposableIterator) set.iterator();
223
                while (iter.hasNext()) {
224
                        assertEquals(originalIter.next(), iter.next());
225
                }
226

    
227
                originalIter.dispose();
228
                iter.dispose();
229
                result.dispose();
230
                explorer.remove(newParams);
231

    
232
        }
233

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

    
246
                //                        shpParameters.setFile(file_poly_valencia);
247
                shpParameters.setFile(file_prueba);
248
                shpParameters.setCRS("EPSG:23030");
249
                return shpParameters;
250
        }
251

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

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

    
272
                if (this.myExplorer == null) {
273
                        FeatureStore store = (FeatureStore) dataManager
274
                                        .createStore(parameters);
275
                        myExplorer = (FilesystemServerExplorer) store.getExplorer();
276
                        store.dispose();
277
                }
278

    
279
                SHPNewStoreParameters result = (SHPNewStoreParameters) myExplorer
280
                                .getAddParameters(file_prueba_destino);
281

    
282
                result.setCRS(parameters.getCRS());
283
                return result;
284
        }
285

    
286
        public boolean usesResources() {
287
                return true;
288
        }
289

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

    
294
}