Statistics
| Revision:

svn-gvsig-desktop / branches / v2_0_0_prep / libraries / libFMap_daldb / src-test / org / gvsig / fmap / dal / store / jdbc / JDBCTestWrite.java @ 29956

History | View | Annotate | Download (7.66 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
* 2009 IVER T.I   {{Task}}
26
*/
27

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

    
30
import org.cresques.ProjectionLibrary;
31
import org.cresques.impl.CresquesCtsLibrary;
32
import org.gvsig.fmap.dal.DALDbLibrary;
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.fmap.dal.feature.EditableFeature;
37
import org.gvsig.fmap.dal.feature.EditableFeatureType;
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.index.spatial.jts.JTSIndexLibrary;
42
import org.gvsig.fmap.dal.store.db.DBStoreLibrary;
43
import org.gvsig.fmap.geom.impl.DefaultGeometryLibrary;
44

    
45
import com.mysql.jdbc.Driver;
46

    
47

    
48
public class JDBCTestWrite extends BaseTestEditableFeatureStore {
49
        private JDBCNewStoreParameters newParams;
50
        private JDBCServerExplorer myExplorer;
51
        private int newId = 50000;
52

    
53
        public void fillPrimaryKeyInserFeature(EditableFeature feature) {
54
                feature.set("id", newId);
55
                newId++;
56
        }
57

    
58

    
59
        protected void setUp() throws Exception {
60
                super.setUp();
61
                // FIXME
62
                // ToolsLocator.registerDefaultPersistenceManager(XMLEntityManager.class);
63

    
64
                DefaultGeometryLibrary defGeomLib = new DefaultGeometryLibrary();
65
                defGeomLib.initialize();
66

    
67
                ProjectionLibrary projLib = new ProjectionLibrary();
68
                projLib.initialize();
69

    
70
                CresquesCtsLibrary cresquesLib = new CresquesCtsLibrary();
71
                cresquesLib.initialize();
72

    
73
                DALDbLibrary libDb = new DALDbLibrary();
74
                libDb.initialize();
75

    
76
                DBStoreLibrary libDbStore = new DBStoreLibrary();
77
                libDbStore.initialize();
78

    
79
                JDBCLibrary libJDBC = new JDBCLibrary();
80
                libJDBC.initialize();
81

    
82
                JTSIndexLibrary jtsIndex = new JTSIndexLibrary();
83
                jtsIndex.initialize();
84

    
85
                projLib.postInitialize();
86
                cresquesLib.postInitialize();
87
                defGeomLib.postInitialize();
88
                libDb.postInitialize();
89
                libDbStore.postInitialize();
90
                libJDBC.postInitialize();
91
                jtsIndex.postInitialize();
92
        }
93

    
94
        public DataStoreParameters getDefaultDataStoreParameters()
95
                        throws DataException {
96
                JDBCStoreParameters parameters = null;
97
                parameters = (JDBCStoreParameters) dataManager
98
                                .createStoreParameters(JDBCStoreProvider.NAME);
99

    
100
                parameters.setHost("localhost");
101
                parameters.setPort(3306);
102
                parameters.setUser("test");
103
                parameters.setPassword("test");
104
                parameters.setDBName("gis");
105
                parameters.setTable("alfanum");
106
                parameters.setUrl("jdbc:mysql://" + parameters.getHost() + ":"
107
                                + parameters.getPort() + "/" + parameters.getDBName());
108
                parameters.setJDBCDriverClassName(Driver.class.getName());
109

    
110
                return parameters;
111
        }
112

    
113
        /*
114
         * (non-Javadoc)
115
         *
116
         * @see org.gvsig.fmap.dal.feature.BaseTestFeatureStore#hasExplorer()
117
         */
118
        @Override
119
        public boolean hasExplorer() {
120
                // TODO Auto-generated method stub
121
                return true;
122
        }
123

    
124
        /*
125
         * (non-Javadoc)
126
         *
127
         * @see org.gvsig.fmap.dal.feature.BaseTestFeatureStore#usesResources()
128
         */
129
        @Override
130
        public boolean usesResources() {
131
                // TODO Auto-generated method stub
132
                return true;
133
        }
134

    
135
        /*
136
        public void testImportDB() throws Exception {
137
                JDBCNewStoreParameters newParasm = (JDBCNewStoreParameters) getDefaultNewDataStoreParameters();
138
                JDBCServerExplorerParameters seParams = (JDBCServerExplorerParameters) dataManager
139
                                .createServerExplorerParameters(JDBCServerExplorer.NAME);
140

141
                assertTrue(myExplorer.add(newParasm, true));
142

143
                FeatureStore store = (FeatureStore) dataManager
144
                                .createStore(getDefaultDataStoreParameters());
145

146
                FeatureStore newstore = (FeatureStore) dataManager
147
                                .createStore(newParasm);
148

149

150

151
                newstore.edit(FeatureStore.MODE_APPEND);
152
                FeatureSet set = store.getFeatureSet();
153
                DisposableIterator iter = set.iterator();
154
                Feature org;
155
                EditableFeature trg;
156
                Iterator attrIter;
157
                FeatureAttributeDescriptor attr;
158
                while (iter.hasNext()) {
159
                        org = (Feature) iter.next();
160
                        trg = newstore.createNewFeature(false);
161
                        attrIter = trg.getType().iterator();
162
                        while (attrIter.hasNext()) {
163
                                attr = (FeatureAttributeDescriptor) attrIter.next();
164
                                trg.set(attr.getName(), org.get(attr.getName()));
165
                        }
166
                        newstore.insert(trg);
167
                }
168
                newstore.finishEditing();
169

170
                iter.dispose();
171
                set.dispose();
172
                store.dispose();
173
                newstore.dispose();
174

175

176
        }
177
        */
178

    
179
        @Override
180
        public NewFeatureStoreParameters getDefaultNewDataStoreParameters()
181
                        throws Exception {
182

    
183

    
184
                JDBCStoreParameters params = (JDBCStoreParameters) getDefaultDataStoreParameters();
185

    
186
                if (this.myExplorer == null) {
187

    
188
                        JDBCServerExplorerParameters seParameters = null;
189
                        seParameters = (JDBCServerExplorerParameters) dataManager
190
                                        .createServerExplorerParameters(JDBCServerExplorer.NAME);
191

    
192
                        seParameters.setHost("localhost");
193
                        seParameters.setPort(3306);
194
                        seParameters.setUser("test");
195
                        seParameters.setPassword("test");
196
                        seParameters.setDBName("gis");
197

    
198
                        seParameters.setUrl("jdbc:mysql://" + seParameters.getHost() + ":"
199
                                        + seParameters.getPort() + "/" + seParameters.getDBName());
200
                        seParameters.setJDBCDriverClassName(Driver.class.getName());
201

    
202

    
203
                        myExplorer = (JDBCServerExplorer) dataManager
204
                                        .createServerExplorer(seParameters);
205
                }
206
                if (this.newParams == null) {
207
                        FeatureStore store = (FeatureStore) dataManager.createStore(params);
208

    
209
                        newParams = (JDBCNewStoreParameters) myExplorer
210
                                        .getAddParameters();
211

    
212

    
213
                        newParams.setTable(params.getTable() + "_test");
214
                        FeatureType ftOrg = store.getDefaultFeatureType();
215
                        EditableFeatureType ftTrg = ftOrg.getEditable();
216

    
217
//                        EditableFeatureType ftTrg = (EditableFeatureType) newParams
218
//                                        .getDefaultFeatureType();
219
                        newParams.setDefaultFeatureType(ftTrg);
220

    
221
//                        FeatureAttributeDescriptor org;
222
//                        EditableFeatureAttributeDescriptor trg;
223
//                        Iterator iter = ftOrg.iterator();
224
//                        while (iter.hasNext()) {
225
//                                org = (FeatureAttributeDescriptor) iter.next();
226
//                                trg = ftTrg.add(org.getName(), org.getDataType());
227
//                                trg.setAllowNull(org.allowNull());
228
//                                trg.setDefaultValue(org.getDefaultValue());
229
//                                trg.setGeometrySubType(org.getGeometrySubType());
230
//                                trg.setGeometryType(org.getGeometryType());
231
//                                trg.setIsAutomatic(org.isAutomatic());
232
//                                trg.setIsPrimaryKey(org.isPrimaryKey());
233
//                                trg.setIsReadOnly(org.isReadOnly());
234
//                                trg.setMaximumOccurrences(org.getMaximumOccurrences());
235
//                                trg.setMinimumOccurrences(org.getMinimumOccurrences());
236
//                                trg.setPrecision(org.getPrecision());
237
//                                trg.setSize(org.getSize());
238
//                                trg.setSRS(org.getSRS());
239
//                                trg.setAdditionalInfo("SQLType", org
240
//                                                .getAdditionalInfo("SQLType"));
241
//                                trg.setAdditionalInfo("SQLTypeName", org
242
//                                                .getAdditionalInfo("SQLTypeName"));
243
//
244
//                        }
245
//                        ftTrg.setDefaultGeometryAttributeName(ftOrg
246
//                                        .getDefaultGeometryAttributeName());
247
//                        ftTrg.setHasOID(ftOrg.hasOID());
248

    
249
                        store.dispose();
250
                }
251

    
252
                return this.newParams;
253
        }
254

    
255
        @Override
256
        public boolean resourcesNotifyChanges() {
257
                // TODO Auto-generated method stub
258
                return false;
259
        }
260

    
261
}