From 1e25c2c090a837ce475ab5a66f99da2ecbecec95 Mon Sep 17 00:00:00 2001
From: ?? ? <ulysseskao@ximple.com.tw>
Date: Wed, 07 May 2008 18:48:45 +0800
Subject: [PATCH] update for EOFM-75

---
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/IndexDgnConvertJobContext.java |   30 +++++++++++++++++-------------
 1 files changed, 17 insertions(+), 13 deletions(-)

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 77e3c23..44caa32 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
@@ -46,8 +46,8 @@
 
     private String dataOut = null;
 
-    private HashMap featuresContext = new HashMap();
-    private HashMap featuresWriterContext = new HashMap();
+    private HashMap<String, ArrayList<Feature> > featuresContext = new HashMap<String, ArrayList<Feature> >();
+    private HashMap<String, FeatureWriter> featuresWriterContext = new HashMap<String, FeatureWriter>();
 
     private PessimisticMapWrapper txFeaturesContext;
     private FeatureTypeBuilder typeBuilder = null;
@@ -127,25 +127,20 @@
                 FeatureWriter writer;
                 if(featuresWriterContext.containsKey(featureType.getTypeName()))
                 {
-                    writer = (FeatureWriter) featuresWriterContext.get(featureType.getTypeName()) ;
+                    writer = featuresWriterContext.get(featureType.getTypeName()) ;
                 }
                 else
                 {
                   ShapefileDataStore shapefileDataStore = new ShapefileDataStore(sfile.toURI().toURL());
                   shapefileDataStore.createSchema(featureType);
                   writer = shapefileDataStore.getFeatureWriter(featureType.getTypeName(), Transaction.AUTO_COMMIT);
-                  if(this.featuresWriterContext == null)
-                  {
-                     this.featuresWriterContext =  new HashMap();
-                  }
                   featuresWriterContext.put(featureType.getTypeName() , writer);
                 }
 
-                ArrayList features = (ArrayList) featuresContext.get(featureType);
-                Iterator itFeature = features.iterator();
-                while (itFeature.hasNext())
+                ArrayList<Feature> features = featuresContext.get(featureType);
+                for (Feature feature1 : features)
                 {
-                    Feature feature = (Feature) itFeature.next();
+                    Feature feature = feature1;
                     ((SimpleFeature) writer.next()).setAttributes(feature.getAttributes(null));
                 }
                 //writer.close();
@@ -179,6 +174,16 @@
             dataOut = outPath.toString();
         }
         return dataOut;
+    }
+
+    public void closeFeatureWriter() throws IOException {
+
+        for (FeatureWriter featureWriter : this.featuresWriterContext.values())
+        {
+            featureWriter.close();
+        }
+
+        this.featuresWriterContext.clear();
     }
 
     public FeatureType createFeatureElement(String featureName) throws SchemaException
@@ -217,7 +222,7 @@
                     TWDDatumConverter.fromTM2ToTWD97(new Coordinate(extent.getMinX(), extent.getMinY())),
             });
 
-            Feature feature = featureType.create(new Object[]{
+            return featureType.create(new Object[]{
                     geom,
                     extent.getMinX(),
                     extent.getMinY(),
@@ -228,7 +233,6 @@
                     textElement.getWeight(),
                     textElement.getLineStyle()
             });
-            return feature;
         }
         return null;
     }

--
Gitblit v0.0.0-SNAPSHOT