From c6d666b64e226acfae9f98872ba7d7942e68f238 Mon Sep 17 00:00:00 2001
From: ?? ? <ulysseskao@ximple.com.tw>
Date: Sat, 24 May 2008 14:40:09 +0800
Subject: [PATCH] update for EOFM-104

---
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/IndexDgnConvertJobContext.java   |   75 ++++++++++++++++++++-----------------
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertJobContext.java     |    5 ++
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeneralDgnConvertJobContext.java |    5 ++
 3 files changed, 50 insertions(+), 35 deletions(-)

diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeneralDgnConvertJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeneralDgnConvertJobContext.java
index 2f1eeb6..93e587c 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeneralDgnConvertJobContext.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeneralDgnConvertJobContext.java
@@ -20,6 +20,7 @@
 import org.geotools.data.FeatureWriter;
 import org.geotools.data.Transaction;
 import org.geotools.data.shapefile.ShapefileDataStore;
+import org.geotools.data.shapefile.indexed.IndexedShapefileDataStore;
 import org.geotools.feature.AttributeTypeFactory;
 import org.geotools.feature.Feature;
 import org.geotools.feature.FeatureType;
@@ -160,8 +161,12 @@
                 } else
                 {
                     // ShapefileDataStore shapefileDataStore = new ShapefileDataStore(sfile.toURI().toURL());
+                    /*
                     ShapefileDataStore shapefileDataStore = new ShapefileDataStore(sfile.toURI().toURL(),
                             true, Charset.forName("UTF-8"));
+                    */
+                    ShapefileDataStore shapefileDataStore = new IndexedShapefileDataStore(sfile.toURI().toURL(),
+                            null, true, true, IndexedShapefileDataStore.TREE_QIX, Charset.forName("UTF-8"));
                     shapefileDataStore.createSchema(featureType);
                     writer = shapefileDataStore.getFeatureWriter(featureType.getTypeName(), Transaction.AUTO_COMMIT);
                     featuresWriterContext.put(featureType.getTypeName(), writer);
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/IndexDgnConvertJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/IndexDgnConvertJobContext.java
index 8bba137..8b2be56 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/IndexDgnConvertJobContext.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/IndexDgnConvertJobContext.java
@@ -2,14 +2,14 @@
 
 import java.io.File;
 import java.io.IOException;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.net.MalformedURLException;
+import java.nio.charset.Charset;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
-import java.math.BigDecimal;
-import java.math.RoundingMode;
-import java.nio.charset.Charset;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -19,6 +19,7 @@
 import org.geotools.data.FeatureWriter;
 import org.geotools.data.Transaction;
 import org.geotools.data.shapefile.ShapefileDataStore;
+import org.geotools.data.shapefile.indexed.IndexedShapefileDataStore;
 import org.geotools.feature.AttributeTypeFactory;
 import org.geotools.feature.Feature;
 import org.geotools.feature.FeatureType;
@@ -50,7 +51,7 @@
 
     private String dataOut = null;
 
-    private HashMap<String, ArrayList<Feature> > featuresContext = new HashMap<String, ArrayList<Feature> >();
+    private HashMap<String, ArrayList<Feature>> featuresContext = new HashMap<String, ArrayList<Feature>>();
     private HashMap<String, FeatureWriter> featuresWriterContext = new HashMap<String, FeatureWriter>();
 
     private PessimisticMapWrapper txFeaturesContext;
@@ -111,26 +112,26 @@
     {
         if (!txFeaturesContext.isEmpty())
         {
-             logger.debug("Transaction size = " + txFeaturesContext.size());
+            logger.debug("Transaction size = " + txFeaturesContext.size());
             //txFeaturesContext.commitTransaction();
-         } else
-         {
-             logger.debug("Transaction is empty.");
-         }
+        } else
+        {
+            logger.debug("Transaction is empty.");
+        }
 
-         if (!featuresContext.isEmpty())
-         {
-             updateDataStore();
-         }
+        if (!featuresContext.isEmpty())
+        {
+            updateDataStore();
+        }
     }
 
     public void rollbackTransaction()
     {
         //txFeaturesContext.rollbackTransaction();
-         if (!featuresContext.isEmpty())
-         {
-             updateDataStore();
-         }
+        if (!featuresContext.isEmpty())
+        {
+            updateDataStore();
+        }
     }
 
     private void updateDataStore()
@@ -146,17 +147,20 @@
                 logger.debug("Begin Save shapefile:" + sfile.toURI());
 
                 FeatureWriter writer;
-                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(),
-                        true, Charset.forName("UTF-8"));
-                  shapefileDataStore.createSchema(featureType);
-                  writer = shapefileDataStore.getFeatureWriter(featureType.getTypeName(), Transaction.AUTO_COMMIT);
-                  featuresWriterContext.put(featureType.getTypeName() , writer);
+                    /*
+                    ShapefileDataStore shapefileDataStore = new ShapefileDataStore(sfile.toURI().toURL(),
+                            true, Charset.forName("UTF-8"));
+                    */
+                    ShapefileDataStore shapefileDataStore = new IndexedShapefileDataStore(sfile.toURI().toURL(),
+                            null, true, true, IndexedShapefileDataStore.TREE_QIX, Charset.forName("UTF-8"));
+                    shapefileDataStore.createSchema(featureType);
+                    writer = shapefileDataStore.getFeatureWriter(featureType.getTypeName(), Transaction.AUTO_COMMIT);
+                    featuresWriterContext.put(featureType.getTypeName(), writer);
                 }
 
                 ArrayList<Feature> features = featuresContext.get(featureType);
@@ -197,7 +201,8 @@
         return dataOut;
     }
 
-    public void closeFeatureWriter() throws IOException {
+    public void closeFeatureWriter() throws IOException
+    {
 
         for (FeatureWriter featureWriter : this.featuresWriterContext.values())
         {
@@ -253,13 +258,13 @@
 
             Envelope extent = TPCLIDConverter.convertTpclIdToEnvelope(tpclid);
             Geometry geom = geometryFactory.createLinearRing(new Coordinate[]
-            {
-                    TWDDatumConverter.fromTM2ToTWD97(new Coordinate(extent.getMinX(), extent.getMinY())),
-                    TWDDatumConverter.fromTM2ToTWD97(new Coordinate(extent.getMaxX(), extent.getMinY())),
-                    TWDDatumConverter.fromTM2ToTWD97(new Coordinate(extent.getMaxX(), extent.getMaxY())),
-                    TWDDatumConverter.fromTM2ToTWD97(new Coordinate(extent.getMinX(), extent.getMaxY())),
-                    TWDDatumConverter.fromTM2ToTWD97(new Coordinate(extent.getMinX(), extent.getMinY())),
-            });
+                    {
+                            TWDDatumConverter.fromTM2ToTWD97(new Coordinate(extent.getMinX(), extent.getMinY())),
+                            TWDDatumConverter.fromTM2ToTWD97(new Coordinate(extent.getMaxX(), extent.getMinY())),
+                            TWDDatumConverter.fromTM2ToTWD97(new Coordinate(extent.getMaxX(), extent.getMaxY())),
+                            TWDDatumConverter.fromTM2ToTWD97(new Coordinate(extent.getMinX(), extent.getMaxY())),
+                            TWDDatumConverter.fromTM2ToTWD97(new Coordinate(extent.getMinX(), extent.getMinY())),
+                    });
 
             return featureType.create(new Object[]{
                     geom,
@@ -275,7 +280,7 @@
         }
         return null;
     }
-    
+
     public Feature createFeature2(FeatureType featureType, Element element) throws IllegalAttributeException
     {
         DefaultColorTable colorTable = (DefaultColorTable) DefaultColorTable.getInstance();
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 586cf92..1be632b 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
@@ -23,6 +23,7 @@
 import org.geotools.data.FeatureWriter;
 import org.geotools.data.Transaction;
 import org.geotools.data.shapefile.ShapefileDataStore;
+import org.geotools.data.shapefile.indexed.IndexedShapefileDataStore;
 import org.geotools.feature.Feature;
 import org.geotools.feature.FeatureType;
 import org.geotools.feature.IllegalAttributeException;
@@ -203,8 +204,12 @@
                     writer = featuresWriterContext.get(featureType.getTypeName());
                 } else
                 {
+                    /*
                     ShapefileDataStore shapefileDataStore = new ShapefileDataStore(sfile.toURI().toURL(),
                             true, Charset.forName("UTF-8"));
+                    */
+                    ShapefileDataStore shapefileDataStore = new IndexedShapefileDataStore(sfile.toURI().toURL(),
+                            null, true, true, IndexedShapefileDataStore.TREE_QIX, Charset.forName("UTF-8"));
                     shapefileDataStore.createSchema(featureType);
                     writer = shapefileDataStore.getFeatureWriter(featureType.getTypeName(), Transaction.AUTO_COMMIT);
                     featuresWriterContext.put(featureType.getTypeName(), writer);

--
Gitblit v0.0.0-SNAPSHOT