forked from geodmms/xdgnjobs

?? ?
2008-05-26 d4491e9698bf703a3b111488a9cccc5ea5112557
update for EOFM-107
3 files modified
133 ■■■■■ changed files
xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/ComplexShapeElement.java 2 ●●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeneralDgnConvertJobContext.java 79 ●●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/IndexDgnConvertJobContext.java 52 ●●●● patch | view | raw | blame | history
xdgnjobs/ximple-dgnio/src/main/java/com/ximple/io/dgn7/ComplexShapeElement.java
@@ -175,6 +175,8 @@
               {
                 list.add(((LineElement) element).toGeometry(factory));
               }
            } else if (element instanceof ArcElement)
            {
            }
        }
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeneralDgnConvertJobContext.java
@@ -2,15 +2,15 @@
import java.io.File;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.net.MalformedURLException;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.TreeMap;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.nio.charset.Charset;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -31,21 +31,19 @@
import com.vividsolutions.jts.geom.Geometry;
import com.vividsolutions.jts.geom.GeometryFactory;
import com.vividsolutions.jts.geom.Envelope;
import com.vividsolutions.jts.geom.Coordinate;
import com.ximple.eofms.util.DefaultColorTable;
import com.ximple.io.dgn7.ArcElement;
import com.ximple.io.dgn7.ComplexChainElement;
import com.ximple.io.dgn7.Element;
import com.ximple.io.dgn7.EllipseElement;
import com.ximple.io.dgn7.FrammeAttributeData;
import com.ximple.io.dgn7.LineElement;
import com.ximple.io.dgn7.LineStringElement;
import com.ximple.io.dgn7.ShapeElement;
import com.ximple.io.dgn7.TextElement;
import com.ximple.io.dgn7.UserAttributeData;
import com.ximple.io.dgn7.ArcElement;
import com.ximple.io.dgn7.EllipseElement;
import com.ximple.io.dgn7.ComplexChainElement;
import com.ximple.io.dgn7.TextNodeElement;
import com.ximple.io.dgn7.UserAttributeData;
public class GeneralDgnConvertJobContext extends AbstractDgnFileJobContext
{
@@ -60,7 +58,7 @@
    private HashMap<String, FeatureWriter> featuresWriterContext = new HashMap<String, FeatureWriter>();
    private PessimisticMapWrapper txFeaturesContext;
    private FeatureTypeBuilder typeBuilder = null;
    private TreeMap<String, FeatureTypeBuilder> typeBuilders = new TreeMap<String, FeatureTypeBuilder>();
    private TreeMap<String, FeatureType> featureTypes = new TreeMap<String, FeatureType>();
    private TWD97GeometryConverterDecorator convertDecorator = null;
@@ -172,7 +170,8 @@
                        shapefileDataStore.createSchema(featureType);
                        writer = shapefileDataStore.getFeatureWriter(featureType.getTypeName(),
                                Transaction.AUTO_COMMIT);
                    } else {
                    } else
                    {
                        ShapefileDataStore shapefileDataStore = new IndexedShapefileDataStore(sfile.toURI().toURL(),
                                null, true, true, IndexedShapefileDataStore.TREE_QIX, Charset.forName("UTF-8"));
                        writer = shapefileDataStore.getFeatureWriterAppend(featureType.getTypeName(),
@@ -221,7 +220,8 @@
        return dataOut;
    }
    public void closeFeatureWriter() throws IOException {
    public void closeFeatureWriter() throws IOException
    {
        for (FeatureWriter featureWriter : this.featuresWriterContext.values())
        {
@@ -233,9 +233,9 @@
    public FeatureType createPointFeatureElement(String featureName) throws SchemaException
    {
        if (typeBuilder == null)
        if (!typeBuilders.containsKey(featureName))
        {
            typeBuilder = FeatureTypeBuilder.newInstance(featureName);
            FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
            typeBuilder.addType(AttributeTypeFactory.newAttributeType("GEOM", Geometry.class));
            typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMCOLOR", String.class));
            typeBuilder.addType(AttributeTypeFactory.newAttributeType("FONT", Integer.class));
@@ -244,47 +244,51 @@
            typeBuilder.addType(AttributeTypeFactory.newAttributeType("WIDTH", Double.class));
            typeBuilder.addType(AttributeTypeFactory.newAttributeType("ANGLE", Double.class));
            typeBuilder.addType(AttributeTypeFactory.newAttributeType("CONTEXT", String.class));
            typeBuilders.put(featureName, typeBuilder);
        }
        return typeBuilder.getFeatureType();
        return typeBuilders.get(featureName).getFeatureType();
    }
    public FeatureType createLineFeatureElement(String featureName) throws SchemaException
    {
        if (typeBuilder == null)
        if (!typeBuilders.containsKey(featureName))
        {
            typeBuilder = FeatureTypeBuilder.newInstance(featureName);
            FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
            typeBuilder.addType(AttributeTypeFactory.newAttributeType("GEOM", Geometry.class));
            typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMCOLOR", String.class));
            typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMWEIGHT", Integer.class));
            typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMSTYLE", Integer.class));
            typeBuilders.put(featureName, typeBuilder);
        }
        return typeBuilder.getFeatureType();
        return typeBuilders.get(featureName).getFeatureType();
    }
    public FeatureType createArcFeatureElement(String featureName) throws SchemaException
    {
        if (typeBuilder == null)
        if (!typeBuilders.containsKey(featureName))
        {
            typeBuilder = FeatureTypeBuilder.newInstance(featureName);
            FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
            typeBuilder.addType(AttributeTypeFactory.newAttributeType("GEOM", Geometry.class));
            typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMCOLOR", String.class));
            typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMWEIGHT", Integer.class));
            typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMSTYLE", Integer.class));
            typeBuilders.put(featureName, typeBuilder);
        }
        return typeBuilder.getFeatureType();
        return typeBuilders.get(featureName).getFeatureType();
    }
    public FeatureType createEllipseFeatureElement(String featureName) throws SchemaException
    {
        if (typeBuilder == null)
        if (!typeBuilders.containsKey(featureName))
        {
            typeBuilder = FeatureTypeBuilder.newInstance(featureName);
            FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
            typeBuilder.addType(AttributeTypeFactory.newAttributeType("GEOM", Geometry.class));
            typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMCOLOR", String.class));
            typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMWEIGHT", Integer.class));
            typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMSTYLE", Integer.class));
            typeBuilders.put(featureName, typeBuilder);
        }
        return typeBuilder.getFeatureType();
        return typeBuilders.get(featureName).getFeatureType();
    }
    public Feature createFeature(FeatureType featureType, Element element) throws IllegalAttributeException
@@ -468,15 +472,34 @@
                featureTypes.put(typeName, createPointFeatureElement(typeName));
            }
            return featureTypes.get(typeName);
        } else if (element instanceof ShapeElement)
        } else if (element instanceof TextNodeElement)
        {
            typeName = getFeatureBaseName() + "R";
            typeName = getFeatureBaseName() + "P";
            if (!featureTypes.containsKey(typeName))
            {
                featureTypes.put(typeName, createLineFeatureElement(typeName));
                featureTypes.put(typeName, createPointFeatureElement(typeName));
            }
            return featureTypes.get(typeName);
        } else if (element instanceof LineStringElement)
        {
            if (element instanceof ShapeElement)
            {
                typeName = getFeatureBaseName() + "R";
                if (!featureTypes.containsKey(typeName))
                {
                    featureTypes.put(typeName, createLineFeatureElement(typeName));
                }
                return featureTypes.get(typeName);
            } else
            {
                typeName = getFeatureBaseName() + "L";
                if (!featureTypes.containsKey(typeName))
                {
                    featureTypes.put(typeName, createLineFeatureElement(typeName));
                }
                return featureTypes.get(typeName);
            }
        } else if (element instanceof LineElement)
        {
            typeName = getFeatureBaseName() + "L";
            if (!featureTypes.containsKey(typeName))
@@ -484,7 +507,7 @@
                featureTypes.put(typeName, createLineFeatureElement(typeName));
            }
            return featureTypes.get(typeName);
        } else if (element instanceof LineElement)
        } else if (element instanceof ComplexChainElement)
        {
            typeName = getFeatureBaseName() + "L";
            if (!featureTypes.containsKey(typeName))
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/IndexDgnConvertJobContext.java
@@ -55,8 +55,8 @@
    private HashMap<String, FeatureWriter> featuresWriterContext = new HashMap<String, FeatureWriter>();
    private PessimisticMapWrapper txFeaturesContext;
    private FeatureTypeBuilder typeBuilder2 = null;
    private FeatureTypeBuilder typeBuilder = null;
    private FeatureTypeBuilder typeBuilderPnt = null;
    private FeatureTypeBuilder typeBuilderRect = null;
    private FeatureType featureType = null;
    private FeatureType featureType2 = null;
@@ -214,38 +214,38 @@
    public FeatureType createFeatureElement(String featureName) throws SchemaException
    {
        if (typeBuilder == null)
        if (typeBuilderRect != null)
        {
            typeBuilder = FeatureTypeBuilder.newInstance(featureName);
            typeBuilder.addType(AttributeTypeFactory.newAttributeType("GEOM", Geometry.class));
            typeBuilder.addType(AttributeTypeFactory.newAttributeType("X1", Double.class));
            typeBuilder.addType(AttributeTypeFactory.newAttributeType("Y1", Double.class));
            typeBuilder.addType(AttributeTypeFactory.newAttributeType("X2", Double.class));
            typeBuilder.addType(AttributeTypeFactory.newAttributeType("Y2", Double.class));
            typeBuilder.addType(AttributeTypeFactory.newAttributeType("TPCID", String.class));
            typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMCOLOR", String.class));
            typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMWEIGHT", Integer.class));
            typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMSTYLE", Integer.class));
            typeBuilderRect = FeatureTypeBuilder.newInstance(featureName);
            typeBuilderRect.addType(AttributeTypeFactory.newAttributeType("GEOM", Geometry.class));
            typeBuilderRect.addType(AttributeTypeFactory.newAttributeType("X1", Double.class));
            typeBuilderRect.addType(AttributeTypeFactory.newAttributeType("Y1", Double.class));
            typeBuilderRect.addType(AttributeTypeFactory.newAttributeType("X2", Double.class));
            typeBuilderRect.addType(AttributeTypeFactory.newAttributeType("Y2", Double.class));
            typeBuilderRect.addType(AttributeTypeFactory.newAttributeType("TPCID", String.class));
            typeBuilderRect.addType(AttributeTypeFactory.newAttributeType("SYMCOLOR", String.class));
            typeBuilderRect.addType(AttributeTypeFactory.newAttributeType("SYMWEIGHT", Integer.class));
            typeBuilderRect.addType(AttributeTypeFactory.newAttributeType("SYMSTYLE", Integer.class));
        }
        return typeBuilder.getFeatureType();
        return typeBuilderRect.getFeatureType();
    }
    public FeatureType createFeatureElement2(String featureName) throws SchemaException
    {
        if (typeBuilder2 == null)
        if (typeBuilderPnt == null)
        {
            typeBuilder2 = FeatureTypeBuilder.newInstance(featureName);
            typeBuilder2.addType(AttributeTypeFactory.newAttributeType("GEOM", Geometry.class));
            typeBuilder2.addType(AttributeTypeFactory.newAttributeType("SYMCOLOR", String.class));
            typeBuilder2.addType(AttributeTypeFactory.newAttributeType("SYMWEIGHT", Integer.class));
            typeBuilder2.addType(AttributeTypeFactory.newAttributeType("SYMSTYLE", Integer.class));
            typeBuilder2.addType(AttributeTypeFactory.newAttributeType("JUST", Integer.class));
            typeBuilder2.addType(AttributeTypeFactory.newAttributeType("HEIGHT", Double.class));
            typeBuilder2.addType(AttributeTypeFactory.newAttributeType("WIDTH", Double.class));
            typeBuilder2.addType(AttributeTypeFactory.newAttributeType("ANGLE", Double.class));
            typeBuilder2.addType(AttributeTypeFactory.newAttributeType("TPCID", String.class));
            typeBuilderPnt = FeatureTypeBuilder.newInstance(featureName);
            typeBuilderPnt.addType(AttributeTypeFactory.newAttributeType("GEOM", Geometry.class));
            typeBuilderPnt.addType(AttributeTypeFactory.newAttributeType("SYMCOLOR", String.class));
            typeBuilderPnt.addType(AttributeTypeFactory.newAttributeType("SYMWEIGHT", Integer.class));
            typeBuilderPnt.addType(AttributeTypeFactory.newAttributeType("SYMSTYLE", Integer.class));
            typeBuilderPnt.addType(AttributeTypeFactory.newAttributeType("JUST", Integer.class));
            typeBuilderPnt.addType(AttributeTypeFactory.newAttributeType("HEIGHT", Double.class));
            typeBuilderPnt.addType(AttributeTypeFactory.newAttributeType("WIDTH", Double.class));
            typeBuilderPnt.addType(AttributeTypeFactory.newAttributeType("ANGLE", Double.class));
            typeBuilderPnt.addType(AttributeTypeFactory.newAttributeType("TPCID", String.class));
        }
        return typeBuilder2.getFeatureType();
        return typeBuilderPnt.getFeatureType();
    }
    public Feature createFeature(FeatureType featureType, Element element) throws IllegalAttributeException