package com.ximple.eofms.util; import org.geotools.feature.AttributeTypeFactory; import org.geotools.feature.FeatureTypeBuilder; import com.vividsolutions.jts.geom.Geometry; import com.vividsolutions.jts.geom.GeometryFactory; import com.vividsolutions.jts.geom.Coordinate; public final class FeatureTypeBuilderUtil { protected static GeometryFactory _geomFactory = new GeometryFactory(); public static FeatureTypeBuilder createNormalPointFeatureTypeBuilder(String featureName) { FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName); typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", Geometry.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, "")); return typeBuilder; } public static FeatureTypeBuilder createNormalLineFeatureTypeBuilder(String featureName) { FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName); typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", Geometry.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)); return typeBuilder; } public static FeatureTypeBuilder createNormalArcFeatureTypeBuilder(String featureName) { return createNormalLineFeatureTypeBuilder(featureName); /* 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("symweight", Short.class, false)); typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, false)); return typeBuilder; */ } public static FeatureTypeBuilder createNormalEllipseFeatureTypeBuilder(String featureName) { return createNormalLineFeatureTypeBuilder(featureName); /* 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("symweight", Short.class, false)); typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, false)); return typeBuilder; */ } public static FeatureTypeBuilder createNormalIndexFeatureTypeBuilder(String featureName) { FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName); typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", Geometry.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)); return typeBuilder; } public static FeatureTypeBuilder createNormalIndexTextFeatureTypeBuilder(String featureName) { FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName); typeBuilder = FeatureTypeBuilder.newInstance(featureName); typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", Geometry.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, "")); return typeBuilder; } public static FeatureTypeBuilder createPointFeatureTypeBuilder(String 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("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("context", String.class, true, 254)); return typeBuilder; } public static FeatureTypeBuilder createSymbolFeatureTypeBuilder(String 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("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)); return typeBuilder; } public static FeatureTypeBuilder createPolygonFeatureTypeBuilder(String featureName) { return createLineStringFeatureTypeBuilder(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("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)); return typeBuilder; */ } public static FeatureTypeBuilder createLineStringFeatureTypeBuilder(String 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("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)); return typeBuilder; } public static FeatureTypeBuilder createEllipseFeatureTypeBuilder(String featureName) { return createLineStringFeatureTypeBuilder(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("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)); return typeBuilder; */ } public static FeatureTypeBuilder createArcFeatureTypeBuilder(String featureName) { return createLineStringFeatureTypeBuilder(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("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)); return typeBuilder; */ } }