forked from geodmms/xdgnjobs

?? ?
2008-09-05 a00fef36a11903710f92f3ba8f902295212b5be7
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateArcLineStringStrategy.java
@@ -64,7 +64,7 @@
        return typeBuilders.get(featureName).getFeatureType();
    }
    public Feature createFeature(FeatureType featureType, Element element) throws IllegalAttributeException
    public Feature createFeature(FeatureType featureType, Element element, boolean useTransform) throws IllegalAttributeException
    {
        DefaultColorTable colorTable = (DefaultColorTable) DefaultColorTable.getInstance();
        FrammeAttributeData fLinkage = getFeatureLinkage(element);
@@ -73,8 +73,14 @@
        if (element instanceof ArcElement)
        {
            ArcElement lineStringElement = (ArcElement) element;
            convertDecorator.setConverter(lineStringElement);
            Geometry gobj = convertDecorator.toGeometry(geometryFactory);
            Geometry gobj;
            if (useTransform)
            {
                convertDecorator.setConverter(lineStringElement);
                gobj = convertDecorator.toGeometry(geometryFactory);
            } else {
                gobj = lineStringElement.toGeometry(geometryFactory);
            }
            if (gobj != null)
            feature = featureType.create(new Object[]{
                    gobj,
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateComplexChainStrategy.java
@@ -68,7 +68,7 @@
        return typeBuilders.get(featureName).getFeatureType();
    }
    public Feature createFeature(FeatureType featureType, Element element) throws IllegalAttributeException
    public Feature createFeature(FeatureType featureType, Element element, boolean useTransform) throws IllegalAttributeException
    {
        DefaultColorTable colorTable = (DefaultColorTable) DefaultColorTable.getInstance();
        FrammeAttributeData fLinkage = getFeatureLinkage(element);
@@ -77,88 +77,114 @@
        if (element instanceof LineStringElement)
        {
            LineStringElement lineStringElement = (LineStringElement) element;
            convertDecorator.setConverter(lineStringElement);
            Geometry gobj = convertDecorator.toGeometry(geometryFactory);
            Geometry gobj;
            if (useTransform)
            {
                convertDecorator.setConverter(lineStringElement);
                gobj = convertDecorator.toGeometry(geometryFactory);
            } else
            {
                gobj = lineStringElement.toGeometry(geometryFactory);
            }
            if (gobj instanceof LineString)
            {
                gobj = geometryFactory.createMultiLineString(new LineString[] {(LineString) gobj});
                gobj = geometryFactory.createMultiLineString(new LineString[]{(LineString) gobj});
            }
            if (gobj != null)
            feature = featureType.create(new Object[]{
                    gobj,
                    fLinkage.getFsc(),
                    (long) fLinkage.getUfid(),
                    (short) fLinkage.getComponentID(),
                    fLinkage.getOccID(),
                    (short) lineStringElement.getLevelIndex(),
                    colorTable.getColorCode(lineStringElement.getColorIndex()),
                    (short) lineStringElement.getWeight(),
                    (short) lineStringElement.getLineStyle()
            });
                feature = featureType.create(new Object[]{
                        gobj,
                        fLinkage.getFsc(),
                        (long) fLinkage.getUfid(),
                        (short) fLinkage.getComponentID(),
                        fLinkage.getOccID(),
                        (short) lineStringElement.getLevelIndex(),
                        colorTable.getColorCode(lineStringElement.getColorIndex()),
                        (short) lineStringElement.getWeight(),
                        (short) lineStringElement.getLineStyle()
                });
        } else if (element instanceof ComplexChainElement)
        {
            ComplexChainElement complexChain = (ComplexChainElement) element;
            convertDecorator.setConverter(complexChain);
            Geometry gobj = convertDecorator.toGeometry(geometryFactory);
            Geometry gobj;
            if (useTransform)
            {
                convertDecorator.setConverter(complexChain);
                gobj = convertDecorator.toGeometry(geometryFactory);
            } else
                gobj = complexChain.toGeometry(geometryFactory);
            if (gobj instanceof LineString)
            {
                gobj = geometryFactory.createMultiLineString(new LineString[] {(LineString) gobj});
                gobj = geometryFactory.createMultiLineString(new LineString[]{(LineString) gobj});
            }
            if (gobj != null)
            feature = featureType.create(new Object[]{
                    gobj,
                    fLinkage.getFsc(),
                    (long) fLinkage.getUfid(),
                    (short) fLinkage.getComponentID(),
                    fLinkage.getOccID(),
                    (short) complexChain.getLevelIndex(),
                    colorTable.getColorCode(complexChain.getColorIndex()),
                    (short) complexChain.getWeight(),
                    (short) complexChain.getLineStyle()
            });
                feature = featureType.create(new Object[]{
                        gobj,
                        fLinkage.getFsc(),
                        (long) fLinkage.getUfid(),
                        (short) fLinkage.getComponentID(),
                        fLinkage.getOccID(),
                        (short) complexChain.getLevelIndex(),
                        colorTable.getColorCode(complexChain.getColorIndex()),
                        (short) complexChain.getWeight(),
                        (short) complexChain.getLineStyle()
                });
        } else if (element instanceof LineElement)
        {
            LineElement lineElement = (LineElement) element;
            convertDecorator.setConverter(lineElement);
            Geometry gobj = convertDecorator.toGeometry(geometryFactory);
            Geometry gobj;
            if (useTransform)
            {
                convertDecorator.setConverter(lineElement);
                gobj = convertDecorator.toGeometry(geometryFactory);
            } else
            {
                gobj = lineElement.toGeometry(geometryFactory);
            }
            if (gobj instanceof LineString)
            {
                gobj = geometryFactory.createMultiLineString(new LineString[] {(LineString) gobj});
                gobj = geometryFactory.createMultiLineString(new LineString[]{(LineString) gobj});
            }
            if (gobj != null)
            feature = featureType.create(new Object[]{
                    gobj,
                    fLinkage.getFsc(),
                    (long) fLinkage.getUfid(),
                    (short) fLinkage.getComponentID(),
                    fLinkage.getOccID(),
                    (short) lineElement.getLevelIndex(),
                    colorTable.getColorCode(lineElement.getColorIndex()),
                    (short) lineElement.getWeight(),
                    (short) lineElement.getLineStyle()
            });
                feature = featureType.create(new Object[]{
                        gobj,
                        fLinkage.getFsc(),
                        (long) fLinkage.getUfid(),
                        (short) fLinkage.getComponentID(),
                        fLinkage.getOccID(),
                        (short) lineElement.getLevelIndex(),
                        colorTable.getColorCode(lineElement.getColorIndex()),
                        (short) lineElement.getWeight(),
                        (short) lineElement.getLineStyle()
                });
            return feature;
        } else if (element instanceof ArcElement)
        {
            ArcElement lineStringElement = (ArcElement) element;
            convertDecorator.setConverter(lineStringElement);
            Geometry gobj = convertDecorator.toGeometry(geometryFactory);
            ArcElement arcElement = (ArcElement) element;
            Geometry gobj;
            if (useTransform)
            {
                convertDecorator.setConverter(arcElement);
                gobj = convertDecorator.toGeometry(geometryFactory);
            } else
            {
                gobj = arcElement.toGeometry(geometryFactory);
            }
            if (gobj instanceof LineString)
            {
                gobj = geometryFactory.createMultiLineString(new LineString[] {(LineString) gobj});
                gobj = geometryFactory.createMultiLineString(new LineString[]{(LineString) gobj});
            }
            if (gobj != null)
            feature = featureType.create(new Object[]{
                    gobj,
                    fLinkage.getFsc(),
                    (long) fLinkage.getUfid(),
                    (short) fLinkage.getComponentID(),
                    fLinkage.getOccID(),
                    (short) lineStringElement.getLevelIndex(),
                    colorTable.getColorCode(lineStringElement.getColorIndex()),
                    (short) lineStringElement.getWeight(),
                    (short) lineStringElement.getLineStyle()
            });
                feature = featureType.create(new Object[]{
                        gobj,
                        fLinkage.getFsc(),
                        (long) fLinkage.getUfid(),
                        (short) fLinkage.getComponentID(),
                        fLinkage.getOccID(),
                        (short) arcElement.getLevelIndex(),
                        colorTable.getColorCode(arcElement.getColorIndex()),
                        (short) arcElement.getWeight(),
                        (short) arcElement.getLineStyle()
                });
        }
        return feature;
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateEllipseShapeStrategy.java
@@ -2,7 +2,6 @@
import java.util.List;
import java.util.TreeMap;
import javax.swing.event.EventListenerList;
import org.apache.commons.logging.Log;
@@ -13,8 +12,8 @@
import org.geotools.feature.IllegalAttributeException;
import org.geotools.feature.SchemaException;
import com.vividsolutions.jts.geom.GeometryFactory;
import com.vividsolutions.jts.geom.Geometry;
import com.vividsolutions.jts.geom.GeometryFactory;
import com.ximple.eofms.util.DefaultColorTable;
import com.ximple.eofms.util.FeatureTypeBuilderUtil;
@@ -64,7 +63,7 @@
        return typeBuilders.get(featureName).getFeatureType();
    }
    public Feature createFeature(FeatureType featureType, Element element) throws IllegalAttributeException
    public Feature createFeature(FeatureType featureType, Element element, boolean useTransform) throws IllegalAttributeException
    {
        DefaultColorTable colorTable = (DefaultColorTable) DefaultColorTable.getInstance();
        FrammeAttributeData fLinkage = getFeatureLinkage(element);
@@ -72,21 +71,28 @@
        if (fLinkage == null) return null;
        if (element instanceof EllipseElement)
        {
            EllipseElement shapeElement = (EllipseElement) element;
            convertDecorator.setConverter(shapeElement);
            Geometry gobj = convertDecorator.toGeometry(geometryFactory);
            EllipseElement ellipseElement = (EllipseElement) element;
            Geometry gobj;
            if (useTransform)
            {
                convertDecorator.setConverter(ellipseElement);
                gobj = convertDecorator.toGeometry(geometryFactory);
            } else
            {
                gobj = ellipseElement.toGeometry(geometryFactory);
            }
            if (gobj != null)
            feature = featureType.create(new Object[]{
                    gobj,
                    fLinkage.getFsc(),
                    (long) fLinkage.getUfid(),
                    (short) fLinkage.getComponentID(),
                    fLinkage.getOccID(),
                    (short) shapeElement.getLevelIndex(),
                    colorTable.getColorCode(shapeElement.getColorIndex()),
                    (short) shapeElement.getWeight(),
                    (short) shapeElement.getLineStyle()
            });
                feature = featureType.create(new Object[]{
                        gobj,
                        fLinkage.getFsc(),
                        (long) fLinkage.getUfid(),
                        (short) fLinkage.getComponentID(),
                        fLinkage.getOccID(),
                        (short) ellipseElement.getLevelIndex(),
                        colorTable.getColorCode(ellipseElement.getColorIndex()),
                        (short) ellipseElement.getWeight(),
                        (short) ellipseElement.getLineStyle()
                });
        }
        return feature;
    }
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateFeatureTypeStrategy.java
@@ -10,7 +10,7 @@
public interface CreateFeatureTypeStrategy
{
    public FeatureType createFeatureElement(String featureName) throws SchemaException;
    public Feature createFeature(FeatureType featureType, Element element) throws IllegalAttributeException;
    public Feature createFeature(FeatureType featureType, Element element, boolean useTransform) throws IllegalAttributeException;
    public void addCreateFeatureTypeEventListener(CreateFeatureTypeEventListener listener);
    public void removeCreateFeatureTypeEventListener(CreateFeatureTypeEventListener listener);
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineStringStrategy.java
@@ -2,7 +2,6 @@
import java.util.List;
import java.util.TreeMap;
import javax.swing.event.EventListenerList;
import org.apache.commons.logging.Log;
@@ -13,11 +12,10 @@
import org.geotools.feature.IllegalAttributeException;
import org.geotools.feature.SchemaException;
import com.vividsolutions.jts.geom.GeometryFactory;
import com.vividsolutions.jts.geom.Geometry;
import com.vividsolutions.jts.geom.MultiLineString;
import com.vividsolutions.jts.geom.CoordinateArrays;
import com.vividsolutions.jts.geom.CoordinateList;
import com.vividsolutions.jts.geom.Geometry;
import com.vividsolutions.jts.geom.GeometryFactory;
import com.vividsolutions.jts.geom.MultiLineString;
import com.ximple.eofms.util.DefaultColorTable;
import com.ximple.eofms.util.FeatureTypeBuilderUtil;
@@ -71,7 +69,7 @@
        return typeBuilders.get(featureName).getFeatureType();
    }
    public Feature createFeature(FeatureType featureType, Element element) throws IllegalAttributeException
    public Feature createFeature(FeatureType featureType, Element element, boolean useTransform) throws IllegalAttributeException
    {
        DefaultColorTable colorTable = (DefaultColorTable) DefaultColorTable.getInstance();
        FrammeAttributeData fLinkage = getFeatureLinkage(element);
@@ -80,25 +78,39 @@
        if (element instanceof LineStringElement)
        {
            LineStringElement lineStringElement = (LineStringElement) element;
            convertDecorator.setConverter(lineStringElement);
            Geometry gobj = convertDecorator.toGeometry(geometryFactory);
            Geometry gobj;
            if (useTransform)
            {
                convertDecorator.setConverter(lineStringElement);
                gobj = convertDecorator.toGeometry(geometryFactory);
            } else
            {
                gobj = lineStringElement.toGeometry(geometryFactory);
            }
            if (gobj != null)
            feature = featureType.create(new Object[]{
                    convertDecorator.toGeometry(geometryFactory),
                    fLinkage.getFsc(),
                    (long) fLinkage.getUfid(),
                    (short) fLinkage.getComponentID(),
                    fLinkage.getOccID(),
                    (short) lineStringElement.getLevelIndex(),
                    colorTable.getColorCode(lineStringElement.getColorIndex()),
                    (short) lineStringElement.getWeight(),
                    (short) lineStringElement.getLineStyle()
            });
                feature = featureType.create(new Object[]{
                        convertDecorator.toGeometry(geometryFactory),
                        fLinkage.getFsc(),
                        (long) fLinkage.getUfid(),
                        (short) fLinkage.getComponentID(),
                        fLinkage.getOccID(),
                        (short) lineStringElement.getLevelIndex(),
                        colorTable.getColorCode(lineStringElement.getColorIndex()),
                        (short) lineStringElement.getWeight(),
                        (short) lineStringElement.getLineStyle()
                });
        } else if (element instanceof ComplexChainElement)
        {
            ComplexChainElement complexChain = (ComplexChainElement) element;
            convertDecorator.setConverter(complexChain);
            Geometry gobj = convertDecorator.toGeometry(geometryFactory);
            Geometry gobj;
            if (useTransform)
            {
                convertDecorator.setConverter(complexChain);
                gobj = convertDecorator.toGeometry(geometryFactory);
            } else
            {
                gobj = complexChain.toGeometry(geometryFactory);
            }
            if ((gobj != null) && (gobj instanceof MultiLineString))
            {
                MultiLineString mline = (MultiLineString) gobj;
@@ -111,52 +123,66 @@
                gobj = geometryFactory.createLineString(coordinateList.toCoordinateArray());
            }
            if (gobj != null)
            feature = featureType.create(new Object[]{
                    gobj,
                    fLinkage.getFsc(),
                    (long) fLinkage.getUfid(),
                    (short) fLinkage.getComponentID(),
                    fLinkage.getOccID(),
                    (short) complexChain.getLevelIndex(),
                    colorTable.getColorCode(complexChain.getColorIndex()),
                    (short) complexChain.getWeight(),
                    (short) complexChain.getLineStyle()
            });
                feature = featureType.create(new Object[]{
                        gobj,
                        fLinkage.getFsc(),
                        (long) fLinkage.getUfid(),
                        (short) fLinkage.getComponentID(),
                        fLinkage.getOccID(),
                        (short) complexChain.getLevelIndex(),
                        colorTable.getColorCode(complexChain.getColorIndex()),
                        (short) complexChain.getWeight(),
                        (short) complexChain.getLineStyle()
                });
        } else if (element instanceof LineElement)
        {
            LineElement lineElement = (LineElement) element;
            convertDecorator.setConverter(lineElement);
            Geometry gobj = convertDecorator.toGeometry(geometryFactory);
            Geometry gobj;
            if (useTransform)
            {
                convertDecorator.setConverter(lineElement);
                gobj = convertDecorator.toGeometry(geometryFactory);
            } else
            {
                gobj = lineElement.toGeometry(geometryFactory);
            }
            if (gobj != null)
            feature = featureType.create(new Object[]{
                    gobj,
                    fLinkage.getFsc(),
                    (long) fLinkage.getUfid(),
                    (short) fLinkage.getComponentID(),
                    fLinkage.getOccID(),
                    (short) lineElement.getLevelIndex(),
                    colorTable.getColorCode(lineElement.getColorIndex()),
                    (short) lineElement.getWeight(),
                    (short) lineElement.getLineStyle()
            });
                feature = featureType.create(new Object[]{
                        gobj,
                        fLinkage.getFsc(),
                        (long) fLinkage.getUfid(),
                        (short) fLinkage.getComponentID(),
                        fLinkage.getOccID(),
                        (short) lineElement.getLevelIndex(),
                        colorTable.getColorCode(lineElement.getColorIndex()),
                        (short) lineElement.getWeight(),
                        (short) lineElement.getLineStyle()
                });
            return feature;
        } else if (element instanceof ArcElement)
        {
            ArcElement lineStringElement = (ArcElement) element;
            convertDecorator.setConverter(lineStringElement);
            Geometry gobj = convertDecorator.toGeometry(geometryFactory);
            ArcElement arcElement = (ArcElement) element;
            Geometry gobj;
            if (useTransform)
            {
                convertDecorator.setConverter(arcElement);
                gobj = convertDecorator.toGeometry(geometryFactory);
            } else
            {
                gobj = arcElement.toGeometry(geometryFactory);
            }
            if (gobj != null)
            feature = featureType.create(new Object[]{
                    gobj,
                    fLinkage.getFsc(),
                    (long) fLinkage.getUfid(),
                    (short) fLinkage.getComponentID(),
                    fLinkage.getOccID(),
                    (short) lineStringElement.getLevelIndex(),
                    colorTable.getColorCode(lineStringElement.getColorIndex()),
                    (short) lineStringElement.getWeight(),
                    (short) lineStringElement.getLineStyle()
            });
                feature = featureType.create(new Object[]{
                        gobj,
                        fLinkage.getFsc(),
                        (long) fLinkage.getUfid(),
                        (short) fLinkage.getComponentID(),
                        fLinkage.getOccID(),
                        (short) arcElement.getLevelIndex(),
                        colorTable.getColorCode(arcElement.getColorIndex()),
                        (short) arcElement.getWeight(),
                        (short) arcElement.getLineStyle()
                });
        }
        return feature;
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineTextStrategy.java
@@ -73,7 +73,7 @@
        return typeBuilders.get(featureName).getFeatureType();
    }
    public Feature createFeature(FeatureType featureType, Element element) throws IllegalAttributeException
    public Feature createFeature(FeatureType featureType, Element element, boolean useTransform) throws IllegalAttributeException
    {
        DefaultColorTable colorTable = (DefaultColorTable) DefaultColorTable.getInstance();
        FrammeAttributeData fLinkage = getFeatureLinkage(element);
@@ -82,8 +82,14 @@
        if (element instanceof LineStringElement)
        {
            LineStringElement lineStringElement = (LineStringElement) element;
            Geometry gobj;
            if (useTransform)
            {
            convertDecorator.setConverter(lineStringElement);
            Geometry gobj = convertDecorator.toGeometry(geometryFactory);
            gobj = convertDecorator.toGeometry(geometryFactory);
            } else {
                gobj = lineStringElement.toGeometry(geometryFactory);
            }
            if (gobj != null)
            feature = featureType.create(new Object[]{
                    gobj,
@@ -104,8 +110,14 @@
            ptEnd.x = ptOrigin.x;
            ptEnd.y = ptOrigin.y + txtElement.getTextHeight();
            Coordinate[] vect = new Coordinate[2];
            vect[0] = TWDDatumConverter.fromTM2ToTWD97(ptOrigin);
            vect[1] = TWDDatumConverter.fromTM2ToTWD97(ptEnd);
            if (useTransform)
            {
                vect[0] = TWDDatumConverter.fromTM2ToTWD97(ptOrigin);
                vect[1] = TWDDatumConverter.fromTM2ToTWD97(ptEnd);
            } else {
                vect[0] = new Coordinate(ptOrigin);
                vect[1] = new Coordinate(ptEnd);
            }
            LineString line = geometryFactory.createLineString(vect);
            // convertDecorator.setConverter(txtElement);
@@ -127,8 +139,14 @@
        } else if (element instanceof ComplexChainElement)
        {
            ComplexChainElement complexChain = (ComplexChainElement) element;
            Geometry gobj;
            if (useTransform)
            {
            convertDecorator.setConverter(complexChain);
            Geometry gobj = convertDecorator.toGeometry(geometryFactory);
            gobj = convertDecorator.toGeometry(geometryFactory);
            } else {
                gobj = complexChain.toGeometry(geometryFactory);
            }
            if ((gobj != null) && (gobj instanceof MultiLineString))
            {
                MultiLineString mline = (MultiLineString) gobj;
@@ -158,9 +176,16 @@
        } else if (element instanceof LineElement)
        {
            LineElement lineElement = (LineElement) element;
            convertDecorator.setConverter(lineElement);
            Geometry gobj;
            if (useTransform)
            {
                convertDecorator.setConverter(lineElement);
                gobj = convertDecorator.toGeometry(geometryFactory);
            } else {
                gobj = lineElement.toGeometry(geometryFactory);
            }
            feature = featureType.create(new Object[]{
                    convertDecorator.toGeometry(geometryFactory),
                    gobj,
                    fLinkage.getFsc(),
                    (long) fLinkage.getUfid(),
                    (short) fLinkage.getComponentID(),
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateMultiSymbolStrategy.java
@@ -71,7 +71,7 @@
        return typeBuilders.get(featureName).getFeatureType();
    }
    public Feature createFeature(FeatureType featureType, Element element) throws IllegalAttributeException
    public Feature createFeature(FeatureType featureType, Element element, boolean useTransform) throws IllegalAttributeException
    {
        DefaultColorTable colorTable = (DefaultColorTable) DefaultColorTable.getInstance();
        FrammeAttributeData fLinkage = getFeatureLinkage(element);
@@ -95,8 +95,14 @@
            sb.append("-");
            sb.append(txtElement.getFontIndex());
            Geometry gobj;
            if (useTransform)
            {
            convertDecorator.setConverter(txtElement);
            Geometry gobj = convertDecorator.toGeometry(geometryFactory);
            gobj = convertDecorator.toGeometry(geometryFactory);
            } else {
                gobj = txtElement.toGeometry(geometryFactory);
            }
            if (gobj != null)
                feature = featureType.create(new Object[]{
                        gobj,
@@ -135,8 +141,14 @@
            sb.append("-");
            sb.append(nodeElement.getFontIndex());
            convertDecorator.setConverter(nodeElement);
            Geometry gobj = convertDecorator.toGeometry(geometryFactory);
            Geometry gobj;
            if (useTransform)
            {
                convertDecorator.setConverter(nodeElement);
            gobj = convertDecorator.toGeometry(geometryFactory);
            } else {
                gobj = nodeElement.toGeometry(geometryFactory);
            }
            if (gobj != null)
                feature = featureType.create(new Object[]{
                        gobj,
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateShapeStrategy.java
@@ -2,7 +2,6 @@
import java.util.List;
import java.util.TreeMap;
import javax.swing.event.EventListenerList;
import org.apache.commons.logging.Log;
@@ -13,8 +12,8 @@
import org.geotools.feature.IllegalAttributeException;
import org.geotools.feature.SchemaException;
import com.vividsolutions.jts.geom.GeometryFactory;
import com.vividsolutions.jts.geom.Geometry;
import com.vividsolutions.jts.geom.GeometryFactory;
import com.ximple.eofms.util.DefaultColorTable;
import com.ximple.eofms.util.FeatureTypeBuilderUtil;
@@ -66,7 +65,7 @@
        return typeBuilders.get(featureName).getFeatureType();
    }
    public Feature createFeature(FeatureType featureType, Element element) throws IllegalAttributeException
    public Feature createFeature(FeatureType featureType, Element element, boolean useTransform) throws IllegalAttributeException
    {
        DefaultColorTable colorTable = (DefaultColorTable) DefaultColorTable.getInstance();
        FrammeAttributeData fLinkage = getFeatureLinkage(element);
@@ -75,8 +74,16 @@
        if (element instanceof ShapeElement)
        {
            ShapeElement shapeElement = (ShapeElement) element;
            convertDecorator.setConverter(shapeElement);
            Geometry gobj = convertDecorator.toGeometry(geometryFactory);
            Geometry gobj;
            if (useTransform)
            {
                convertDecorator.setConverter(shapeElement);
                gobj = convertDecorator.toGeometry(geometryFactory);
            } else
            {
                gobj = shapeElement.toGeometry(geometryFactory);
            }
            if (gobj != null)
                feature = featureType.create(new Object[]{
                        gobj,
@@ -92,8 +99,15 @@
        } else if (element instanceof ComplexShapeElement)
        {
            ComplexShapeElement complexShape = (ComplexShapeElement) element;
            convertDecorator.setConverter(complexShape);
            Geometry gobj = convertDecorator.toGeometry(geometryFactory);
            Geometry gobj;
            if (useTransform)
            {
                convertDecorator.setConverter(complexShape);
                gobj = convertDecorator.toGeometry(geometryFactory);
            } else
            {
                gobj = complexShape.toGeometry(geometryFactory);
            }
            if (gobj != null)
                feature = featureType.create(new Object[]{
                        gobj,
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateSymbolStrategy.java
@@ -4,7 +4,6 @@
import java.math.RoundingMode;
import java.util.List;
import java.util.TreeMap;
import javax.swing.event.EventListenerList;
import org.apache.commons.logging.Log;
@@ -15,8 +14,8 @@
import org.geotools.feature.IllegalAttributeException;
import org.geotools.feature.SchemaException;
import com.vividsolutions.jts.geom.GeometryFactory;
import com.vividsolutions.jts.geom.Geometry;
import com.vividsolutions.jts.geom.GeometryFactory;
import com.ximple.eofms.util.DefaultColorTable;
import com.ximple.eofms.util.FeatureTypeBuilderUtil;
@@ -67,7 +66,7 @@
        return typeBuilders.get(featureName).getFeatureType();
    }
    public Feature createFeature(FeatureType featureType, Element element) throws IllegalAttributeException
    public Feature createFeature(FeatureType featureType, Element element, boolean useTransform) throws IllegalAttributeException
    {
        DefaultColorTable colorTable = (DefaultColorTable) DefaultColorTable.getInstance();
        FrammeAttributeData fLinkage = getFeatureLinkage(element);
@@ -91,25 +90,32 @@
            sb.append("-");
            sb.append(txtElement.getFontIndex());
            convertDecorator.setConverter(txtElement);
            Geometry gobj = convertDecorator.toGeometry(geometryFactory);
            Geometry gobj;
            if (useTransform)
            {
                convertDecorator.setConverter(txtElement);
                gobj = convertDecorator.toGeometry(geometryFactory);
            } else
            {
                gobj = txtElement.toGeometry(geometryFactory);
            }
            if (gobj != null)
            feature = featureType.create(new Object[]{
                    gobj,
                    fLinkage.getFsc(),
                    (long) fLinkage.getUfid(),
                    (short) fLinkage.getComponentID(),
                    fLinkage.getOccID(),
                    (short) txtElement.getLevelIndex(),
                    colorTable.getColorCode(txtElement.getColorIndex()),
                    (short) txtElement.getWeight(),
                    (short) txtElement.getLineStyle(),
                    (short) txtElement.getJustification(),
                    (float) txtElement.getTextHeight(),
                    (float) txtElement.getTextWidth(),
                    (float) angle,
                    sb.toString()
            });
                feature = featureType.create(new Object[]{
                        gobj,
                        fLinkage.getFsc(),
                        (long) fLinkage.getUfid(),
                        (short) fLinkage.getComponentID(),
                        fLinkage.getOccID(),
                        (short) txtElement.getLevelIndex(),
                        colorTable.getColorCode(txtElement.getColorIndex()),
                        (short) txtElement.getWeight(),
                        (short) txtElement.getLineStyle(),
                        (short) txtElement.getJustification(),
                        (float) txtElement.getTextHeight(),
                        (float) txtElement.getTextWidth(),
                        (float) angle,
                        sb.toString()
                });
        } else
        {
            logger.info("CreateSymbolStrategy cannot conver " + element.toString() + "to Feature");
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateTextStrategy.java
@@ -14,8 +14,8 @@
import org.geotools.feature.IllegalAttributeException;
import org.geotools.feature.SchemaException;
import com.vividsolutions.jts.geom.GeometryFactory;
import com.vividsolutions.jts.geom.Geometry;
import com.vividsolutions.jts.geom.GeometryFactory;
import com.ximple.eofms.util.DefaultColorTable;
import com.ximple.eofms.util.FeatureTypeBuilderUtil;
@@ -67,7 +67,7 @@
        return typeBuilders.get(featureName).getFeatureType();
    }
    public Feature createFeature(FeatureType featureType, Element element) throws IllegalAttributeException
    public Feature createFeature(FeatureType featureType, Element element, boolean useTransform) throws IllegalAttributeException
    {
        DefaultColorTable colorTable = (DefaultColorTable) DefaultColorTable.getInstance();
        FrammeAttributeData fLinkage = getFeatureLinkage(element);
@@ -80,25 +80,32 @@
            angle = BigDecimal.valueOf(angle).setScale(3, RoundingMode.HALF_UP).doubleValue();
            String content = txtElement.getText();
            content = content.replace('\u0000', ' ');
            convertDecorator.setConverter(txtElement);
            Geometry gobj = convertDecorator.toGeometry(geometryFactory);
            Geometry gobj;
            if (useTransform)
            {
                convertDecorator.setConverter(txtElement);
                gobj = convertDecorator.toGeometry(geometryFactory);
            } else
            {
                gobj = txtElement.toGeometry(geometryFactory);
            }
            if (gobj != null)
            feature = featureType.create(new Object[]{
                    gobj,
                    fLinkage.getFsc(),
                    (long) fLinkage.getUfid(),
                    (short) fLinkage.getComponentID(),
                    fLinkage.getOccID(),
                    (short) txtElement.getLevelIndex(),
                    colorTable.getColorCode(txtElement.getColorIndex()),
                    (short) txtElement.getWeight(),
                    (short) txtElement.getLineStyle(),
                    (short) txtElement.getJustification(),
                    (float) txtElement.getTextHeight(),
                    (float) txtElement.getTextWidth(),
                    (float) angle,
                    content
            });
                feature = featureType.create(new Object[]{
                        gobj,
                        fLinkage.getFsc(),
                        (long) fLinkage.getUfid(),
                        (short) fLinkage.getComponentID(),
                        fLinkage.getOccID(),
                        (short) txtElement.getLevelIndex(),
                        colorTable.getColorCode(txtElement.getColorIndex()),
                        (short) txtElement.getWeight(),
                        (short) txtElement.getLineStyle(),
                        (short) txtElement.getJustification(),
                        (float) txtElement.getTextHeight(),
                        (float) txtElement.getTextWidth(),
                        (float) angle,
                        content
                });
        } else if (element instanceof TextNodeElement)
        {
            TextNodeElement nodeElement = (TextNodeElement) element;
@@ -114,25 +121,32 @@
            double angle = nodeElement.getRotationAngle();
            angle = BigDecimal.valueOf(angle).setScale(3, RoundingMode.HALF_UP).doubleValue();
            convertDecorator.setConverter(nodeElement);
            Geometry gobj = convertDecorator.toGeometry(geometryFactory);
            Geometry gobj;
            if (useTransform)
            {
                convertDecorator.setConverter(nodeElement);
                gobj = convertDecorator.toGeometry(geometryFactory);
            } else
            {
                gobj = nodeElement.toGeometry(geometryFactory);
            }
            if (gobj != null)
            feature = featureType.create(new Object[]{
                    gobj,
                    fLinkage.getFsc(),
                    (long) fLinkage.getUfid(),
                    (short) fLinkage.getComponentID(),
                    fLinkage.getOccID(),
                    (short) nodeElement.getLevelIndex(),
                    colorTable.getColorCode(nodeElement.getColorIndex()),
                    (short) nodeElement.getWeight(),
                    (short) nodeElement.getLineStyle(),
                    (short) nodeElement.getJustification(),
                    (float) nodeElement.getTextNodeHeight(),
                    (float) nodeElement.getTextNodeLength(),
                    (float) angle,
                    sb.toString()
            });
                feature = featureType.create(new Object[]{
                        gobj,
                        fLinkage.getFsc(),
                        (long) fLinkage.getUfid(),
                        (short) fLinkage.getComponentID(),
                        fLinkage.getOccID(),
                        (short) nodeElement.getLevelIndex(),
                        colorTable.getColorCode(nodeElement.getColorIndex()),
                        (short) nodeElement.getWeight(),
                        (short) nodeElement.getLineStyle(),
                        (short) nodeElement.getJustification(),
                        (float) nodeElement.getTextNodeHeight(),
                        (float) nodeElement.getTextNodeLength(),
                        (float) angle,
                        sb.toString()
                });
        }
        return feature;
    }
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/ElementDispatchableFilter.java
@@ -8,7 +8,7 @@
{
    public boolean isDispatchable(Element element);
    public Feature execute(Element element);
    public Feature execute(Element element, boolean useTransform);
    void setUseLongName(boolean useLongName);
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/ElementDispatcher.java
@@ -50,13 +50,13 @@
        }
    }
    public Feature execute(Element element)
    public Feature execute(Element element, boolean useTransform)
    {
        for (ElementDispatchableFilter rule : rules)
        {
            if (rule.isDispatchable(element))
            {
                return rule.execute(element);
                return rule.execute(element, useTransform);
            }
        }
        return null;
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompIdDispatchableFilter.java
@@ -90,13 +90,13 @@
                (compareType(element) == 0);
    }
    public Feature execute(Element element)
    public Feature execute(Element element, boolean useTransform)
    {
        try
        {
            String ftName = getFeatureTypeName(element);
            FeatureType ftype = createStrategy.createFeatureElement(ftName);
            return createStrategy.createFeature(ftype, element);
            return createStrategy.createFeature(ftype, element, useTransform);
        } catch (SchemaException e)
        {
            logger.error(e.getMessage(), e);
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeCompLevelIdDispatchableFilter.java
@@ -102,13 +102,13 @@
                (lid == element.getLevelIndex()) && (compareLevel(element) == 0);
    }
    public Feature execute(Element element)
    public Feature execute(Element element, boolean useTransform)
    {
        try
        {
            String ftName = getFeatureTypeName(element);
            FeatureType ftype = createStrategy.createFeatureElement(ftName);
            return createStrategy.createFeature(ftype, element);
            return createStrategy.createFeature(ftype, element, useTransform);
        } catch (SchemaException e)
        {
            logger.error(e.getMessage(), e);
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/TypeIdDispatchableFilter.java
@@ -64,13 +64,13 @@
                (compareType(element) == 0);
    }
    public Feature execute(Element element)
    public Feature execute(Element element, boolean useTransform)
    {
        try
        {
            String ftName = getFeatureTypeName(element);
            FeatureType ftype = createStrategy.createFeatureElement(ftName);
            return createStrategy.createFeature(ftype, element);
            return createStrategy.createFeature(ftype, element, useTransform);
        } catch (SchemaException e)
        {
            logger.error(e.getMessage(), e);
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/DummyFeatureConvertJobContext.java
@@ -122,7 +122,7 @@
        }
        // §PÂ_¬O§_²Å©M±ø¥ó
        Feature feature = elementDispatcher.execute(element);
        Feature feature = elementDispatcher.execute(element, true);
        if (feature == null)
        {
            FrammeAttributeData linkage =
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/DummyFeatureConvertMySQlJobContext.java
@@ -29,7 +29,6 @@
import com.vividsolutions.jts.geom.GeometryFactory;
import com.ximple.eofms.jobs.context.orasdo.AbstractDgnToOraSDOJobContext;
import com.ximple.eofms.filter.ElementDispatcher;
import com.ximple.eofms.filter.AbstractFLinkageDispatchableFilter;
import com.ximple.eofms.filter.ElementDispatchableFilter;
@@ -121,7 +120,7 @@
        }
        // §PÂ_¬O§_²Å©M±ø¥ó
        Feature feature = elementDispatcher.execute(element);
        Feature feature = elementDispatcher.execute(element, true);
        if (feature == null)
        {
            FrammeAttributeData linkage =
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/FeatureDgnConvertMySQLJobContext.java
@@ -113,7 +113,7 @@
        }
        // §PÂ_¬O§_²Å©M±ø¥ó
        Feature feature = elementDispatcher.execute(element);
        Feature feature = elementDispatcher.execute(element, true);
        if (feature == null)
        {
            FrammeAttributeData linkage =
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/OracleConvertMySQLJobContext.java
@@ -128,7 +128,7 @@
    {
        assert elementDispatcher != null;
        // §PÂ_¬O§_²Å©M±ø¥ó
        Feature feature = elementDispatcher.execute(element);
        Feature feature = elementDispatcher.execute(element, true);
        if (feature == null)
        {
            boolean isEmptySize = false;
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/DummyFeatureConvertOraSDOJobContext.java
@@ -120,7 +120,7 @@
        }
        // §PÂ_¬O§_²Å©M±ø¥ó
        Feature feature = elementDispatcher.execute(element);
        Feature feature = elementDispatcher.execute(element, true);
        if (feature == null)
        {
            FrammeAttributeData linkage =
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/FeatureDgnConvertOraSDOJobContext.java
@@ -113,7 +113,7 @@
        }
        // §PÂ_¬O§_²Å©M±ø¥ó
        Feature feature = elementDispatcher.execute(element);
        Feature feature = elementDispatcher.execute(element, true);
        if (feature == null)
        {
            FrammeAttributeData linkage =
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/OracleConvertOraSDOJobContext.java
@@ -128,7 +128,7 @@
    {
        assert elementDispatcher != null;
        // §PÂ_¬O§_²Å©M±ø¥ó
        Feature feature = elementDispatcher.execute(element);
        Feature feature = elementDispatcher.execute(element, true);
        if (feature == null)
        {
            boolean isEmptySize = false;
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/DummyFeatureConvertPostGISJobContext.java
@@ -119,7 +119,7 @@
        }
        // §PÂ_¬O§_²Å©M±ø¥ó
        Feature feature = elementDispatcher.execute(element);
        Feature feature = elementDispatcher.execute(element, true);
        if (feature == null)
        {
            FrammeAttributeData linkage =
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/FeatureDgnConvertPostGISJobContext.java
@@ -113,7 +113,7 @@
        }
        // §PÂ_¬O§_²Å©M±ø¥ó
        Feature feature = elementDispatcher.execute(element);
        Feature feature = elementDispatcher.execute(element, true);
        if (feature == null)
        {
            FrammeAttributeData linkage =
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/OracleConvertPostGISJobContext.java
@@ -131,7 +131,7 @@
    {
        assert elementDispatcher != null;
        // §PÂ_¬O§_²Å©M±ø¥ó
        Feature feature = elementDispatcher.execute(element);
        Feature feature = elementDispatcher.execute(element, true);
        if (feature == null)
        {
            boolean isEmptySize = false;
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/shapefile/DummyFeatureConvertShpJobContext.java
@@ -122,7 +122,7 @@
        }
        // §PÂ_¬O§_²Å©M±ø¥ó
        Feature feature = elementDispatcher.execute(element);
        Feature feature = elementDispatcher.execute(element, true);
        if (feature == null)
        {
            FrammeAttributeData linkage =
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/shapefile/FeatureDgnConvertShpJobContext.java
@@ -118,7 +118,7 @@
        }
        // §PÂ_¬O§_²Å©M±ø¥ó
        Feature feature = elementDispatcher.execute(element);
        Feature feature = elementDispatcher.execute(element, true);
        if (feature == null)
        {
            FrammeAttributeData linkage =
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/shapefile/OracleConvertShapefilesJobContext.java
@@ -135,7 +135,7 @@
    {
        assert elementDispatcher != null;
        // §PÂ_¬O§_²Å©M±ø¥ó
        Feature feature = elementDispatcher.execute(element);
        Feature feature = elementDispatcher.execute(element, true);
        if (feature == null)
        {
            boolean isEmptySize = false;
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/FeatureTypeBuilderUtil.java
@@ -13,18 +13,29 @@
public final class FeatureTypeBuilderUtil
{
    protected static GeometryFactory _geomFactory = new GeometryFactory();
    private static boolean notAllowNull = false ;
    public static boolean isNotAllowNull()
    {
        return notAllowNull;
    }
    public static void setNotAllowNull(boolean notAllowNull)
    {
        FeatureTypeBuilderUtil.notAllowNull = notAllowNull;
    }
    public static FeatureTypeBuilder createNormalPointFeatureTypeBuilder(String featureName)
    {
        FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", Point.class, true));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, false, 12, ""));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("font", Short.class, false, 1, (short) 0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("just", Short.class, false, 1, (short) 0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("height", Float.class, false, 1, (float) 1.0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("width", Float.class, false, 1, (float) 1.0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("angle", Float.class, false, 1, (float) 0.0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("context", String.class, false, 254, ""));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, notAllowNull, 12, ""));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("font", Short.class, notAllowNull, 1, (short) 0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("just", Short.class, notAllowNull, 1, (short) 0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("height", Float.class, notAllowNull, 1, (float) 1.0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("width", Float.class, notAllowNull, 1, (float) 1.0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("angle", Float.class, notAllowNull, 1, (float) 0.0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("context", String.class, notAllowNull, 254, ""));
        return typeBuilder;
    }
@@ -32,9 +43,9 @@
    {
        FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", LineString.class, true));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, false, 12, ""));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, false, 1, (short) 0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, false, 1, (short) 0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, notAllowNull, 12, ""));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, notAllowNull, 1, (short) 0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, notAllowNull, 1, (short) 0));
        return typeBuilder;
    }
@@ -42,9 +53,9 @@
    {
        FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", MultiLineString.class, true));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, false, 12, ""));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, false, 1, (short) 0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, false, 1, (short) 0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, notAllowNull, 12, ""));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, notAllowNull, 1, (short) 0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, notAllowNull, 1, (short) 0));
        return typeBuilder;
    }
@@ -52,9 +63,9 @@
    {
        FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", Polygon.class, true));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, false, 12, ""));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, false, 1, (short) 0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, false, 1, (short) 0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, notAllowNull, 12, ""));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, notAllowNull, 1, (short) 0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, notAllowNull, 1, (short) 0));
        return typeBuilder;
    }
@@ -64,7 +75,7 @@
        /*
        FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", Geometry.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, false, 12));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, notAllowNull, 12));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, false));
        return typeBuilder;
@@ -77,7 +88,7 @@
        /*
        FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", Geometry.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, false, 12));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, notAllowNull, 12));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, false));
        return typeBuilder;
@@ -88,14 +99,14 @@
    {
        FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", Polygon.class, true));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("x1", Double.class, false, 1, 0.0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("y1", Double.class, false, 1, 0.0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("x2", Double.class, false, 1, 0.0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("y2", Double.class, false, 1, 0.0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("tpclid", String.class, false, 12, ""));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, false, 12, ""));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, false, 1, (short) 0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, false, 1, (short) 0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("x1", Double.class, notAllowNull, 1, 0.0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("y1", Double.class, notAllowNull, 1, 0.0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("x2", Double.class, notAllowNull, 1, 0.0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("y2", Double.class, notAllowNull, 1, 0.0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("tpclid", String.class, notAllowNull, 12, ""));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, notAllowNull, 12, ""));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, notAllowNull, 1, (short) 0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, notAllowNull, 1, (short) 0));
        return typeBuilder;
    }
@@ -104,33 +115,33 @@
        FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
        typeBuilder = FeatureTypeBuilder.newInstance(featureName);
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", Point.class, true));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, false, 12, ""));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, false, 1, (short) 0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, false, 1, (short) 0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("just", Short.class, false, 1, (short) 0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("height", Float.class, false, 1, (float) 0.0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("width", Float.class, false, 1, (float) 0.0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("angle", Float.class, false, 1, (float) 0.0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("tpclid", String.class, false, 12, ""));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, notAllowNull, 12, ""));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, notAllowNull, 1, (short) 0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, notAllowNull, 1, (short) 0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("just", Short.class, notAllowNull, 1, (short) 0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("height", Float.class, notAllowNull, 1, (float) 0.0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("width", Float.class, notAllowNull, 1, (float) 0.0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("angle", Float.class, notAllowNull, 1, (float) 0.0));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("tpclid", String.class, notAllowNull, 12, ""));
        return typeBuilder;
    }
    public static FeatureTypeBuilder createPointFeatureTypeBuilder(String featureName)
    {
        FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", Point.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("tid", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("oid", Long.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("cid", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("lid", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("level", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, false, 12));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("just", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("height", Float.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("width", Float.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("angle", Float.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", Point.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("tid", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("oid", Long.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("cid", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("lid", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("level", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, notAllowNull, 12));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("just", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("height", Float.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("width", Float.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("angle", Float.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("context", String.class, true, 254));
        return typeBuilder;
    }
@@ -138,65 +149,65 @@
    public static FeatureTypeBuilder createSymbolFeatureTypeBuilder(String featureName)
    {
        FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", Point.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("tid", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("oid", Long.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("cid", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("lid", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("level", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, false, 12));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("just", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("height", Float.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("width", Float.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("angle", Float.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symbol", String.class, false, 20));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", Point.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("tid", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("oid", Long.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("cid", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("lid", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("level", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, notAllowNull, 12));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("just", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("height", Float.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("width", Float.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("angle", Float.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symbol", String.class, notAllowNull, 20));
        return typeBuilder;
    }
    public static FeatureTypeBuilder createPolygonFeatureTypeBuilder(String featureName)
    {
        FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", Polygon.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("tid", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", Polygon.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("tid", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("oid", Long.class));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("cid", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("lid", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("level", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, false, 12));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("cid", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("lid", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("level", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, notAllowNull, 12));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, notAllowNull));
        return typeBuilder;
    }
    public static FeatureTypeBuilder createLineFeatureTypeBuilder(String featureName)
    {
        FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", LineString.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("tid", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("oid", Long.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("cid", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("lid", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("level", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, false, 12));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", LineString.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("tid", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("oid", Long.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("cid", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("lid", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("level", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, notAllowNull, 12));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, notAllowNull));
        return typeBuilder;
    }
    public static FeatureTypeBuilder createMultiLineFeatureTypeBuilder(String featureName)
    {
        FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", MultiLineString.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("tid", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("oid", Long.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("cid", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("lid", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("level", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, false, 12));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", MultiLineString.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("tid", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("oid", Long.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("cid", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("lid", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("level", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, notAllowNull, 12));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, notAllowNull));
        return typeBuilder;
    }
@@ -205,15 +216,15 @@
        return createPolygonFeatureTypeBuilder(featureName);
        /*
        FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", Geometry.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("tid", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", Geometry.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("tid", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("oid", Long.class));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("cid", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("lid", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("level", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, false, 12));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("cid", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("lid", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("level", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, notAllowNull, 12));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, notAllowNull));
        return typeBuilder;
        */
    }
@@ -223,15 +234,15 @@
        return createLineFeatureTypeBuilder(featureName);
        /*
        FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", Geometry.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("tid", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", Geometry.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("tid", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("oid", Long.class));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("cid", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("lid", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("level", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, false, 12));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("cid", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("lid", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("level", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, notAllowNull, 12));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, notAllowNull));
        return typeBuilder;
        */
    }
@@ -239,20 +250,20 @@
    public static FeatureTypeBuilder createMultiSymbolFeatureTypeBuilder(String featureName)
    {
        FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", MultiPoint.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("tid", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("oid", Long.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("cid", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("lid", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("level", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, false, 12));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("just", Short.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("height", Float.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("width", Float.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("angle", Float.class, false));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symbol", String.class, false, 20));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", MultiPoint.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("tid", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("oid", Long.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("cid", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("lid", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("level", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, notAllowNull, 12));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("just", Short.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("height", Float.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("width", Float.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("angle", Float.class, notAllowNull));
        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symbol", String.class, notAllowNull, 20));
        return typeBuilder;
    }
}