From 2bcf5a6ff5b8ea1799afd9b30f602a6670e6794c Mon Sep 17 00:00:00 2001
From: ?? ? <neonhuang@hotmail.com>
Date: Mon, 31 Mar 2008 11:32:29 +0800
Subject: [PATCH] 

---
 xdgnjobs/ximple-spatialjob/src/test/resources/com/ximple/eofms/filter/test-data/testElementFilter.xml   |    9 +
 xdgnjobs/ximple-spatialjob/src/main/resources/conf/DefaultConvertShpFilter.xml                          |  288 +++++++++++++++++++++++++++++++----------
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeIdDispatchableFilter.java          |    2 
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompLevelIdDispatchableFilter.java |    3 
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/ElementTypeCriterion.java              |   27 +++
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompIdDispatchableFilter.java      |   24 --
 xdgnjobs/ximple-spatialjob/src/main/resources/com/ximple/eofms/filter/ElementDispatcherRules.xml        |   20 +-
 7 files changed, 262 insertions(+), 111 deletions(-)

diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/ElementTypeCriterion.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/ElementTypeCriterion.java
index 4f6c1ad..4c51245 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/ElementTypeCriterion.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/ElementTypeCriterion.java
@@ -2,12 +2,16 @@
 
 import com.ximple.io.dgn7.Element;
 
+import java.util.ArrayList;
+
 public class ElementTypeCriterion implements Comparable
 {
-    private int elementTypeId;
+    private int elementType;
+    private ArrayList<Integer> elementTypeArray  ;
 
     public ElementTypeCriterion()
     {
+            elementTypeArray = new ArrayList<Integer>();
     }
 
     public int compareTo(Object o)
@@ -15,19 +19,30 @@
         if (o instanceof Element)
         {
             Element elm = (Element) o;
-            if (elm.getElementType().id == elementTypeId)
+
+            for(Integer etype : getElementTypeArray())
+            {
+             if (elm.getElementType().id == etype.intValue())
                 return 0;
+            }
+
         }
         return -1;
     }
 
-    public int getElementTypeId()
+    public int getElementType()
     {
-        return elementTypeId;
+        return elementType;
     }
 
-    public void setElementTypeId(int elementTypeId)
+     public ArrayList<Integer> getElementTypeArray()
     {
-        this.elementTypeId = elementTypeId;
+        return elementTypeArray;
+    }
+
+    public void setElementType(int itype)
+    {
+        this.elementType =  itype ;
+        this.elementTypeArray.add(itype);
     }
 }
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompIdDispatchableFilter.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompIdDispatchableFilter.java
index 26e3ca3..e5e80b6 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompIdDispatchableFilter.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompIdDispatchableFilter.java
@@ -15,7 +15,6 @@
     private int tid;
     private int cid;
     private CreateFeatureTypeStrategy createStrategy;
-    private ArrayList<java.lang.Integer> elemtypeArray = new ArrayList<java.lang.Integer>();
 
     public TypeCompIdDispatchableFilter()
     {
@@ -51,11 +50,6 @@
         this.cid = cid;
     }
 
-    public void setElemtypeArray(java.lang.Integer etype)
-    {
-        this.elemtypeArray.add(etype);
-    }
-
     public CreateFeatureTypeStrategy getCreateStrategy()
     {
         return createStrategy;
@@ -67,24 +61,14 @@
     }
 
 
+
     //�P�_�O�_�ũM����
     public boolean isDispatchable(Element element)
     {
         FrammeAttributeData featureLinkage = getFeatureLinkage(element);
-        if( featureLinkage != null && tid == featureLinkage.getFsc() && (cid == featureLinkage.getComponentID()))
-        {
-           for (Integer itype : this.elemtypeArray)
-           {
-               if(itype.intValue() == element.getElementType().id)
-               {
-                  return true ;
-               }
-           }
-
-          return false ;
-        }
-
-        return false ;
+        return featureLinkage != null && tid == featureLinkage.getFsc() &&
+                (cid == featureLinkage.getComponentID()) &&
+                (compareType(element) == 0);
     }
 
     public Feature execute(Element element)
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompLevelIdDispatchableFilter.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompLevelIdDispatchableFilter.java
index 3371f6b..d6b0e03 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompLevelIdDispatchableFilter.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompLevelIdDispatchableFilter.java
@@ -75,8 +75,7 @@
         FrammeAttributeData featureLinkage = getFeatureLinkage(element);
         return featureLinkage != null && tid == featureLinkage.getFsc() &&
                 (cid == featureLinkage.getComponentID()) &&
-                (lid == element.getLevelIndex()) &&
-                (getElmtype() == element.getElementType().id);
+                (lid == element.getLevelIndex()) && (compareType(element) == 0);
     }
 
     public Feature execute(Element element)
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeIdDispatchableFilter.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeIdDispatchableFilter.java
index 2c874d9..c45b547 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeIdDispatchableFilter.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeIdDispatchableFilter.java
@@ -51,7 +51,7 @@
     {
         FrammeAttributeData featureLinkage = getFeatureLinkage(element);
         return featureLinkage != null && tid == featureLinkage.getFsc() &&
-                (getElmtype() == element.getElementType().id);
+                (compareType(element) == 0);
     }
 
     public Feature execute(Element element)
diff --git a/xdgnjobs/ximple-spatialjob/src/main/resources/com/ximple/eofms/filter/ElementDispatcherRules.xml b/xdgnjobs/ximple-spatialjob/src/main/resources/com/ximple/eofms/filter/ElementDispatcherRules.xml
index fb05ecc..bd136dc 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/resources/com/ximple/eofms/filter/ElementDispatcherRules.xml
+++ b/xdgnjobs/ximple-spatialjob/src/main/resources/com/ximple/eofms/filter/ElementDispatcherRules.xml
@@ -29,23 +29,25 @@
       <set-properties-rule/>
       <bean-property-setter-rule pattern="name"/>
       <bean-property-setter-rule pattern="description"/>
-      <bean-property-setter-rule pattern="elmtype"/>
+       <!-- <bean-property-setter-rule pattern="elmtype"/> -->
       <bean-property-setter-rule pattern="tid"/>
       <bean-property-setter-rule pattern="cid"/>
-        <pattern value="elmtype">
-            <set-next-rule methodname="setElemtypeArray"  paramtype="java.lang.Integer"/>
-            <set-properties-rule/>
-        </pattern>
-        <pattern value="LineCreateStrategy">
+      <pattern value="elementCriterion">
+        <object-create-rule classname="com.ximple.eofms.filter.ElementTypeCriterion"/>
+        <set-next-rule methodname="addCriterion" paramtype="com.ximple.eofms.filter.ElementTypeCriterion"/>
+        <set-properties-rule/>
+       <bean-property-setter-rule pattern="elementType"/>
+      </pattern>
+      <pattern value="LineCreateStrategy">
             <object-create-rule classname="com.ximple.eofms.filter.CreateLineStringStrategy"/>
             <set-next-rule methodname="setCreateStrategy" paramtype="com.ximple.eofms.filter.CreateFeatureTypeStrategy"/>
             <set-properties-rule/>
-        </pattern>
-        <pattern value="TextCreateStrategy">
+      </pattern>
+      <pattern value="TextCreateStrategy">
             <object-create-rule classname="com.ximple.eofms.filter.CreateTextStrategy"/>
             <set-next-rule methodname="setCreateStrategy" paramtype="com.ximple.eofms.filter.CreateFeatureTypeStrategy"/>
             <set-properties-rule/>
-        </pattern>
+      </pattern>
     </pattern>
     <pattern value="TypeCompLevelFilter">
       <object-create-rule classname="com.ximple.eofms.filter.TypeCompLevelIdDispatchableFilter"/>
diff --git a/xdgnjobs/ximple-spatialjob/src/main/resources/conf/DefaultConvertShpFilter.xml b/xdgnjobs/ximple-spatialjob/src/main/resources/conf/DefaultConvertShpFilter.xml
index 2ae005f..faf23de 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/resources/conf/DefaultConvertShpFilter.xml
+++ b/xdgnjobs/ximple-spatialjob/src/main/resources/conf/DefaultConvertShpFilter.xml
@@ -5,274 +5,357 @@
     <tid>106</tid>
     <cid>0</cid>
     <description>�D�����u</description>
-    <elmtype>12</elmtype>
+    <elementCriterion>
+      <elementType>12</elementType>
+    </elementCriterion>
     <LineCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-402.C-0">
     <tid>402</tid>
     <cid>0</cid>
     <description>�ܹq��</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-402.C-1">
     <tid>402</tid>
     <cid>1</cid>
     <description>�ܹq�ҵ��O</description>
-    <elmtype>7</elmtype>
+    <elementCriterion>
+      <elementType>7</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-402.C-2">
     <tid>402</tid>
     <cid>2</cid>
     <description>�ܹq�Ҥ�����O</description>
-    <elmtype>7</elmtype>
+    <elementCriterion>
+      <elementType>7</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-411.C-0">
     <tid>411</tid>
     <cid>0</cid>
     <description>�t�q��</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-411.C-1">
     <tid>411</tid>
     <cid>1</cid>
     <description>�t�q�����O</description>
-    <elmtype>7</elmtype>
+    <elementCriterion>
+      <elementType>7</elementType>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-411.C-2">
     <tid>411</tid>
     <cid>2</cid>
     <description>�t�q��-1/600</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-411.C-3">
     <tid>411</tid>
     <cid>3</cid>
     <description>�t�q�����O-1/600</description>
-    <elmtype>7</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-407.C-0">
     <tid>407</tid>
     <cid>0</cid>
     <description>�q��</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-407.C-1">
     <tid>407</tid>
     <cid>1</cid>
     <description>�q����O</description>
-    <elmtype>7</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+      <elementType>7</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-407.C-2">
     <tid>407</tid>
     <cid>2</cid>
     <description>�q��-1/600</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-407.C-3">
     <tid>407</tid>
     <cid>3</cid>
     <description>�q��-1/600���O</description>
-    <elmtype>7</elmtype>
+    <elementCriterion>
+      <elementType>7</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-114.C-0">
     <tid>114</tid>
     <cid>0</cid>
     <description>�}��</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-114.C-1">
     <tid>114</tid>
     <cid>1</cid>
     <description>�}���j�����O</description>
-    <elmtype>17</elmtype>
-    <elmtype>7</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+      <elementType>7</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-114.C-2">
     <tid>114</tid>
     <cid>2</cid>
     <description>�}���p�P��</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-114.C-3">
     <tid>114</tid>
     <cid>3</cid>
     <description>�}���j�P��</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-122.C-0">
     <tid>122</tid>
     <cid>0</cid>
     <description>�����s��</description>
-    <elmtype>4</elmtype>
+    <elementCriterion>
+      <elementType>4</elementType>
+      <elementType>17</elementType>  
+    </elementCriterion>
     <LineCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-122.C-1">
     <tid>122</tid>
     <cid>1</cid>
     <description>�����s�����O</description>
-    <elmtype>7</elmtype>
+    <elementCriterion>
+      <elementType>7</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-107.C-0">
     <tid>107</tid>
     <cid>0</cid>
     <description>������</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-107.C-2">
     <tid>107</tid>
     <cid>2</cid>
     <description>�����Τᤤ����O</description>
-    <elmtype>7</elmtype>
+    <elementCriterion>
+      <elementType>7</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-117.C-0">
     <tid>117</tid>
     <cid>0</cid>
     <description>Tie������</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-105.C-0">
     <tid>105</tid>
     <cid>0</cid>
     <description>�������Y</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-105.C-1">
     <tid>105</tid>
     <cid>1</cid>
     <description>�������Y���O</description>
-    <elmtype>7</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-101.C-0">
     <tid>101</tid>
     <cid>0</cid>
     <description>�׬y��</description>
-    <elmtype>4</elmtype>
+    <elementCriterion>
+      <elementType>4</elementType>
+      <elementType>12</elementType>
+    </elementCriterion>
     <LineCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-120.C-0">
     <tid>120</tid>
     <cid>0</cid>
     <description>�`�I</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-150.C-0">
     <tid>150</tid>
     <cid>0</cid>
     <description>����}��</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-130.C-0">
     <tid>130</tid>
     <cid>0</cid>
     <description>�ɽu��e</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-131.C-0">
     <tid>131</tid>
     <cid>0</cid>
     <description>�ɽu�ܧ�</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-109.C-0">
     <tid>109</tid>
     <cid>0</cid>
     <description>���u�s��</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-116.C-0">
     <tid>116</tid>
     <cid>0</cid>
     <description>�����׺�</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-108.C-0">
     <tid>108</tid>
     <cid>0</cid>
     <description>�_����</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-108.C-1">
     <tid>108</tid>
     <cid>1</cid>
     <description>�_�������O</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+      <elementType>7</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-119.C-0">
     <tid>119</tid>
     <cid>0</cid>
     <description>�q��</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-115.C-0">
     <tid>115</tid>
     <cid>0</cid>
     <description>������</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-115.C-1">
     <tid>115</tid>
     <cid>1</cid>
     <description>���������O</description>
-    <elmtype>7</elmtype>
+    <elementCriterion>
+      <elementType>7</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-102.C-0">
     <tid>102</tid>
     <cid>0</cid>
     <description>�q�e��</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-100.C-0">
     <tid>100</tid>
     <cid>0</cid>
     <description>�׹p��</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-140.C-0">
     <tid>140</tid>
     <cid>0</cid>
     <description>�����u��</description>
-    <elmtype>12</elmtype>
+    <elementCriterion>
+      <elementType>12</elementType>
+    </elementCriterion>
     <LineCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-151.C-0">
     <tid>150</tid>
     <cid>0</cid>
     <description>�`���}��</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <!-- Low Voltage Features -->
@@ -280,112 +363,144 @@
     <tid>200</tid>
     <cid>0</cid>
     <description>�C���`�I</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-201.C-0">
     <tid>201</tid>
     <cid>0</cid>
     <description>����u</description>
-    <elmtype>12</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <LineCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-201.C-1">
     <tid>201</tid>
     <cid>1</cid>
     <description>����u���O</description>
-    <elmtype>7</elmtype>
+    <elementCriterion>
+      <elementType>7</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-201.C-2">
     <tid>201</tid>
     <cid>2</cid>
     <description>����u���׵��O</description>
-    <elmtype>7</elmtype>
+    <elementCriterion>
+      <elementType>7</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-202.C-0">
     <tid>202</tid>
     <cid>0</cid>
     <description>�����I</description>
-    <elmtype>17</elmtype>
+   <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-202.C-1">
     <tid>202</tid>
     <cid>1</cid>
     <description>�����I���P���O</description>
-    <elmtype>7</elmtype>
+    <elementCriterion>
+      <elementType>7</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-203.C-0">
     <tid>203</tid>
     <cid>0</cid>
     <description>���O�d�������I</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-203.C-1">
     <tid>203</tid>
     <cid>1</cid>
     <description>���O�d�������I���O</description>
-    <elmtype>7</elmtype>
+    <elementCriterion>
+      <elementType>7</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-204.C-0">
     <tid>204</tid>
     <cid>0</cid>
     <description>�C�����u</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-205.C-0">
     <tid>205</tid>
     <cid>0</cid>
     <description>�C���ɽu</description>
-    <elmtype>12</elmtype>
+    <elementCriterion>
+      <elementType>12</elementType>
+    </elementCriterion>
     <LineCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-205.C-1">
     <tid>205</tid>
     <cid>1</cid>
     <description>�C���ɽu���O</description>
-    <elmtype>7</elmtype>
+    <elementCriterion>
+      <elementType>7</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-205.C-2">
     <tid>205</tid>
     <cid>2</cid>
     <description>�C���ɽu���׵��O</description>
-    <elmtype>7</elmtype>
+    <elementCriterion>
+      <elementType>7</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-206.C-0">
     <tid>206</tid>
     <cid>0</cid>
     <description>�C�������c</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-207.C-0">
     <tid>207</tid>
     <cid>0</cid>
     <description>�C��ĵ����</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-208.C-0">
     <tid>208</tid>
     <cid>0</cid>
     <description>�C���׺�</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-209.C-0">
     <tid>209</tid>
     <cid>0</cid>
     <description>�C����q���x</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-210.C-0">
@@ -399,14 +514,18 @@
     <tid>210</tid>
     <cid>1</cid>
     <description>�C���a�U�ɽu���I�Ÿ�</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
    <TypeCompFilter name="FSC-210.C-2">
     <tid>210</tid>
     <cid>2</cid>
     <description>�C���a�U�ɽu���׵��O</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-210.C-3">
@@ -420,7 +539,9 @@
     <tid>210</tid>
     <cid>4</cid>
     <description>�C���a�U�ɽu���O</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
 
@@ -428,21 +549,27 @@
     <tid>211</tid>
     <cid>0</cid>
     <description>�C���[�ű���u</description>
-    <elmtype>4</elmtype>
+    <elementCriterion>
+      <elementType>4</elementType>
+    </elementCriterion>
     <LineCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-211.C-1">
     <tid>211</tid>
     <cid>1</cid>
     <description>�C���[�ű���u</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-211.C-2">
     <tid>211</tid>
     <cid>2</cid>
     <description>�C���[�ű���u���׵��O</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
 
@@ -450,21 +577,27 @@
     <tid>212</tid>
     <cid>0</cid>
     <description>�C���[�ųs������u</description>
-    <elmtype>4</elmtype>
+    <elementCriterion>
+      <elementType>4</elementType>
+    </elementCriterion>
     <LineCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-212.C-1">
     <tid>212</tid>
     <cid>1</cid>
     <description>�C���[�ųs������u���O</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-212.C-2">
     <tid>212</tid>
     <cid>2</cid>
     <description>�C���[�ųs������u���׵��O</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
 
@@ -472,21 +605,27 @@
     <tid>213</tid>
     <cid>0</cid>
     <description>�C���a�U�s������u</description>
-    <elmtype>4</elmtype>
+    <elementCriterion>
+      <elementType>4</elementType>
+    </elementCriterion>
     <LineCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-213.C-1">
     <tid>213</tid>
     <cid>1</cid>
     <description>�C���a�U�s������u���O</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompFilter name="FSC-213.C-2">
     <tid>213</tid>
     <cid>2</cid>
     <description>�C���a�U�s������u���׵��O</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
 
@@ -494,7 +633,9 @@
     <tid>215</tid>
     <cid>0</cid>
     <description>�C���۰ʭt�������}��</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
 
@@ -502,7 +643,9 @@
     <tid>216</tid>
     <cid>0</cid>
     <description>�a�U�C���ʵ���</description>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
 
@@ -510,7 +653,10 @@
     <tid>999</tid>
     <cid>0</cid>
     <description>���O</description>
-    <elmtype>4</elmtype>
+    <elementCriterion>
+      <elementType>4</elementType>
+      <elementType>17</elementType>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
 
diff --git a/xdgnjobs/ximple-spatialjob/src/test/resources/com/ximple/eofms/filter/test-data/testElementFilter.xml b/xdgnjobs/ximple-spatialjob/src/test/resources/com/ximple/eofms/filter/test-data/testElementFilter.xml
index c8c4897..2be77e2 100644
--- a/xdgnjobs/ximple-spatialjob/src/test/resources/com/ximple/eofms/filter/test-data/testElementFilter.xml
+++ b/xdgnjobs/ximple-spatialjob/src/test/resources/com/ximple/eofms/filter/test-data/testElementFilter.xml
@@ -13,14 +13,19 @@
     <tid>107</tid>
     <cid>11</cid>
     <description>DemoFilter for DemoFeature</description>
-    <elmtype>7</elmtype>
+    <elementCriterion>
+      <elementtype>7</elementtype>
+    </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
   <TypeCompLevelFilter name="DemoFeature3">
     <tid>108</tid>
     <cid>2</cid>
     <lid>34</lid>
-    <elmtype>17</elmtype>
+    <elementCriterion>
+      <elementtype>7</elementtype>
+      <elementtype>17</elementtype>
+    </elementCriterion>
     <description>DemoFilter for DemoFeature</description>
     <TextCreateStrategy-None/>
   </TypeCompLevelFilter>

--
Gitblit v0.0.0-SNAPSHOT