From da578baa1895dd4ef168904c84c0e08275bb8c53 Mon Sep 17 00:00:00 2001
From: ?? ? <ulysseskao@ximple.com.tw>
Date: Mon, 01 Sep 2008 12:26:07 +0800
Subject: [PATCH] update for EOFM-159, EOFM-160

---
 xdgnjobs/ximple-elmparser/src/main/java/com/ximple/eofms/XElementParser.java    |   62 +++++++++++++++++--------------
 xdgnjobs/ximple-spatialjob/src/main/resources/conf/DefaultConvertShpFilter.xml  |   50 +++++++++++++++++++++++++
 xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/ComplexChainElement.java |    2 +
 xdgnjobs/ximple-elmparser/src/main/resources/log4j.properties                   |    3 +
 4 files changed, 88 insertions(+), 29 deletions(-)

diff --git a/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/ComplexChainElement.java b/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/ComplexChainElement.java
index 5fc5209..95a0758 100644
--- a/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/ComplexChainElement.java
+++ b/xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/ComplexChainElement.java
@@ -171,6 +171,8 @@
             } else if (element instanceof ArcElement)
             {
                 lineStrings.add((LineString) ((ArcElement) element).toGeometry(factory));
+            } else {
+                logger.warn("Unknown sub-element in ComplexChain Element-" + element.getElementType());
             }
         }
 
diff --git a/xdgnjobs/ximple-elmparser/src/main/java/com/ximple/eofms/XElementParser.java b/xdgnjobs/ximple-elmparser/src/main/java/com/ximple/eofms/XElementParser.java
index 85c406f..d616bd8 100644
--- a/xdgnjobs/ximple-elmparser/src/main/java/com/ximple/eofms/XElementParser.java
+++ b/xdgnjobs/ximple-elmparser/src/main/java/com/ximple/eofms/XElementParser.java
@@ -1,43 +1,45 @@
 package com.ximple.eofms;
 
-import java.util.HashMap;
-import java.util.ArrayList;
-import java.util.List;
 import java.io.File;
-import java.io.FilenameFilter;
 import java.io.FileInputStream;
-import java.io.IOException;
 import java.io.FileNotFoundException;
+import java.io.FilenameFilter;
+import java.io.IOException;
 import java.io.UnsupportedEncodingException;
-import java.nio.channels.FileChannel;
-import java.net.URL;
 import java.net.MalformedURLException;
+import java.net.URL;
+import java.nio.channels.FileChannel;
+import java.util.HashMap;
+import java.util.List;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+import org.apache.commons.collections.map.MultiValueMap;
 import org.apache.commons.digester.Digester;
 import org.apache.commons.digester.xmlrules.DigesterLoader;
-import org.apache.commons.collections.map.MultiValueMap;
-import org.xml.sax.SAXException;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.geotools.feature.Feature;
+import org.xml.sax.SAXException;
 
 import com.vividsolutions.jts.geom.GeometryFactory;
 
-import com.ximple.io.dgn7.Dgn7fileReader;
-import com.ximple.io.dgn7.Lock;
+import com.ximple.eofms.filter.AbstractFLinkageDispatchableFilter;
+import com.ximple.eofms.filter.ElementDispatcher;
+import com.ximple.eofms.jobs.context.postgis.FeatureDgnConvertPostGISJobContext;
+import com.ximple.io.dgn7.ComplexChainElement;
+import com.ximple.io.dgn7.ComplexElement;
 import com.ximple.io.dgn7.Dgn7fileException;
+import com.ximple.io.dgn7.Dgn7fileReader;
 import com.ximple.io.dgn7.Element;
 import com.ximple.io.dgn7.ElementType;
-import com.ximple.io.dgn7.ComplexElement;
 import com.ximple.io.dgn7.FrammeAttributeData;
-import com.ximple.eofms.filter.ElementDispatcher;
-import com.ximple.eofms.filter.AbstractFLinkageDispatchableFilter;
-import com.ximple.eofms.jobs.context.postgis.FeatureDgnConvertPostGISJobContext;
+import com.ximple.io.dgn7.Lock;
 
 public class XElementParser implements Runnable
 {
     static Log logger = LogFactory.getLog(XElementParser.class);
     static final GeometryFactory geometryFactory = new GeometryFactory();
+
+    static final boolean isCompactMode = true;
 
     private HashMap<String, String> dataConfig;
     private ElementDispatcher elementDispatcher;
@@ -188,7 +190,7 @@
         {
             FrammeAttributeData linkage =
                     AbstractFLinkageDispatchableFilter.getFeatureLinkage(element);
-            if (linkage != null)
+            if ((isCompactMode) && (linkage != null))
             {
                 logger.warn("Unknown Element:" + element.getElementType().toString() +
                         ":type=" + element.getType() + ":lv=" + element.getLevelIndex() + ":id=" +
@@ -198,19 +200,19 @@
                     ComplexElement complex = (ComplexElement) element;
                     logger.warn("----Complex Element size=" + complex.size());
                 }
-            }
 
-            /*
-            logger.warn("Unknown Element:" + element.getElementType().toString() +
-                    ":type=" + element.getType() + ":lv=" + element.getLevelIndex() + ":id=" +
-                    (linkage == null ? "NULL" : (linkage.getFsc() + "|" + linkage.getComponentID())));
+                manualElementProcess(element);
+            } else if (!isCompactMode) {
+                logger.warn("Unknown Element:" + element.getElementType().toString() +
+                        ":type=" + element.getType() + ":lv=" + element.getLevelIndex() + ":id=" +
+                        (linkage == null ? "NULL" : (linkage.getFsc() + "|" + linkage.getComponentID())));
 
-            if (element instanceof ComplexElement)
-            {
-                ComplexElement complex = (ComplexElement) element;
-                logger.warn("----Complex Element size=" + complex.size());
+                if (element instanceof ComplexElement)
+                {
+                    ComplexElement complex = (ComplexElement) element;
+                    logger.warn("----Complex Element size=" + complex.size());
+                }
             }
-            */
 
             return;
         }
@@ -218,6 +220,10 @@
         featuresContext.put(feature.getFeatureType(), feature);
     }
 
+    private void manualElementProcess(Element element)
+    {
+    }
+
     private void postProcessFeatureContext()
     {
         if (featuresContext.size() == 0) return;
diff --git a/xdgnjobs/ximple-elmparser/src/main/resources/log4j.properties b/xdgnjobs/ximple-elmparser/src/main/resources/log4j.properties
index 2340551..5597ef1 100644
--- a/xdgnjobs/ximple-elmparser/src/main/resources/log4j.properties
+++ b/xdgnjobs/ximple-elmparser/src/main/resources/log4j.properties
@@ -25,4 +25,5 @@
 
 # Print messages of level INFO or above for examples
 log4j.logger.org.cavaness.quartzbook=INFO
-log4j.logger.com.ximple.eofms=INFO
\ No newline at end of file
+log4j.logger.com.ximple.eofms=INFO
+log4j.logger.com.ximple.io.dgn7=INFO
\ No newline at end of file
diff --git a/xdgnjobs/ximple-spatialjob/src/main/resources/conf/DefaultConvertShpFilter.xml b/xdgnjobs/ximple-spatialjob/src/main/resources/conf/DefaultConvertShpFilter.xml
index 931cb11..1b27c51 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/resources/conf/DefaultConvertShpFilter.xml
+++ b/xdgnjobs/ximple-spatialjob/src/main/resources/conf/DefaultConvertShpFilter.xml
@@ -115,6 +115,51 @@
     </elementCriterion>
     <SymbolCreateStrategy/>
   </TypeCompFilter>
+  <TypeCompFilter name="FSC-411.C-8">
+    <tid>411</tid>
+    <cid>8</cid>
+    <description>�t�q��1/1200�ޤW�U�Ÿ�</description>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
+    <SymbolCreateStrategy/>
+  </TypeCompFilter>
+  <TypeCompFilter name="FSC-417.C-0">
+    <tid>417</tid>
+    <cid>0</cid>
+    <description>�@�c��Ƥ�</description>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
+    <SymbolCreateStrategy/>
+  </TypeCompFilter>
+  <TypeCompFilter name="FSC-417.C-1">
+    <tid>417</tid>
+    <cid>1</cid>
+    <description>�@�c��Ƥյ��O</description>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
+    <TextCreateStrategy/>
+  </TypeCompFilter>
+  <TypeCompFilter name="FSC-419.C-0">
+    <tid>419</tid>
+    <cid>0</cid>
+    <description>�s����</description>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
+    <SymbolCreateStrategy/>
+  </TypeCompFilter>
+  <TypeCompFilter name="FSC-419.C-1">
+    <tid>419</tid>
+    <cid>1</cid>
+    <description>�s���չϸ��y��</description>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
+    <TextCreateStrategy/>
+  </TypeCompFilter>
   <TypeCompFilter name="FSC-420.C-0">
     <tid>420</tid>
     <cid>0</cid>
@@ -176,6 +221,7 @@
     <cid>2</cid>
     <description>���׵��O</description>
     <elementCriterion>
+      <elementType>7</elementType>
       <elementType>17</elementType>
     </elementCriterion>
     <TextCreateStrategy/>
@@ -729,6 +775,7 @@
     <description>�����u��(�u���ϥ�)</description>
     <elementCriterion>
       <elementType>12</elementType>
+      <elementType>4</elementType>
     </elementCriterion>
     <LineCreateStrategy/>
   </TypeCompFilter>
@@ -738,6 +785,7 @@
     <description>�޽u(�u���ϥ�)</description>
     <elementCriterion>
       <elementType>12</elementType>
+      <elementType>4</elementType>
     </elementCriterion>
     <LineCreateStrategy/>
   </TypeCompFilter>
@@ -757,6 +805,7 @@
     <description>�X�u�N���޽u(�u���ϥ�)</description>
     <elementCriterion>
       <elementType>12</elementType>
+      <elementType>4</elementType>
     </elementCriterion>
     <LineCreateStrategy/>
   </TypeCompFilter>
@@ -873,6 +922,7 @@
     <cid>0</cid>
     <description>�C���ɽu</description>
     <elementCriterion>
+      <elementType>4</elementType>
       <elementType>12</elementType>
     </elementCriterion>
     <LineCreateStrategy/>

--
Gitblit v0.0.0-SNAPSHOT