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