package com.ximple.eofms.util; import org.geotools.feature.AttributeTypeFactory; import org.geotools.feature.FeatureTypeBuilder; import com.vividsolutions.jts.geom.GeometryFactory; import com.vividsolutions.jts.geom.Point; import com.vividsolutions.jts.geom.Polygon; import com.vividsolutions.jts.geom.LineString; import com.vividsolutions.jts.geom.MultiLineString; import com.vividsolutions.jts.geom.MultiPoint; 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, 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; } public static FeatureTypeBuilder createNormalLineFeatureTypeBuilder(String featureName) { FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName); typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", LineString.class, true)); 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; } public static FeatureTypeBuilder createNormalMultiLineFeatureTypeBuilder(String featureName) { FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName); typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", MultiLineString.class, true)); 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; } public static FeatureTypeBuilder createNormalPolygonFeatureTypeBuilder(String featureName) { FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName); typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", Polygon.class, true)); 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; } 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, notAllowNull, 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 createNormalPolygonFeatureTypeBuilder(featureName); /* FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName); typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", Geometry.class, false)); 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; */ } public static FeatureTypeBuilder createNormalIndexFeatureTypeBuilder(String featureName) { FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName); typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", Polygon.class, true)); 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; } public static FeatureTypeBuilder createNormalIndexTextFeatureTypeBuilder(String featureName) { FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName); typeBuilder = FeatureTypeBuilder.newInstance(featureName); typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", Point.class, true)); 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, 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; } public static FeatureTypeBuilder createSymbolFeatureTypeBuilder(String featureName) { FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName); 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, notAllowNull)); typeBuilder.addType(AttributeTypeFactory.newAttributeType("tid", Short.class, notAllowNull)); typeBuilder.addType(AttributeTypeFactory.newAttributeType("oid", Long.class)); 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, 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, 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 createEllipseFeatureTypeBuilder(String featureName) { return createPolygonFeatureTypeBuilder(featureName); /* FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName); 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, 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 createArcFeatureTypeBuilder(String featureName) { return createLineFeatureTypeBuilder(featureName); /* FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName); 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, 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 createMultiSymbolFeatureTypeBuilder(String featureName) { FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName); 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; } }