From feea447fea52442150bdc1acee26ab27a7aec086 Mon Sep 17 00:00:00 2001 From: ?? ? <ulysseskao@ximple.com.tw> Date: Wed, 19 Mar 2008 17:33:59 +0800 Subject: [PATCH] update for EOFM-17 --- ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeIdDispatchableFilter.java | 69 +++++++++++ ximple-spatialjob/src/main/resources/com/ximple/eofms/filter/ElementDispatcherRules.xml | 16 ++ ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompIdDispatchableFilter.java | 29 +++- ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateTextStrategy.java | 2 .gitattributes | 23 ++- ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertJobContext.java | 5 ximple-spatialjob/src/test/resources/com/ximple/eofms/filter/test-data/testElementFilter.xml | 0 ximple-spatialjob/src/main/java/com/ximple/eofms/filter/ElementDispatcher.java | 10 ximple-spatialjob/src/main/java/com/ximple/eofms/filter/ElementDispatchableFilter.java | 4 ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateFeatureTypeStrategy.java | 2 ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompLevelIdDispatchableFilter.java | 29 +++- ximple-spatialjob/src/main/java/com/ximple/eofms/filter/AbstractFLinkageDispatchableFilter.java | 9 - /dev/null | 46 ------- ximple-spatialjob/src/test/java/com/ximple/eofms/filter/ElementDispatcherTest.java | 27 ++++ ximple-spatialjob/src/test/resources/com/ximple/eofms/filter/test-data/testRules.xml | 15 ++ ximple-spatialjob/src/main/java/com/ximple/eofms/filter/AbstractDispatchableFilter.java | 36 ++++++ ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineStringStrategy.java | 2 17 files changed, 235 insertions(+), 89 deletions(-) diff --git a/.gitattributes b/.gitattributes index c0b7501..c5671d0 100644 --- a/.gitattributes +++ b/.gitattributes @@ -41,20 +41,21 @@ ximple-jobcarrier/src/main/resources/quartz_jobs.xml svneol=native#text/xml ximple-jobcarrier/src/test/java/com/ximple/eofms/XQuartzJobCarrierTest.java svneol=native#text/plain ximple-spatialjob/pom.xml svneol=native#text/xml -ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/AbstractFLinkageHandlerStrategy.java svneol=native#text/plain +ximple-spatialjob/src/main/java/com/ximple/eofms/filter/AbstractDispatchableFilter.java svneol=native#text/plain +ximple-spatialjob/src/main/java/com/ximple/eofms/filter/AbstractFLinkageDispatchableFilter.java svneol=native#text/plain +ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateFeatureTypeStrategy.java svneol=native#text/plain +ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineStringStrategy.java svneol=native#text/plain +ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateTextStrategy.java svneol=native#text/plain +ximple-spatialjob/src/main/java/com/ximple/eofms/filter/ElementDispatchableFilter.java svneol=native#text/plain +ximple-spatialjob/src/main/java/com/ximple/eofms/filter/ElementDispatcher.java svneol=native#text/plain +ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompIdDispatchableFilter.java svneol=native#text/plain +ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompLevelIdDispatchableFilter.java svneol=native#text/plain +ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeIdDispatchableFilter.java svneol=native#text/plain ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/AbstractOracleDatabaseJob.java svneol=native#text/plain -ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/CreateFeatureTypeStrategy.java svneol=native#text/plain -ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/CreateLineStringStrategy.java svneol=native#text/plain -ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/CreateTextStrategy.java svneol=native#text/plain -ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/ElementDispatchableStrategy.java svneol=native#text/plain -ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/ElementDispatcher.java svneol=native#text/plain ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeometryCoordinateDecorator.java svneol=native#text/plain ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2ShpJob.java svneol=native#text/plain ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertJobContext.java svneol=native#text/plain ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleUpgradeBlob2UDTJob.java svneol=native#text/plain -ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/TypeCompIdHandlerStrategy.java svneol=native#text/plain -ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/TypeCompLevelIdHandlerStrategy.java svneol=native#text/plain -ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/TypeIdHandlerStrategy.java svneol=native#text/plain ximple-spatialjob/src/main/java/com/ximple/eofms/util/BinConverter.java svneol=native#text/plain ximple-spatialjob/src/main/java/com/ximple/eofms/util/Bits.java svneol=native#text/plain ximple-spatialjob/src/main/java/com/ximple/eofms/util/ByteArrayCompressor.java svneol=native#text/plain @@ -62,3 +63,7 @@ ximple-spatialjob/src/main/java/com/ximple/eofms/util/LangUtil.java svneol=native#text/plain ximple-spatialjob/src/main/java/com/ximple/eofms/util/PrintfFormat.java svneol=native#text/plain ximple-spatialjob/src/main/java/com/ximple/eofms/util/TWDDatumConverter.java svneol=native#text/plain +ximple-spatialjob/src/main/resources/com/ximple/eofms/filter/ElementDispatcherRules.xml svneol=native#text/xml +ximple-spatialjob/src/test/java/com/ximple/eofms/filter/ElementDispatcherTest.java svneol=native#text/plain +ximple-spatialjob/src/test/resources/com/ximple/eofms/filter/test-data/testElementFilter.xml svneol=native#text/xml +ximple-spatialjob/src/test/resources/com/ximple/eofms/filter/test-data/testRules.xml svneol=native#text/xml diff --git a/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/AbstractDispatchableFilter.java b/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/AbstractDispatchableFilter.java new file mode 100644 index 0000000..2269b69 --- /dev/null +++ b/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/AbstractDispatchableFilter.java @@ -0,0 +1,36 @@ +package com.ximple.eofms.filter; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +public abstract class AbstractDispatchableFilter implements ElementDispatchableFilter +{ + private String name; + private String description; + + protected Log logger = LogFactory.getLog(AbstractFLinkageDispatchableFilter.class); + + public AbstractDispatchableFilter() + { + } + + public String getName() + { + return name; + } + + public void setName(String name) + { + this.name = name; + } + + public String getDescription() + { + return description; + } + + public void setDescription(String description) + { + this.description = description; + } +} diff --git a/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/AbstractFLinkageHandlerStrategy.java b/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/AbstractFLinkageDispatchableFilter.java similarity index 69% rename from ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/AbstractFLinkageHandlerStrategy.java rename to ximple-spatialjob/src/main/java/com/ximple/eofms/filter/AbstractFLinkageDispatchableFilter.java index 201809f..f12b07d 100644 --- a/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/AbstractFLinkageHandlerStrategy.java +++ b/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/AbstractFLinkageDispatchableFilter.java @@ -1,18 +1,13 @@ -package com.ximple.eofms.jobs; +package com.ximple.eofms.filter; import java.util.List; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import com.ximple.io.dgn7.Element; import com.ximple.io.dgn7.FrammeAttributeData; import com.ximple.io.dgn7.UserAttributeData; -public abstract class AbstractFLinkageHandlerStrategy implements ElementDispatchableStrategy +public abstract class AbstractFLinkageDispatchableFilter extends AbstractDispatchableFilter { - protected Log logger = LogFactory.getLog(AbstractFLinkageHandlerStrategy.class); - protected FrammeAttributeData getFeatureLinkage(Element element) { if (!element.hasUserAttributeData()) diff --git a/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/CreateFeatureTypeStrategy.java b/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateFeatureTypeStrategy.java similarity index 93% rename from ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/CreateFeatureTypeStrategy.java rename to ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateFeatureTypeStrategy.java index 08c9ef9..7f8c9f7 100644 --- a/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/CreateFeatureTypeStrategy.java +++ b/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateFeatureTypeStrategy.java @@ -1,4 +1,4 @@ -package com.ximple.eofms.jobs; +package com.ximple.eofms.filter; import org.geotools.feature.Feature; import org.geotools.feature.FeatureType; diff --git a/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/CreateLineStringStrategy.java b/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineStringStrategy.java similarity index 98% rename from ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/CreateLineStringStrategy.java rename to ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineStringStrategy.java index 5cb5372..e8e6bc0 100644 --- a/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/CreateLineStringStrategy.java +++ b/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineStringStrategy.java @@ -1,4 +1,4 @@ -package com.ximple.eofms.jobs; +package com.ximple.eofms.filter; import java.util.List; diff --git a/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/CreateTextStrategy.java b/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateTextStrategy.java similarity index 98% rename from ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/CreateTextStrategy.java rename to ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateTextStrategy.java index 413516c..27e5248 100644 --- a/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/CreateTextStrategy.java +++ b/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateTextStrategy.java @@ -1,4 +1,4 @@ -package com.ximple.eofms.jobs; +package com.ximple.eofms.filter; import java.util.List; diff --git a/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/ElementDispatchableStrategy.java b/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/ElementDispatchableFilter.java similarity index 69% rename from ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/ElementDispatchableStrategy.java rename to ximple-spatialjob/src/main/java/com/ximple/eofms/filter/ElementDispatchableFilter.java index 2319568..9ed97d1 100644 --- a/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/ElementDispatchableStrategy.java +++ b/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/ElementDispatchableFilter.java @@ -1,10 +1,10 @@ -package com.ximple.eofms.jobs; +package com.ximple.eofms.filter; import org.geotools.feature.Feature; import com.ximple.io.dgn7.Element; -public interface ElementDispatchableStrategy +public interface ElementDispatchableFilter { public boolean isDispatchable(Element element); diff --git a/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/ElementDispatcher.java b/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/ElementDispatcher.java similarity index 62% rename from ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/ElementDispatcher.java rename to ximple-spatialjob/src/main/java/com/ximple/eofms/filter/ElementDispatcher.java index 2ce52a8..ed57e26 100644 --- a/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/ElementDispatcher.java +++ b/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/ElementDispatcher.java @@ -1,4 +1,4 @@ -package com.ximple.eofms.jobs; +package com.ximple.eofms.filter; import java.util.LinkedList; @@ -8,21 +8,21 @@ public class ElementDispatcher { - private LinkedList<ElementDispatchableStrategy> rules; + private LinkedList<ElementDispatchableFilter> rules; public ElementDispatcher() { - rules = new LinkedList<ElementDispatchableStrategy>(); + rules = new LinkedList<ElementDispatchableFilter>(); } - public void addRule(ElementDispatchableStrategy rule) + public void addRule(ElementDispatchableFilter rule) { rules.add(rule); } public Feature execute(Element element) { - for (ElementDispatchableStrategy rule : rules) + for (ElementDispatchableFilter rule : rules) { if (rule.isDispatchable(element)) { diff --git a/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/TypeCompIdHandlerStrategy.java b/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompIdDispatchableFilter.java similarity index 63% rename from ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/TypeCompIdHandlerStrategy.java rename to ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompIdDispatchableFilter.java index 659157d..ada1bd6 100644 --- a/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/TypeCompIdHandlerStrategy.java +++ b/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompIdDispatchableFilter.java @@ -1,4 +1,4 @@ -package com.ximple.eofms.jobs; +package com.ximple.eofms.filter; import org.geotools.feature.Feature; import org.geotools.feature.FeatureType; @@ -8,20 +8,33 @@ import com.ximple.io.dgn7.Element; import com.ximple.io.dgn7.FrammeAttributeData; -public class TypeCompIdHandlerStrategy extends AbstractFLinkageHandlerStrategy +public class TypeCompIdDispatchableFilter extends AbstractFLinkageDispatchableFilter { - private String name; private int tid; private int cid; private CreateFeatureTypeStrategy createStrategy; - public TypeCompIdHandlerStrategy(String fname, - CreateFeatureTypeStrategy createStrategy, - int tid, int compid) + public TypeCompIdDispatchableFilter() { - this.name = fname; + } + + public TypeCompIdDispatchableFilter(String fname, + CreateFeatureTypeStrategy createStrategy, + int tid, int compid) + { + this.setName(fname); this.tid = tid; this.cid = compid; + this.createStrategy = createStrategy; + } + + public CreateFeatureTypeStrategy getCreateStrategy() + { + return createStrategy; + } + + public void setCreateStrategy(CreateFeatureTypeStrategy createStrategy) + { this.createStrategy = createStrategy; } @@ -36,7 +49,7 @@ { try { - FeatureType ftype = createStrategy.createFeatureElement(name); + FeatureType ftype = createStrategy.createFeatureElement(getName()); return createStrategy.createFeature(ftype, element); } catch (SchemaException e) { diff --git a/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/TypeCompLevelIdHandlerStrategy.java b/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompLevelIdDispatchableFilter.java similarity index 64% rename from ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/TypeCompLevelIdHandlerStrategy.java rename to ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompLevelIdDispatchableFilter.java index 9021b14..dab9595 100644 --- a/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/TypeCompLevelIdHandlerStrategy.java +++ b/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompLevelIdDispatchableFilter.java @@ -1,4 +1,4 @@ -package com.ximple.eofms.jobs; +package com.ximple.eofms.filter; import org.geotools.feature.Feature; import org.geotools.feature.FeatureType; @@ -8,22 +8,35 @@ import com.ximple.io.dgn7.Element; import com.ximple.io.dgn7.FrammeAttributeData; -public class TypeCompLevelIdHandlerStrategy extends AbstractFLinkageHandlerStrategy +public class TypeCompLevelIdDispatchableFilter extends AbstractFLinkageDispatchableFilter { - private String name; private int tid; private int cid; private int lid; private CreateFeatureTypeStrategy createStrategy; - public TypeCompLevelIdHandlerStrategy(String fname, - CreateFeatureTypeStrategy createStrategy, - int tid, int compid, int level) + public TypeCompLevelIdDispatchableFilter() { - this.name = fname; + } + + public TypeCompLevelIdDispatchableFilter(String fname, + CreateFeatureTypeStrategy createStrategy, + int tid, int compid, int level) + { + this.setName(fname); this.tid = tid; this.cid = compid; this.lid = level; + this.createStrategy = createStrategy; + } + + public CreateFeatureTypeStrategy getCreateStrategy() + { + return createStrategy; + } + + public void setCreateStrategy(CreateFeatureTypeStrategy createStrategy) + { this.createStrategy = createStrategy; } @@ -39,7 +52,7 @@ { try { - FeatureType ftype = createStrategy.createFeatureElement(name); + FeatureType ftype = createStrategy.createFeatureElement(getName()); return createStrategy.createFeature(ftype, element); } catch (SchemaException e) { diff --git a/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeIdDispatchableFilter.java b/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeIdDispatchableFilter.java new file mode 100644 index 0000000..54d70b0 --- /dev/null +++ b/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeIdDispatchableFilter.java @@ -0,0 +1,69 @@ +package com.ximple.eofms.filter; + +import org.geotools.feature.Feature; +import org.geotools.feature.FeatureType; +import org.geotools.feature.IllegalAttributeException; +import org.geotools.feature.SchemaException; + +import com.ximple.io.dgn7.Element; +import com.ximple.io.dgn7.FrammeAttributeData; + +public class TypeIdDispatchableFilter extends AbstractFLinkageDispatchableFilter +{ + private int tid; + private CreateFeatureTypeStrategy createStrategy; + + public TypeIdDispatchableFilter() + { + } + + public TypeIdDispatchableFilter(String fname, CreateFeatureTypeStrategy createStrategy, + int tid) + { + this.setName(fname); + this.tid = tid; + this.createStrategy = createStrategy; + } + + public int getTid() + { + return tid; + } + + public void setTid(int tid) + { + this.tid = tid; + } + + public CreateFeatureTypeStrategy getCreateStrategy() + { + return createStrategy; + } + + public void setCreateStrategy(CreateFeatureTypeStrategy createStrategy) + { + this.createStrategy = createStrategy; + } + + public boolean isDispatchable(Element element) + { + FrammeAttributeData featureLinkage = getFeatureLinkage(element); + return featureLinkage != null && tid == featureLinkage.getFsc(); + } + + public Feature execute(Element element) + { + try + { + FeatureType ftype = createStrategy.createFeatureElement(getName()); + return createStrategy.createFeature(ftype, element); + } catch (SchemaException e) + { + logger.error(e.getMessage(), e); + } catch (IllegalAttributeException e) + { + logger.error(e.getMessage(), e); + } + return null; + } +} diff --git a/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertJobContext.java b/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertJobContext.java index 344dd76..7bddaa9 100644 --- a/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertJobContext.java +++ b/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertJobContext.java @@ -27,6 +27,9 @@ import oracle.jdbc.OracleConnection; +import com.ximple.eofms.filter.CreateLineStringStrategy; +import com.ximple.eofms.filter.ElementDispatcher; +import com.ximple.eofms.filter.TypeCompIdDispatchableFilter; import com.ximple.io.dgn7.Element; public class OracleConvertJobContext @@ -272,7 +275,7 @@ private ElementDispatcher createElementDispatcher() { ElementDispatcher dispatcher = new ElementDispatcher(); - dispatcher.addRule(new TypeCompIdHandlerStrategy("Conductor", new CreateLineStringStrategy(), 106, 0)); + dispatcher.addRule(new TypeCompIdDispatchableFilter("Conductor", new CreateLineStringStrategy(), 106, 0)); return dispatcher; } diff --git a/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/TypeIdHandlerStrategy.java b/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/TypeIdHandlerStrategy.java deleted file mode 100644 index 1a48dcb..0000000 --- a/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/TypeIdHandlerStrategy.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.ximple.eofms.jobs; - -import org.geotools.feature.Feature; -import org.geotools.feature.FeatureType; -import org.geotools.feature.IllegalAttributeException; -import org.geotools.feature.SchemaException; - -import com.ximple.io.dgn7.Element; -import com.ximple.io.dgn7.FrammeAttributeData; - -public class TypeIdHandlerStrategy extends AbstractFLinkageHandlerStrategy -{ - private String name; - private int tid; - private CreateFeatureTypeStrategy createStrategy; - - public TypeIdHandlerStrategy(String fname, CreateFeatureTypeStrategy createStrategy, - int tid) - { - this.name = fname; - this.tid = tid; - this.createStrategy = createStrategy; - } - - public boolean isDispatchable(Element element) - { - FrammeAttributeData featureLinkage = getFeatureLinkage(element); - return featureLinkage != null && tid == featureLinkage.getFsc(); - } - - public Feature execute(Element element) - { - try - { - FeatureType ftype = createStrategy.createFeatureElement(name); - return createStrategy.createFeature(ftype, element); - } catch (SchemaException e) - { - logger.error(e.getMessage(), e); - } catch (IllegalAttributeException e) - { - logger.error(e.getMessage(), e); - } - return null; - } -} 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 new file mode 100644 index 0000000..1ef202a --- /dev/null +++ b/ximple-spatialjob/src/main/resources/com/ximple/eofms/filter/ElementDispatcherRules.xml @@ -0,0 +1,16 @@ +<?xml version='1.0' encoding="big5"?> +<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"/> + <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="description"/> + </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 new file mode 100644 index 0000000..8a82011 --- /dev/null +++ b/ximple-spatialjob/src/test/java/com/ximple/eofms/filter/ElementDispatcherTest.java @@ -0,0 +1,27 @@ +package com.ximple.eofms.filter; + +import java.io.File; +import java.io.IOException; + +import org.apache.commons.digester.Digester; +import org.apache.commons.digester.xmlrules.DigesterLoader; +import org.geotools.TestData; +import org.testng.Assert; +import org.testng.annotations.Test; +import org.xml.sax.SAXException; + +public class ElementDispatcherTest +{ + private static final String TestRulesName = "testRules.xml"; + private static final String TestConfigName = "testElementFilter.xml"; + + @Test + public void testLoadRules() throws IOException, SAXException + { + File rules = TestData.file(this, TestRulesName); + Digester digester = DigesterLoader.createDigester(rules.toURI().toURL()); + File config = TestData.file(this, TestConfigName); + ElementDispatcher ed = (ElementDispatcher) digester.parse(config); + Assert.assertNotNull(ed); + } +} 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 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/ximple-spatialjob/src/test/resources/com/ximple/eofms/filter/test-data/testElementFilter.xml 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 new file mode 100644 index 0000000..57ffc03 --- /dev/null +++ b/ximple-spatialjob/src/test/resources/com/ximple/eofms/filter/test-data/testRules.xml @@ -0,0 +1,15 @@ +<?xml version='1.0' encoding="big5"?> +<digester-rules> + <pattern value="ElementDispatcherRules"> + <object-create-rule classname="com.ximple.eofms.filter.ElementDispatcher"/> + <set-properties-rule/> + <pattern value="TypeFilter"> + <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="name"/> + <bean-property-setter-rule pattern="id"/> + <bean-property-setter-rule pattern="description"/> + </pattern> + </pattern> +</digester-rules> \ No newline at end of file -- Gitblit v0.0.0-SNAPSHOT