From 0e92e82a6a426330609d6002b9b40649643fafe3 Mon Sep 17 00:00:00 2001 From: ?? ? <ulysseskao@ximple.com.tw> Date: Thu, 20 Mar 2008 01:44:55 +0800 Subject: [PATCH] update for EOFM-17 --- ximple-spatialjob/src/test/java/com/ximple/eofms/filter/ElementDispatcherTest.java | 27 ++++++++ ximple-spatialjob/src/main/resources/com/ximple/eofms/filter/ElementDispatcherRules.xml | 59 ++++++++++++++++++- ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateTextStrategy.java | 4 + ximple-spatialjob/src/test/resources/com/ximple/eofms/filter/test-data/testElementFilter.xml | 9 ++- ximple-spatialjob/src/test/resources/com/ximple/eofms/filter/test-data/testRules.xml | 31 ++++++++++ ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineStringStrategy.java | 4 + 6 files changed, 125 insertions(+), 9 deletions(-) diff --git a/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineStringStrategy.java b/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineStringStrategy.java index e8e6bc0..bd0c8e7 100644 --- a/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineStringStrategy.java +++ b/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()) diff --git a/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateTextStrategy.java b/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateTextStrategy.java index 27e5248..206214a 100644 --- a/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateTextStrategy.java +++ b/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()) diff --git a/ximple-spatialjob/src/main/resources/com/ximple/eofms/filter/ElementDispatcherRules.xml b/ximple-spatialjob/src/main/resources/com/ximple/eofms/filter/ElementDispatcherRules.xml index 1ef202a..e48cfc6 100644 --- a/ximple-spatialjob/src/main/resources/com/ximple/eofms/filter/ElementDispatcherRules.xml +++ b/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> \ No newline at end of file diff --git a/ximple-spatialjob/src/test/java/com/ximple/eofms/filter/ElementDispatcherTest.java b/ximple-spatialjob/src/test/java/com/ximple/eofms/filter/ElementDispatcherTest.java index fbb7762..e2caf2a 100644 --- a/ximple-spatialjob/src/test/java/com/ximple/eofms/filter/ElementDispatcherTest.java +++ b/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()); } } diff --git a/ximple-spatialjob/src/test/resources/com/ximple/eofms/filter/test-data/testElementFilter.xml b/ximple-spatialjob/src/test/resources/com/ximple/eofms/filter/test-data/testElementFilter.xml index d99fa0f..169feeb 100644 --- a/ximple-spatialjob/src/test/resources/com/ximple/eofms/filter/test-data/testElementFilter.xml +++ b/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> \ No newline at end of file diff --git a/ximple-spatialjob/src/test/resources/com/ximple/eofms/filter/test-data/testRules.xml b/ximple-spatialjob/src/test/resources/com/ximple/eofms/filter/test-data/testRules.xml index e2d62cb..e48cfc6 100644 --- a/ximple-spatialjob/src/test/resources/com/ximple/eofms/filter/test-data/testRules.xml +++ b/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> \ No newline at end of file -- Gitblit v0.0.0-SNAPSHOT