From 4ead6c8bc67563dc640ec9131059b44cd36b12bf Mon Sep 17 00:00:00 2001
From: ?? ? <ulysseskao@ximple.com.tw>
Date: Thu, 21 Aug 2008 14:57:14 +0800
Subject: [PATCH] update for EOFM-151

---
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateMultiSymbolStrategy.java                       |    4 
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractOracleToPostGISJobContext.java |   64 ++++++++++----------
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateEllipseShapeStrategy.java                      |    2 
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateComplexChainStrategy.java                      |    8 +-
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateShapeStrategy.java                             |    4 
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateArcLineStringStrategy.java                     |    2 
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateSymbolStrategy.java                            |    2 
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/OracleConvertPostGISJobContext.java    |    7 -
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineStringStrategy.java                        |    8 +-
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateTextStrategy.java                              |    4 
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineTextStrategy.java                          |    8 +-
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractDgnToPostGISJobContext.java    |   62 ++++++++++----------
 12 files changed, 87 insertions(+), 88 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 54bc021..c68f4f3 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
@@ -81,7 +81,7 @@
                     fLinkage.getFsc(),
                     (long) fLinkage.getUfid(),
                     (short) fLinkage.getComponentID(),
-                    (short) 0,
+                    fLinkage.getOccID(),
                     (short) lineStringElement.getLevelIndex(),
                     colorTable.getColorCode(lineStringElement.getColorIndex()),
                     (short) lineStringElement.getWeight(),
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateComplexChainStrategy.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateComplexChainStrategy.java
index a372f9b..a89e279 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateComplexChainStrategy.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateComplexChainStrategy.java
@@ -89,7 +89,7 @@
                     fLinkage.getFsc(),
                     (long) fLinkage.getUfid(),
                     (short) fLinkage.getComponentID(),
-                    (short) 0,
+                    fLinkage.getOccID(),
                     (short) lineStringElement.getLevelIndex(),
                     colorTable.getColorCode(lineStringElement.getColorIndex()),
                     (short) lineStringElement.getWeight(),
@@ -110,7 +110,7 @@
                     fLinkage.getFsc(),
                     (long) fLinkage.getUfid(),
                     (short) fLinkage.getComponentID(),
-                    (short) 0,
+                    fLinkage.getOccID(),
                     (short) complexChain.getLevelIndex(),
                     colorTable.getColorCode(complexChain.getColorIndex()),
                     (short) complexChain.getWeight(),
@@ -131,7 +131,7 @@
                     fLinkage.getFsc(),
                     (long) fLinkage.getUfid(),
                     (short) fLinkage.getComponentID(),
-                    (short) 0,
+                    fLinkage.getOccID(),
                     (short) lineElement.getLevelIndex(),
                     colorTable.getColorCode(lineElement.getColorIndex()),
                     (short) lineElement.getWeight(),
@@ -153,7 +153,7 @@
                     fLinkage.getFsc(),
                     (long) fLinkage.getUfid(),
                     (short) fLinkage.getComponentID(),
-                    (short) 0,
+                    fLinkage.getOccID(),
                     (short) lineStringElement.getLevelIndex(),
                     colorTable.getColorCode(lineStringElement.getColorIndex()),
                     (short) lineStringElement.getWeight(),
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 9d0c215..3314aa9 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
@@ -81,7 +81,7 @@
                     fLinkage.getFsc(),
                     (long) fLinkage.getUfid(),
                     (short) fLinkage.getComponentID(),
-                    (short) 0,
+                    fLinkage.getOccID(),
                     (short) shapeElement.getLevelIndex(),
                     colorTable.getColorCode(shapeElement.getColorIndex()),
                     (short) shapeElement.getWeight(),
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 561edc9..1126b03 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
@@ -88,7 +88,7 @@
                     fLinkage.getFsc(),
                     (long) fLinkage.getUfid(),
                     (short) fLinkage.getComponentID(),
-                    (short) 0,
+                    fLinkage.getOccID(),
                     (short) lineStringElement.getLevelIndex(),
                     colorTable.getColorCode(lineStringElement.getColorIndex()),
                     (short) lineStringElement.getWeight(),
@@ -116,7 +116,7 @@
                     fLinkage.getFsc(),
                     (long) fLinkage.getUfid(),
                     (short) fLinkage.getComponentID(),
-                    (short) 0,
+                    fLinkage.getOccID(),
                     (short) complexChain.getLevelIndex(),
                     colorTable.getColorCode(complexChain.getColorIndex()),
                     (short) complexChain.getWeight(),
@@ -133,7 +133,7 @@
                     fLinkage.getFsc(),
                     (long) fLinkage.getUfid(),
                     (short) fLinkage.getComponentID(),
-                    (short) 0,
+                    fLinkage.getOccID(),
                     (short) lineElement.getLevelIndex(),
                     colorTable.getColorCode(lineElement.getColorIndex()),
                     (short) lineElement.getWeight(),
@@ -151,7 +151,7 @@
                     fLinkage.getFsc(),
                     (long) fLinkage.getUfid(),
                     (short) fLinkage.getComponentID(),
-                    (short) 0,
+                    fLinkage.getOccID(),
                     (short) lineStringElement.getLevelIndex(),
                     colorTable.getColorCode(lineStringElement.getColorIndex()),
                     (short) lineStringElement.getWeight(),
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 e6a2761..7440df3 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
@@ -90,7 +90,7 @@
                     fLinkage.getFsc(),
                     (long) fLinkage.getUfid(),
                     (short) fLinkage.getComponentID(),
-                    (short) 0,
+                    fLinkage.getOccID(),
                     (short) lineStringElement.getLevelIndex(),
                     colorTable.getColorCode(lineStringElement.getColorIndex()),
                     (short) lineStringElement.getWeight(),
@@ -118,7 +118,7 @@
                     fLinkage.getFsc(),
                     (long) fLinkage.getUfid(),
                     (short) fLinkage.getComponentID(),
-                    (short) 0,
+                    fLinkage.getOccID(),
                     (short) txtElement.getLevelIndex(),
                     colorTable.getColorCode(txtElement.getColorIndex()),
                     (short) txtElement.getWeight(),
@@ -149,7 +149,7 @@
                     fLinkage.getFsc(),
                     (long) fLinkage.getUfid(),
                     (short) fLinkage.getComponentID(),
-                    (short) 0,
+                    fLinkage.getOccID(),
                     (short) complexChain.getLevelIndex(),
                     colorTable.getColorCode(complexChain.getColorIndex()),
                     (short) complexChain.getWeight(),
@@ -164,7 +164,7 @@
                     fLinkage.getFsc(),
                     (long) fLinkage.getUfid(),
                     (short) fLinkage.getComponentID(),
-                    (short) 0,
+                    fLinkage.getOccID(),
                     (short) lineElement.getLevelIndex(),
                     colorTable.getColorCode(lineElement.getColorIndex()),
                     (short) lineElement.getWeight(),
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateMultiSymbolStrategy.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateMultiSymbolStrategy.java
index 096947f..e725739 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateMultiSymbolStrategy.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateMultiSymbolStrategy.java
@@ -103,7 +103,7 @@
                         fLinkage.getFsc(),
                         (long) fLinkage.getUfid(),
                         (short) fLinkage.getComponentID(),
-                        (short) 0,
+                        fLinkage.getOccID(),
                         (short) txtElement.getLevelIndex(),
                         colorTable.getColorCode(txtElement.getColorIndex()),
                         (short) txtElement.getWeight(),
@@ -143,7 +143,7 @@
                         fLinkage.getFsc(),
                         (long) fLinkage.getUfid(),
                         (short) fLinkage.getComponentID(),
-                        (short) 0,
+                        fLinkage.getOccID(),
                         (short) nodeElement.getLevelIndex(),
                         colorTable.getColorCode(nodeElement.getColorIndex()),
                         (short) nodeElement.getWeight(),
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 d42c1c8..b7f1e84 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
@@ -83,7 +83,7 @@
                         fLinkage.getFsc(),
                         (long) fLinkage.getUfid(),
                         (short) fLinkage.getComponentID(),
-                        (short) 0,
+                        fLinkage.getOccID(),
                         (short) shapeElement.getLevelIndex(),
                         colorTable.getColorCode(shapeElement.getColorIndex()),
                         (short) shapeElement.getWeight(),
@@ -100,7 +100,7 @@
                         fLinkage.getFsc(),
                         (long) fLinkage.getUfid(),
                         (short) fLinkage.getComponentID(),
-                        (short) 0,
+                        fLinkage.getOccID(),
                         (short) complexShape.getLevelIndex(),
                         colorTable.getColorCode(complexShape.getColorIndex()),
                         (short) complexShape.getWeight(),
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 2b3fd93..9852472 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
@@ -99,7 +99,7 @@
                     fLinkage.getFsc(),
                     (long) fLinkage.getUfid(),
                     (short) fLinkage.getComponentID(),
-                    (short) 0,
+                    fLinkage.getOccID(),
                     (short) txtElement.getLevelIndex(),
                     colorTable.getColorCode(txtElement.getColorIndex()),
                     (short) txtElement.getWeight(),
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 cca31c2..7257d94 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
@@ -88,7 +88,7 @@
                     fLinkage.getFsc(),
                     (long) fLinkage.getUfid(),
                     (short) fLinkage.getComponentID(),
-                    (short) 0,
+                    fLinkage.getOccID(),
                     (short) txtElement.getLevelIndex(),
                     colorTable.getColorCode(txtElement.getColorIndex()),
                     (short) txtElement.getWeight(),
@@ -122,7 +122,7 @@
                     fLinkage.getFsc(),
                     (long) fLinkage.getUfid(),
                     (short) fLinkage.getComponentID(),
-                    (short) 0,
+                    fLinkage.getOccID(),
                     (short) nodeElement.getLevelIndex(),
                     colorTable.getColorCode(nodeElement.getColorIndex()),
                     (short) nodeElement.getWeight(),
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractDgnToPostGISJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractDgnToPostGISJobContext.java
index 9b57459..24528bb 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractDgnToPostGISJobContext.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractDgnToPostGISJobContext.java
@@ -340,30 +340,7 @@
             GeometryAttributeType geomAttribute = (GeometryAttributeType) anAttributeType;
 
             CoordinateReferenceSystem refSys = geomAttribute.getCoordinateSystem();
-            int SRID;
-
-            if (refSys != null)
-            {
-                try
-                {
-                    Set ident = refSys.getIdentifiers();
-                    if ((ident == null || ident.isEmpty()) && refSys == DefaultGeographicCRS.WGS84)
-                    {
-                        SRID = 4326;
-                    } else
-                    {
-                        String code = ((NamedIdentifier) ident.toArray()[0]).getCode();
-                        SRID = Integer.parseInt(code);
-                    }
-                } catch (Exception e)
-                {
-                    getLogger().warn("SRID could not be determined");
-                    SRID = -1;
-                }
-            } else
-            {
-                SRID = -1;
-            }
+            int SRID = getSRID(refSys);
 
             sqlStr = addGeometryColumn(getTargetSchema(), tableName, geomAttribute, SRID);
             getLogger().debug(sqlStr);
@@ -391,18 +368,44 @@
         return result;
     }
 
+    private int getSRID(CoordinateReferenceSystem refSys)
+    {
+        int SRID;
+        if (refSys != null)
+        {
+            try
+            {
+                Set ident = refSys.getIdentifiers();
+                if ((ident == null || ident.isEmpty()) && refSys == DefaultGeographicCRS.WGS84)
+                {
+                    SRID = 4326;
+                } else
+                {
+                    String code = ((NamedIdentifier) ident.toArray()[0]).getCode();
+                    SRID = Integer.parseInt(code);
+                }
+            } catch (Exception e)
+            {
+                getLogger().warn("SRID could not be determined");
+                SRID = -1;
+            }
+        } else
+        {
+            SRID = -1;
+        }
+        return SRID;
+    }
+
     private boolean tablePresent(String schema, String table, Connection conn) throws IOException
     {
         final int TABLE_NAME_COL = 3;
 
+        ResultSet tables = null;
         try
         {
-            conn = getConnection();
-
             DatabaseMetaData meta = conn.getMetaData();
             String[] tableType = {"TABLE"};
-            ResultSet tables = meta.getTables(null,
-                    schema, "%", tableType);
+            tables = meta.getTables(null, schema, "%", tableType);
 
             while (tables.next())
             {
@@ -411,12 +414,10 @@
                 if (allowTable(tableName) && (tableName != null)
                         && (tableName.equalsIgnoreCase(table)))
                 {
-                    tables.close();
                     return (true);
                 }
             }
 
-            tables.close();
             return false;
         } catch (SQLException sqlException)
         {
@@ -429,6 +430,7 @@
         } finally
         {
             // JDBCUtils.close(conn, Transaction.AUTO_COMMIT, null);
+            if (tables != null) try { tables.close(); } catch (SQLException e) {}
         }
     }
 
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractOracleToPostGISJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractOracleToPostGISJobContext.java
index 7ec56f1..e972900 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractOracleToPostGISJobContext.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractOracleToPostGISJobContext.java
@@ -341,30 +341,7 @@
             GeometryAttributeType geomAttribute = (GeometryAttributeType) anAttributeType;
 
             CoordinateReferenceSystem refSys = geomAttribute.getCoordinateSystem();
-            int SRID;
-
-            if (refSys != null)
-            {
-                try
-                {
-                    Set ident = refSys.getIdentifiers();
-                    if ((ident == null || ident.isEmpty()) && refSys == DefaultGeographicCRS.WGS84)
-                    {
-                        SRID = 4326;
-                    } else
-                    {
-                        String code = ((NamedIdentifier) ident.toArray()[0]).getCode();
-                        SRID = Integer.parseInt(code);
-                    }
-                } catch (Exception e)
-                {
-                    getLogger().warn("SRID could not be determined");
-                    SRID = -1;
-                }
-            } else
-            {
-                SRID = -1;
-            }
+            int SRID = getSRID(refSys);
 
             sqlStr = addGeometryColumn(getTargetSchema(), tableName, geomAttribute, SRID);
             getLogger().debug(sqlStr);
@@ -393,18 +370,44 @@
         return result;
     }
 
+    private int getSRID(CoordinateReferenceSystem refSys)
+    {
+        int SRID;
+        if (refSys != null)
+        {
+            try
+            {
+                Set ident = refSys.getIdentifiers();
+                if ((ident == null || ident.isEmpty()) && refSys == DefaultGeographicCRS.WGS84)
+                {
+                    SRID = 4326;
+                } else
+                {
+                    String code = ((NamedIdentifier) ident.toArray()[0]).getCode();
+                    SRID = Integer.parseInt(code);
+                }
+            } catch (Exception e)
+            {
+                getLogger().warn("SRID could not be determined");
+                SRID = -1;
+            }
+        } else
+        {
+            SRID = -1;
+        }
+        return SRID;
+    }
+
     private boolean tablePresent(String schema, String table, Connection conn) throws IOException
     {
         final int TABLE_NAME_COL = 3;
 
+        ResultSet tables = null;
         try
         {
-            conn = getConnection();
-
             DatabaseMetaData meta = conn.getMetaData();
             String[] tableType = {"TABLE"};
-            ResultSet tables = meta.getTables(null,
-                    schema, "%", tableType);
+            tables = meta.getTables(null, schema, "%", tableType);
 
             while (tables.next())
             {
@@ -413,23 +416,20 @@
                 if (allowTable(tableName) && (tableName != null)
                         && (tableName.equalsIgnoreCase(table)))
                 {
-                    tables.close();
                     return true;
                 }
             }
 
-            tables.close();
             return false;
         } catch (SQLException sqlException)
         {
             // JDBCUtils.close(conn, Transaction.AUTO_COMMIT, sqlException);
-            // conn = null;
-
             String message = "Error querying database for list of tables:"
                     + sqlException.getMessage();
             throw new DataSourceException(message, sqlException);
         } finally
         {
+            if (tables != null) try { tables.close(); } catch (SQLException e) {}
             // JDBCUtils.close(conn, Transaction.AUTO_COMMIT, null);
         }
     }
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/OracleConvertPostGISJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/OracleConvertPostGISJobContext.java
index 6e7daae..0362191 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/OracleConvertPostGISJobContext.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/OracleConvertPostGISJobContext.java
@@ -31,8 +31,6 @@
 import org.xml.sax.SAXException;
 
 import com.vividsolutions.jts.util.Assert;
-import com.vividsolutions.jts.geom.GeometryFactory;
-import com.vividsolutions.jts.geom.Geometry;
 
 import com.ximple.eofms.filter.AbstractFLinkageDispatchableFilter;
 import com.ximple.eofms.filter.CreateFeatureTypeEventListener;
@@ -42,7 +40,6 @@
 import com.ximple.io.dgn7.ComplexElement;
 import com.ximple.io.dgn7.Element;
 import com.ximple.io.dgn7.FrammeAttributeData;
-import com.ximple.io.dgn7.ComplexChainElement;
 
 public class OracleConvertPostGISJobContext extends AbstractOracleToPostGISJobContext
         implements CreateFeatureTypeEventListener
@@ -349,14 +346,14 @@
     {
         try
         {
-            clearFeatureData(evt.getFeatureType());
+            createOrClearFeatureDataTable(evt.getFeatureType());
         } catch (SchemaException e)
         {
             logger.warn(e.getMessage(), e);
         }
     }
 
-    protected void clearFeatureData(FeatureType featureType) throws SchemaException
+    protected void createOrClearFeatureDataTable(FeatureType featureType) throws SchemaException
     {
         String featureName = featureType.getTypeName();
         if (isExistFeature(featureType))

--
Gitblit v0.0.0-SNAPSHOT