.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 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; } } xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/ElementTypeCriterion.java
New file @@ -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; } } 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"> xdgnjobs/ximple-spatialjob/src/test/resources/com/ximple/eofms/filter/test-data/testRules.xml
@@ -10,8 +10,14 @@ <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="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"/>