From 5c0e9634ef20452c9fc66bb14a469e0a05369899 Mon Sep 17 00:00:00 2001 From: ?? ? <ulysseskao@ximple.com.tw> Date: Fri, 16 May 2008 12:25:44 +0800 Subject: [PATCH] update for EOFM-90 --- xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertJobContext.java | 61 +++++++++++++++++++++++------- 1 files changed, 46 insertions(+), 15 deletions(-) diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertJobContext.java index fc184f8..ee1cf24 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertJobContext.java @@ -44,6 +44,8 @@ static final String SHPOUTPATH = "shpout"; + private OracleElementLogging elmLogger = null; + static { try @@ -68,6 +70,8 @@ private String dataOut = null; private String _convertDB = null; private String _convertFile = null; + private String currentSchema = null; + private boolean schemaChanged = false; public OracleConvertJobContext(String filterConfig) { @@ -97,7 +101,7 @@ { // config = new File("conf/DefaultConvertShpFilter.xml"); filterURL = this.getClass().getResource("/conf/DefaultConvertShpFilter.xml"); - // filterURL = this.getClass().getResource("/conf/ConvertShpFilterForLevel.xml"); + // filterURL = this.getClass().getResource("/conf/ConvertShpFilterForLevel.xml"); } assert filterURL != null; return (ElementDispatcher) digester.parse(filterURL); @@ -133,6 +137,7 @@ ":type=" + element.getType() + ":lv=" + element.getLevelIndex() + ":id=" + (linkage == null ? "NULL" : (linkage.getFsc() + "|" + linkage.getComponentID()))); + getElementLogging().logElement(element, getCurrentSchema()); return; } @@ -146,15 +151,15 @@ public void startTransaction() { - //txFeaturesContext.startTransaction(); + //txFeaturesContext.startTransaction(); } public void commitTransaction() { - if (!txFeaturesContext.isEmpty()) - { + if (!txFeaturesContext.isEmpty()) + { logger.debug("Transaction size = " + txFeaturesContext.size()); - //txFeaturesContext.commitTransaction(); + //txFeaturesContext.commitTransaction(); } else { logger.debug("Transaction is empty."); @@ -164,11 +169,14 @@ { updateDataStore(); } + + if (this.getElementLogging() != null) + this.getElementLogging().flashLogging(); } public void rollbackTransaction() { - //txFeaturesContext.rollbackTransaction(); + //txFeaturesContext.rollbackTransaction(); if (!featuresContext.isEmpty()) { updateDataStore(); @@ -188,16 +196,15 @@ logger.debug("Begin Save shapefile:" + sfile.toURI()); FeatureWriter writer = null; - if(featuresWriterContext.containsKey(featureType.getTypeName())) + if (featuresWriterContext.containsKey(featureType.getTypeName())) { - writer = featuresWriterContext.get(featureType.getTypeName()) ; - } - else + writer = featuresWriterContext.get(featureType.getTypeName()); + } else { - ShapefileDataStore shapefileDataStore = new ShapefileDataStore(sfile.toURI().toURL()); - shapefileDataStore.createSchema(featureType); - writer = shapefileDataStore.getFeatureWriter(featureType.getTypeName(), Transaction.AUTO_COMMIT); - featuresWriterContext.put(featureType.getTypeName() , writer); + ShapefileDataStore shapefileDataStore = new ShapefileDataStore(sfile.toURI().toURL()); + shapefileDataStore.createSchema(featureType); + writer = shapefileDataStore.getFeatureWriter(featureType.getTypeName(), Transaction.AUTO_COMMIT); + featuresWriterContext.put(featureType.getTypeName(), writer); } ArrayList features = (ArrayList) featuresContext.get(featureType); @@ -236,9 +243,11 @@ /** * �����]�Ƽg�J�� + * * @throws IOException IO�o�Ϳ��~ */ - public void closeFeatureWriter() throws IOException { + public void closeFeatureWriter() throws IOException + { for (FeatureWriter featureWriter : this.featuresWriterContext.values()) { @@ -250,6 +259,7 @@ /** * ���o��ƿ�X���| + * * @return ���|���r�� */ public String getDataOutPath() @@ -278,4 +288,25 @@ { _convertFile = convertFile; } + + private OracleElementLogging getElementLogging() + { + if (elmLogger == null) + { + elmLogger = new OracleElementLogging(getOracleConnection()); + elmLogger.setDataPath(this.getDataPath()); + } + return elmLogger; + } + + public String getCurrentSchema() + { + return currentSchema; + } + + public void setCurrentSchema(String querySchema) + { + this.currentSchema = querySchema; + this.schemaChanged = true; + } } -- Gitblit v0.0.0-SNAPSHOT