ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineStringStrategy.java
@@ -22,6 +22,10 @@ GeometryFactory geometryFactory = new GeometryFactory(); FeatureTypeBuilder typeBuilder = null; public CreateLineStringStrategy() { } protected FrammeAttributeData getFeatureLinkage(Element element) { if (!element.hasUserAttributeData()) ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateTextStrategy.java
@@ -22,6 +22,10 @@ GeometryFactory geometryFactory = new GeometryFactory(); FeatureTypeBuilder typeBuilder = null; public CreateTextStrategy() { } protected FrammeAttributeData getFeatureLinkage(Element element) { if (!element.hasUserAttributeData()) ximple-spatialjob/src/main/resources/com/ximple/eofms/filter/ElementDispatcherRules.xml
@@ -1,16 +1,65 @@ <?xml version='1.0' encoding="big5"?> <!DOCTYPE digester-rules PUBLIC "-//Jakarta Apache //DTD digester-rules XML V1.0//EN" "digester-rules.dtd"> <digester-rules> <pattern value="ElementDispatcherRules"> <object-create-rule classname="com.ximple.eofms.filter.ElementDispatcher"/> <set-properties-rule/> <pattern value="TypeFilter"> <object-create-rule classname="ElementDispatchableStrategy"/> <set-next-rule methodname="addChart" paramtype="study.jakarta.commons.digester.ChartConfig"/> <object-create-rule classname="com.ximple.eofms.filter.TypeIdDispatchableFilter"/> <set-next-rule methodname="addRule" paramtype="com.ximple.eofms.filter.ElementDispatchableFilter"/> <set-properties-rule/> <bean-property-setter-rule pattern="legendVisible"/> <bean-property-setter-rule pattern="type"/> <bean-property-setter-rule pattern="width"/> <bean-property-setter-rule pattern="name"/> <bean-property-setter-rule pattern="description"/> <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> <pattern value="TypeCompFilter"> <object-create-rule classname="com.ximple.eofms.filter.TypeCompIdDispatchableFilter"/> <set-next-rule methodname="addRule" paramtype="com.ximple.eofms.filter.ElementDispatchableFilter"/> <set-properties-rule/> <bean-property-setter-rule pattern="name"/> <bean-property-setter-rule pattern="description"/> <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> <pattern value="TypeCompLevelFilter"> <object-create-rule classname="com.ximple.eofms.filter.TypeCompLevelIdDispatchableFilter"/> <set-next-rule methodname="addRule" paramtype="com.ximple.eofms.filter.ElementDispatchableFilter"/> <set-properties-rule/> <bean-property-setter-rule pattern="name"/> <bean-property-setter-rule pattern="description"/> <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> </pattern> </digester-rules> ximple-spatialjob/src/test/java/com/ximple/eofms/filter/ElementDispatcherTest.java
@@ -34,6 +34,31 @@ ElementDispatcher ed = (ElementDispatcher) digester.parse(config); Assert.assertNotNull(ed); Assert.assertEquals(ed.getRules().size(), 3); // ed.getRules().get(0); ElementDispatchableFilter filter = ed.getRules().get(0); Assert.assertTrue(filter instanceof TypeIdDispatchableFilter); TypeIdDispatchableFilter tFilter = (TypeIdDispatchableFilter) filter; Assert.assertEquals(tFilter.getName(), "DemoFeature1"); Assert.assertEquals(tFilter.getTid(), 106); Assert.assertNotNull(tFilter.getCreateStrategy()); Assert.assertTrue(tFilter.getCreateStrategy() instanceof CreateLineStringStrategy); filter = ed.getRules().get(1); Assert.assertTrue(filter instanceof TypeCompIdDispatchableFilter); TypeCompIdDispatchableFilter tcFilter = (TypeCompIdDispatchableFilter) filter; Assert.assertEquals(tcFilter.getName(), "DemoFeature2"); Assert.assertEquals(tcFilter.getTid(), 107); Assert.assertEquals(tcFilter.getCid(), 1); Assert.assertNotNull(tcFilter.getCreateStrategy()); Assert.assertTrue(tcFilter.getCreateStrategy() instanceof CreateTextStrategy); filter = ed.getRules().get(2); Assert.assertTrue(filter instanceof TypeCompLevelIdDispatchableFilter); TypeCompLevelIdDispatchableFilter tclFilter = (TypeCompLevelIdDispatchableFilter) filter; Assert.assertEquals(tclFilter.getName(), "DemoFeature3"); Assert.assertEquals(tclFilter.getTid(), 108); Assert.assertEquals(tclFilter.getCid(), 2); Assert.assertEquals(tclFilter.getLid(), 34); Assert.assertNull(tclFilter.getCreateStrategy()); } } ximple-spatialjob/src/test/resources/com/ximple/eofms/filter/test-data/testElementFilter.xml
@@ -3,16 +3,19 @@ <TypeFilter name="DemoFeature1"> <tid>106</tid> <description>DemoFilter for DemoFeature</description> <LineCreateStrategy/> </TypeFilter> <TypeCompFilter name="DemoFeature2"> <tid>107</tid> <cid>0</cid> <cid>1</cid> <description>DemoFilter for DemoFeature</description> <TextCreateStrategy/> </TypeCompFilter> <TypeCompLevelFilter name="DemoFeature3"> <tid>106</tid> <cid>1</cid> <tid>108</tid> <cid>2</cid> <lid>34</lid> <description>DemoFilter for DemoFeature</description> <TextCreateStrategy-None/> </TypeCompLevelFilter> </ElementDispatcherRules> ximple-spatialjob/src/test/resources/com/ximple/eofms/filter/test-data/testRules.xml
@@ -1,4 +1,5 @@ <?xml version='1.0' encoding="big5"?> <!DOCTYPE digester-rules PUBLIC "-//Jakarta Apache //DTD digester-rules XML V1.0//EN" "digester-rules.dtd"> <digester-rules> <pattern value="ElementDispatcherRules"> <object-create-rule classname="com.ximple.eofms.filter.ElementDispatcher"/> @@ -10,6 +11,16 @@ <bean-property-setter-rule pattern="name"/> <bean-property-setter-rule pattern="description"/> <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> <pattern value="TypeCompFilter"> <object-create-rule classname="com.ximple.eofms.filter.TypeCompIdDispatchableFilter"/> @@ -19,6 +30,16 @@ <bean-property-setter-rule pattern="description"/> <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> <pattern value="TypeCompLevelFilter"> <object-create-rule classname="com.ximple.eofms.filter.TypeCompLevelIdDispatchableFilter"/> @@ -29,6 +50,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> </pattern> </digester-rules>