From 0bdcece216e0d3b51760ded614b420eff503abef Mon Sep 17 00:00:00 2001 From: ?? ? <ulysseskao@ximple.com.tw> Date: Thu, 27 Mar 2008 17:06:11 +0800 Subject: [PATCH] update for EOFM-34 --- xdgnjobs/ximple-spatialjob/src/test/resources/com/ximple/eofms/filter/test-data/testElementFilter.xml | 5 + xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/AbstractDispatchableFilter.java | 21 +++++- .gitattributes | 1 xdgnjobs/ximple-spatialjob/src/test/resources/com/ximple/eofms/filter/test-data/testRules.xml | 68 ++++++++++++---------- xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/ElementTypeCriterion.java | 33 +++++++++++ 5 files changed, 91 insertions(+), 37 deletions(-) diff --git a/.gitattributes b/.gitattributes index a1e8922..ff97118 100644 --- a/.gitattributes +++ b/.gitattributes @@ -49,6 +49,7 @@ xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateTextStrategy.java svneol=native#text/plain xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/ElementDispatchableFilter.java svneol=native#text/plain xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/ElementDispatcher.java svneol=native#text/plain +xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/ElementTypeCriterion.java svneol=native#text/plain xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompIdDispatchableFilter.java svneol=native#text/plain xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompLevelIdDispatchableFilter.java svneol=native#text/plain xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeIdDispatchableFilter.java svneol=native#text/plain diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/AbstractDispatchableFilter.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/AbstractDispatchableFilter.java index 70c9922..d0fbe6c 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/AbstractDispatchableFilter.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/AbstractDispatchableFilter.java @@ -1,18 +1,23 @@ package com.ximple.eofms.filter; +import java.util.LinkedList; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; + +import com.ximple.io.dgn7.Element; public abstract class AbstractDispatchableFilter implements ElementDispatchableFilter { private String name; private String description; - private int elmtype; + private LinkedList<ElementTypeCriterion> criterions; protected Log logger = LogFactory.getLog(AbstractFLinkageDispatchableFilter.class); public AbstractDispatchableFilter() { + criterions = new LinkedList<ElementTypeCriterion>(); } public String getName() @@ -35,13 +40,19 @@ this.description = description; } - public int getElmtype() + public void addCriterion(ElementTypeCriterion criterion) { - return elmtype; + criterions.add(criterion); } - public void setElmtype(int elmtype) + protected int compareType(Element element) { - this.elmtype = elmtype; + for (ElementTypeCriterion criterion : criterions) + { + if (criterion.compareTo(element) == 0) + return 0; + } + return -1; } + } 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 new file mode 100644 index 0000000..4f6c1ad --- /dev/null +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/ElementTypeCriterion.java @@ -0,0 +1,33 @@ +package com.ximple.eofms.filter; + +import com.ximple.io.dgn7.Element; + +public class ElementTypeCriterion implements Comparable +{ + private int elementTypeId; + + public ElementTypeCriterion() + { + } + + public int compareTo(Object o) + { + if (o instanceof Element) + { + Element elm = (Element) o; + if (elm.getElementType().id == elementTypeId) + return 0; + } + return -1; + } + + public int getElementTypeId() + { + return elementTypeId; + } + + public void setElementTypeId(int elementTypeId) + { + this.elementTypeId = elementTypeId; + } +} 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 d6cd66f..c8c4897 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 @@ -3,7 +3,10 @@ <TypeFilter name="DemoFeature1"> <tid>106</tid> <description>DemoFilter for DemoFeature</description> - <elmtype>7</elmtype> + <elementCriterion> + <elementtype>7</elementtype> + <elementtype>17</elementtype> + </elementCriterion> <LineCreateStrategy/> </TypeFilter> <TypeCompFilter name="DemoFeature2"> diff --git a/xdgnjobs/ximple-spatialjob/src/test/resources/com/ximple/eofms/filter/test-data/testRules.xml b/xdgnjobs/ximple-spatialjob/src/test/resources/com/ximple/eofms/filter/test-data/testRules.xml index 707a720..e9da319 100644 --- a/xdgnjobs/ximple-spatialjob/src/test/resources/com/ximple/eofms/filter/test-data/testRules.xml +++ b/xdgnjobs/ximple-spatialjob/src/test/resources/com/ximple/eofms/filter/test-data/testRules.xml @@ -10,18 +10,24 @@ <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"/> - <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"> - <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 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"> + <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 value="TypeCompFilter"> <object-create-rule classname="com.ximple.eofms.filter.TypeCompIdDispatchableFilter"/> @@ -32,16 +38,16 @@ <bean-property-setter-rule pattern="elmtype"/> <bean-property-setter-rule pattern="tid"/> <bean-property-setter-rule pattern="cid"/> - <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"> - <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 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"> + <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 value="TypeCompLevelFilter"> <object-create-rule classname="com.ximple.eofms.filter.TypeCompLevelIdDispatchableFilter"/> @@ -53,16 +59,16 @@ <bean-property-setter-rule pattern="tid"/> <bean-property-setter-rule pattern="cid"/> <bean-property-setter-rule pattern="lid"/> - <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"> - <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 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"> + <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> </digester-rules> \ No newline at end of file -- Gitblit v0.0.0-SNAPSHOT