forked from geodmms/xdgnjobs

?? ?
2008-03-19 feea447fea52442150bdc1acee26ab27a7aec086
update for EOFM-17
1 files deleted
2 files modified
6 files added
8 files renamed
324 ■■■■ changed files
.gitattributes 23 ●●●●● patch | view | raw | blame | history
ximple-spatialjob/src/main/java/com/ximple/eofms/filter/AbstractDispatchableFilter.java 36 ●●●●● patch | view | raw | blame | history
ximple-spatialjob/src/main/java/com/ximple/eofms/filter/AbstractFLinkageDispatchableFilter.java 9 ●●●● patch | view | raw | blame | history
ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateFeatureTypeStrategy.java 2 ●●● patch | view | raw | blame | history
ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineStringStrategy.java 2 ●●● patch | view | raw | blame | history
ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateTextStrategy.java 2 ●●● patch | view | raw | blame | history
ximple-spatialjob/src/main/java/com/ximple/eofms/filter/ElementDispatchableFilter.java 4 ●●●● patch | view | raw | blame | history
ximple-spatialjob/src/main/java/com/ximple/eofms/filter/ElementDispatcher.java 10 ●●●● patch | view | raw | blame | history
ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompIdDispatchableFilter.java 29 ●●●● patch | view | raw | blame | history
ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompLevelIdDispatchableFilter.java 29 ●●●● patch | view | raw | blame | history
ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeIdDispatchableFilter.java 69 ●●●●● patch | view | raw | blame | history
ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertJobContext.java 5 ●●●● patch | view | raw | blame | history
ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/TypeIdHandlerStrategy.java 46 ●●●●● patch | view | raw | blame | history
ximple-spatialjob/src/main/resources/com/ximple/eofms/filter/ElementDispatcherRules.xml 16 ●●●●● patch | view | raw | blame | history
ximple-spatialjob/src/test/java/com/ximple/eofms/filter/ElementDispatcherTest.java 27 ●●●●● patch | view | raw | blame | history
ximple-spatialjob/src/test/resources/com/ximple/eofms/filter/test-data/testElementFilter.xml patch | view | raw | blame | history
ximple-spatialjob/src/test/resources/com/ximple/eofms/filter/test-data/testRules.xml 15 ●●●●● patch | view | raw | blame | history
.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
ximple-spatialjob/src/main/java/com/ximple/eofms/filter/AbstractDispatchableFilter.java
New file
@@ -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;
    }
}
ximple-spatialjob/src/main/java/com/ximple/eofms/filter/AbstractFLinkageDispatchableFilter.java
File was renamed from ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/AbstractFLinkageHandlerStrategy.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())
ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateFeatureTypeStrategy.java
File was renamed from ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/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;
ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineStringStrategy.java
File was renamed from ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/CreateLineStringStrategy.java
@@ -1,4 +1,4 @@
package com.ximple.eofms.jobs;
package com.ximple.eofms.filter;
import java.util.List;
ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateTextStrategy.java
File was renamed from ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/CreateTextStrategy.java
@@ -1,4 +1,4 @@
package com.ximple.eofms.jobs;
package com.ximple.eofms.filter;
import java.util.List;
ximple-spatialjob/src/main/java/com/ximple/eofms/filter/ElementDispatchableFilter.java
File was renamed from ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/ElementDispatchableStrategy.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);
ximple-spatialjob/src/main/java/com/ximple/eofms/filter/ElementDispatcher.java
File was renamed from ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/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))
            {
ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompIdDispatchableFilter.java
File was renamed from ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/TypeCompIdHandlerStrategy.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)
        {
ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompLevelIdDispatchableFilter.java
File was renamed from ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/TypeCompLevelIdHandlerStrategy.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)
        {
ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeIdDispatchableFilter.java
New file
@@ -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;
    }
}
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;
    }
ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/TypeIdHandlerStrategy.java
File was deleted
ximple-spatialjob/src/main/resources/com/ximple/eofms/filter/ElementDispatcherRules.xml
New file
@@ -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>
ximple-spatialjob/src/test/java/com/ximple/eofms/filter/ElementDispatcherTest.java
New file
@@ -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);
    }
}
ximple-spatialjob/src/test/resources/com/ximple/eofms/filter/test-data/testElementFilter.xml
ximple-spatialjob/src/test/resources/com/ximple/eofms/filter/test-data/testRules.xml
New file
@@ -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>