Revision 31886 branches/v2_0_0_prep/extensions/org.gvsig.oracle/src/org/gvsig/oracle/extension/ExportToOracle.java
ExportToOracle.java | ||
---|---|---|
55 | 55 |
import org.gvsig.fmap.dal.DataTypes; |
56 | 56 |
import org.gvsig.fmap.dal.exception.DataException; |
57 | 57 |
import org.gvsig.fmap.dal.exception.ReadException; |
58 |
import org.gvsig.fmap.dal.exception.RemoveException; |
|
58 | 59 |
import org.gvsig.fmap.dal.exception.ValidateDataParametersException; |
59 | 60 |
import org.gvsig.fmap.dal.feature.DisposableIterator; |
60 | 61 |
import org.gvsig.fmap.dal.feature.EditableFeature; |
61 | 62 |
import org.gvsig.fmap.dal.feature.EditableFeatureAttributeDescriptor; |
62 | 63 |
import org.gvsig.fmap.dal.feature.EditableFeatureType; |
63 | 64 |
import org.gvsig.fmap.dal.feature.Feature; |
65 |
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor; |
|
64 | 66 |
import org.gvsig.fmap.dal.feature.FeatureSet; |
65 | 67 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
66 | 68 |
import org.gvsig.fmap.dal.feature.FeatureType; |
... | ... | |
78 | 80 |
import org.gvsig.oracle.gui.OracleConnectionChooserPanel; |
79 | 81 |
import org.gvsig.utils.PostProcessSupport; |
80 | 82 |
import org.jfree.util.Log; |
81 |
import org.opengis.feature.FeatureAttributeDescriptor; |
|
83 |
import org.slf4j.Logger; |
|
84 |
import org.slf4j.LoggerFactory; |
|
82 | 85 |
|
83 | 86 |
/** |
84 | 87 |
* Writes a layer as an Oracle table. |
... | ... | |
87 | 90 |
* |
88 | 91 |
*/ |
89 | 92 |
public class ExportToOracle { |
93 |
|
|
94 |
final static private Logger logger = LoggerFactory.getLogger(ExportToOracle.class); |
|
90 | 95 |
|
91 | 96 |
/** |
92 | 97 |
* Constructor |
... | ... | |
104 | 109 |
public void toOracle(MapContext mapContext, FLyrVect layer) { |
105 | 110 |
|
106 | 111 |
// name of oracle table |
107 |
String tableName = this.getNewOracleTableName(); |
|
112 |
|
|
113 |
String tableName = ""; |
|
114 |
tableName = this.getNewOracleTableName(); |
|
108 | 115 |
if (tableName == null) { |
109 | 116 |
return; |
110 | 117 |
} |
111 | 118 |
|
112 |
// name of oracle table |
|
113 |
String pkFieldName = ""; |
|
119 |
// name of pk field - not selectable |
|
120 |
String pkFieldName = null; |
|
121 |
/* |
|
114 | 122 |
try { |
115 | 123 |
pkFieldName = this.getNewOracleTablePK(layer); |
116 | 124 |
} catch (Exception e) { |
117 | 125 |
Log.warn("There are not primakey fields in this data store"); |
118 | 126 |
pkFieldName = null; |
119 | 127 |
} |
128 |
*/ |
|
120 | 129 |
|
121 | 130 |
// Selected explorer (connection) |
122 | 131 |
MyExplorer explorer = this.getSelectedExplorer(); |
... | ... | |
133 | 142 |
pkFieldName); |
134 | 143 |
} |
135 | 144 |
|
145 |
|
|
146 |
|
|
147 |
|
|
136 | 148 |
/** |
137 | 149 |
* create new oracle store |
138 | 150 |
* |
... | ... | |
254 | 266 |
|
255 | 267 |
params.setDefaultFeatureType(efType.getNotEditableCopy()); |
256 | 268 |
|
257 |
explorer.add(params, true); |
|
269 |
if (notExistsOrOverwrite(explorer, params)) { |
|
270 |
explorer.add(params, true); |
|
271 |
} else { |
|
272 |
throw new Exception("User_cancelled_or_could_not_overwrite"); |
|
273 |
} |
|
258 | 274 |
|
259 | 275 |
DataManager manager = DALLocator.getDataManager(); |
260 | 276 |
FeatureStore target = (FeatureStore) manager.createStore(params); |
... | ... | |
265 | 281 |
FeatureSet set = featureStore.getFeatureSet(); |
266 | 282 |
|
267 | 283 |
it1 = set.iterator(); |
268 |
while (it1.hasNext()) { |
|
269 |
Feature feature = (Feature) it1.next(); |
|
270 |
EditableFeature efeat = target.createNewFeature(targetType, |
|
271 |
feature); |
|
272 |
target.insert(efeat); |
|
284 |
|
|
285 |
if (gidFound) { |
|
286 |
while (it1.hasNext()) { |
|
287 |
Feature feature = (Feature) it1.next(); |
|
288 |
feature.getDefaultGeometry(); // ?? |
|
289 |
EditableFeature efeat = target.createNewFeature(targetType, feature); |
|
290 |
target.insert(efeat); |
|
291 |
} |
|
292 |
} else { |
|
293 |
int last_ind_target = targetType.size() - 1; |
|
294 |
int count_id = 0; |
|
295 |
while (it1.hasNext()) { |
|
296 |
Feature feature = (Feature) it1.next(); |
|
297 |
feature.getDefaultGeometry(); // ?? |
|
298 |
EditableFeature efeat = target.createNewFeature(targetType, feature); |
|
299 |
efeat.setInt(last_ind_target, count_id); |
|
300 |
count_id++; |
|
301 |
target.insert(efeat); |
|
302 |
} |
|
273 | 303 |
} |
304 |
|
|
305 |
|
|
274 | 306 |
set.dispose(); |
275 | 307 |
target.finishEditing(); |
276 | 308 |
target.dispose(); |
... | ... | |
286 | 318 |
|
287 | 319 |
} |
288 | 320 |
|
321 |
private boolean notExistsOrOverwrite(OracleServerExplorer ose, NewFeatureStoreParameters params) { |
|
322 |
|
|
323 |
if (!ose.dataStoreExists(params)) { |
|
324 |
ose.removeMetadata(params); |
|
325 |
return true; |
|
326 |
} else { |
|
327 |
int overw = JOptionPane.showConfirmDialog( |
|
328 |
null, |
|
329 |
PluginServices.getText(this, "Table_exists_overwrite_question"), |
|
330 |
PluginServices.getText(this, "Warning"), |
|
331 |
JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE); |
|
332 |
|
|
333 |
if (overw == JOptionPane.YES_OPTION) { |
|
334 |
try { |
|
335 |
ose.remove(params); |
|
336 |
} catch (RemoveException rex) { |
|
337 |
logger.error("While trying to remove table: " + rex.getMessage()); |
|
338 |
JOptionPane.showMessageDialog(null, |
|
339 |
PluginServices.getText(this, "Unable_to_remove_table"), |
|
340 |
PluginServices.getText(this, "Error"), |
|
341 |
JOptionPane.ERROR_MESSAGE); |
|
342 |
return false; |
|
343 |
} |
|
344 |
return true; |
|
345 |
} else { |
|
346 |
return false; |
|
347 |
} |
|
348 |
|
|
349 |
} |
|
350 |
} |
|
351 |
|
|
289 | 352 |
/** |
290 | 353 |
* get new oracle table name |
291 | 354 |
* |
Also available in: Unified diff