From d3907f73895cb1d7bd6ec2ea15f6be33c72392b4 Mon Sep 17 00:00:00 2001
From: ?? ? <ulysseskao@ximple.com.tw>
Date: Mon, 26 May 2008 15:17:57 +0800
Subject: [PATCH] update for EOFM-103

---
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateEllipseShapeStrategy.java  |   10 +++--
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateShapeStrategy.java         |   10 +++--
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateArcLineStringStrategy.java |   10 +++--
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateSymbolStrategy.java        |   10 +++--
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineStringStrategy.java    |   10 +++--
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateTextStrategy.java          |   10 +++--
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineTextStrategy.java      |   10 +++--
 7 files changed, 42 insertions(+), 28 deletions(-)

diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateArcLineStringStrategy.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateArcLineStringStrategy.java
index db43134..6cc80e7 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateArcLineStringStrategy.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateArcLineStringStrategy.java
@@ -1,6 +1,7 @@
 package com.ximple.eofms.filter;
 
 import java.util.List;
+import java.util.TreeMap;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -25,7 +26,7 @@
 {
     static final Log logger = LogFactory.getLog(CreateLineStringStrategy.class);
     GeometryFactory geometryFactory = new GeometryFactory();
-    FeatureTypeBuilder typeBuilder = null;
+    TreeMap<String, FeatureTypeBuilder> typeBuilders = new TreeMap<String, FeatureTypeBuilder>();
     TWD97GeometryConverterDecorator convertDecorator = new TWD97GeometryConverterDecorator();
 
     public CreateArcLineStringStrategy()
@@ -50,9 +51,9 @@
 
     public FeatureType createFeatureElement(String featureName) throws SchemaException
     {
-        if (typeBuilder == null)
+        if (!typeBuilders.containsKey(featureName))
         {
-            typeBuilder = FeatureTypeBuilder.newInstance(featureName);
+            FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("GEOM", Geometry.class));
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("TID", Integer.class));
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("OID", Long.class));
@@ -62,8 +63,9 @@
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMCOLOR", String.class));
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMWEIGHT", Integer.class));
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMSTYLE", Integer.class));
+            typeBuilders.put(featureName, typeBuilder);
         }
-        return typeBuilder.getFeatureType();
+        return typeBuilders.get(featureName).getFeatureType();
     }
 
     public Feature createFeature(FeatureType featureType, Element element) throws IllegalAttributeException
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateEllipseShapeStrategy.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateEllipseShapeStrategy.java
index 143ab63..12e32d4 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateEllipseShapeStrategy.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateEllipseShapeStrategy.java
@@ -1,6 +1,7 @@
 package com.ximple.eofms.filter;
 
 import java.util.List;
+import java.util.TreeMap;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -25,7 +26,7 @@
 {
     static final Log logger = LogFactory.getLog(CreateShapeStrategy.class);
     GeometryFactory geometryFactory = new GeometryFactory();
-    FeatureTypeBuilder typeBuilder = null;
+    TreeMap<String, FeatureTypeBuilder> typeBuilders = new TreeMap<String, FeatureTypeBuilder>();
     TWD97GeometryConverterDecorator convertDecorator = new TWD97GeometryConverterDecorator();
 
     public CreateEllipseShapeStrategy()
@@ -50,9 +51,9 @@
 
     public FeatureType createFeatureElement(String featureName) throws SchemaException
     {
-        if (typeBuilder == null)
+        if (!typeBuilders.containsKey(featureName))
         {
-            typeBuilder = FeatureTypeBuilder.newInstance(featureName);
+            FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("GEOM", Geometry.class));
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("TID", Integer.class));
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("OID", Long.class));
@@ -62,8 +63,9 @@
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMCOLOR", String.class));
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMWEIGHT", Integer.class));
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMSTYLE", Integer.class));
+            typeBuilders.put(featureName, typeBuilder);
         }
-        return typeBuilder.getFeatureType();
+        return typeBuilders.get(featureName).getFeatureType();
     }
 
     public Feature createFeature(FeatureType featureType, Element element) throws IllegalAttributeException
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineStringStrategy.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineStringStrategy.java
index 58ff341..3df0256 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineStringStrategy.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineStringStrategy.java
@@ -1,6 +1,7 @@
 package com.ximple.eofms.filter;
 
 import java.util.List;
+import java.util.TreeMap;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -28,7 +29,7 @@
 {
     static final Log logger = LogFactory.getLog(CreateLineStringStrategy.class);
     GeometryFactory geometryFactory = new GeometryFactory();
-    FeatureTypeBuilder typeBuilder = null;
+    TreeMap<String, FeatureTypeBuilder> typeBuilders = new TreeMap<String, FeatureTypeBuilder>();
     TWD97GeometryConverterDecorator convertDecorator = new TWD97GeometryConverterDecorator();
 
     public CreateLineStringStrategy()
@@ -53,9 +54,9 @@
 
     public FeatureType createFeatureElement(String featureName) throws SchemaException
     {
-        if (typeBuilder == null)
+        if (!typeBuilders.containsKey(featureName))
         {
-            typeBuilder = FeatureTypeBuilder.newInstance(featureName);
+            FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("GEOM", Geometry.class));
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("TID", Integer.class));
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("OID", Long.class));
@@ -65,8 +66,9 @@
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMCOLOR", String.class));
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMWEIGHT", Integer.class));
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMSTYLE", Integer.class));
+            typeBuilders.put(featureName, typeBuilder);
         }
-        return typeBuilder.getFeatureType();
+        return typeBuilders.get(featureName).getFeatureType();
     }
 
     public Feature createFeature(FeatureType featureType, Element element) throws IllegalAttributeException
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineTextStrategy.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineTextStrategy.java
index 9129460..3d5c47f 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineTextStrategy.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineTextStrategy.java
@@ -1,6 +1,7 @@
 package com.ximple.eofms.filter;
 
 import java.util.List;
+import java.util.TreeMap;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -31,7 +32,7 @@
 {
     static final Log logger = LogFactory.getLog(CreateLineTextStrategy.class);
     GeometryFactory geometryFactory = new GeometryFactory();
-    FeatureTypeBuilder typeBuilder = null;
+    TreeMap<String, FeatureTypeBuilder> typeBuilders = new TreeMap<String, FeatureTypeBuilder>();
     TWD97GeometryConverterDecorator convertDecorator = new TWD97GeometryConverterDecorator();
 
     public CreateLineTextStrategy()
@@ -56,9 +57,9 @@
 
     public FeatureType createFeatureElement(String featureName) throws SchemaException
     {
-        if (typeBuilder == null)
+        if (!typeBuilders.containsKey(featureName))
         {
-            typeBuilder = FeatureTypeBuilder.newInstance(featureName);
+            FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("GEOM", Geometry.class));
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("TID", Integer.class));
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("OID", Long.class));
@@ -68,8 +69,9 @@
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMCOLOR", String.class));
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMWEIGHT", Integer.class));
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMSTYLE", Integer.class));
+            typeBuilders.put(featureName, typeBuilder);
         }
-        return typeBuilder.getFeatureType();
+        return typeBuilders.get(featureName).getFeatureType();
     }
 
     public Feature createFeature(FeatureType featureType, Element element) throws IllegalAttributeException
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateShapeStrategy.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateShapeStrategy.java
index b286d49..2d0d165 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateShapeStrategy.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateShapeStrategy.java
@@ -1,6 +1,7 @@
 package com.ximple.eofms.filter;
 
 import java.util.List;
+import java.util.TreeMap;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -26,7 +27,7 @@
 {
     static final Log logger = LogFactory.getLog(CreateShapeStrategy.class);
     GeometryFactory geometryFactory = new GeometryFactory();
-    FeatureTypeBuilder typeBuilder = null;
+    TreeMap<String, FeatureTypeBuilder> typeBuilders = new TreeMap<String, FeatureTypeBuilder>();
     TWD97GeometryConverterDecorator convertDecorator = new TWD97GeometryConverterDecorator();
 
     public CreateShapeStrategy()
@@ -51,9 +52,9 @@
 
     public FeatureType createFeatureElement(String featureName) throws SchemaException
     {
-        if (typeBuilder == null)
+        if (!typeBuilders.containsKey(featureName))
         {
-            typeBuilder = FeatureTypeBuilder.newInstance(featureName);
+            FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("GEOM", Geometry.class));
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("TID", Integer.class));
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("OID", Long.class));
@@ -63,8 +64,9 @@
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMCOLOR", String.class));
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMWEIGHT", Integer.class));
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMSTYLE", Integer.class));
+            typeBuilders.put(featureName, typeBuilder);
         }
-        return typeBuilder.getFeatureType();
+        return typeBuilders.get(featureName).getFeatureType();
     }
 
     public Feature createFeature(FeatureType featureType, Element element) throws IllegalAttributeException
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateSymbolStrategy.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateSymbolStrategy.java
index e55d078..4e27822 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateSymbolStrategy.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateSymbolStrategy.java
@@ -1,6 +1,7 @@
 package com.ximple.eofms.filter;
 
 import java.util.List;
+import java.util.TreeMap;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 
@@ -27,7 +28,7 @@
 {
     static final Log logger = LogFactory.getLog(CreateSymbolStrategy.class);
     GeometryFactory geometryFactory = new GeometryFactory();
-    FeatureTypeBuilder typeBuilder = null;
+    TreeMap<String, FeatureTypeBuilder> typeBuilders = new TreeMap<String, FeatureTypeBuilder>();
     TWD97GeometryConverterDecorator convertDecorator = new TWD97GeometryConverterDecorator();
 
     public CreateSymbolStrategy()
@@ -52,9 +53,9 @@
 
     public FeatureType createFeatureElement(String featureName) throws SchemaException
     {
-        if (typeBuilder == null)
+        if (!typeBuilders.containsKey(featureName))
         {
-            typeBuilder = FeatureTypeBuilder.newInstance(featureName);
+            FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("GEOM", Geometry.class));
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("TID", Integer.class));
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("OID", Long.class));
@@ -69,8 +70,9 @@
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("WIDTH", Double.class));
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("ANGLE", Double.class));
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMBOL", String.class));
+            typeBuilders.put(featureName, typeBuilder);
         }
-        return typeBuilder.getFeatureType();
+        return typeBuilders.get(featureName).getFeatureType();
     }
 
     public Feature createFeature(FeatureType featureType, Element element) throws IllegalAttributeException
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateTextStrategy.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateTextStrategy.java
index c3dce45..98a9d75 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateTextStrategy.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateTextStrategy.java
@@ -1,6 +1,7 @@
 package com.ximple.eofms.filter;
 
 import java.util.List;
+import java.util.TreeMap;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 
@@ -28,7 +29,7 @@
 {
     static final Log logger = LogFactory.getLog(CreateTextStrategy.class);
     GeometryFactory geometryFactory = new GeometryFactory();
-    FeatureTypeBuilder typeBuilder = null;
+    TreeMap<String, FeatureTypeBuilder> typeBuilders = new TreeMap<String, FeatureTypeBuilder>();
     TWD97GeometryConverterDecorator convertDecorator = new TWD97GeometryConverterDecorator();
 
     public CreateTextStrategy()
@@ -53,9 +54,9 @@
 
     public FeatureType createFeatureElement(String featureName) throws SchemaException
     {
-        if (typeBuilder == null)
+        if (!typeBuilders.containsKey(featureName))
         {
-            typeBuilder = FeatureTypeBuilder.newInstance(featureName);
+            FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("GEOM", Geometry.class));
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("TID", Integer.class));
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("OID", Long.class));
@@ -70,8 +71,9 @@
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("WIDTH", Double.class));
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("ANGLE", Double.class));
             typeBuilder.addType(AttributeTypeFactory.newAttributeType("CONTEXT", String.class));
+            typeBuilders.put(featureName, typeBuilder);
         }
-        return typeBuilder.getFeatureType();
+        return typeBuilders.get(featureName).getFeatureType();
     }
 
     public Feature createFeature(FeatureType featureType, Element element) throws IllegalAttributeException

--
Gitblit v0.0.0-SNAPSHOT