/* * Geotoolkit - An Open Source Java GIS Toolkit * http://www.geotoolkit.org * * (C) 2011, Geomatys * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. */ package org.geotoolkit.process.mapfile; import java.awt.Color; import java.awt.geom.Point2D; import java.util.Collections; import java.util.List; import java.util.Map; import org.geotoolkit.util.NamesExt; import org.apache.sis.feature.builder.FeatureTypeBuilder; import org.apache.sis.internal.util.UnmodifiableArrayList; import org.opengis.feature.FeatureType; import org.opengis.util.GenericName; import org.opengis.filter.expression.Expression; import org.opengis.filter.expression.Literal; import org.opengis.filter.expression.PropertyName; /** * Declares all mapfile types. * * @author Johann Sorel (Geomatys) */ public final class MapfileTypes { public static final String NAMESPACE = "http://mapserver.org"; public static final FeatureType CLASS; public static final GenericName CLASS_BACKGROUNDCOLOR; public static final GenericName CLASS_COLOR; public static final GenericName CLASS_DEBUG; public static final GenericName CLASS_EXPRESSION; public static final GenericName CLASS_GROUP; public static final GenericName CLASS_KEYIMAGE; public static final GenericName CLASS_LABEL; public static final GenericName CLASS_MAXSCALEDENOM; public static final GenericName CLASS_MAXSCALE; public static final GenericName CLASS_MAXSIZE; public static final GenericName CLASS_MINSCALEDENOM; public static final GenericName CLASS_MINSCALE; public static final GenericName CLASS_MINSIZE; public static final GenericName CLASS_NAME; public static final GenericName CLASS_OUTLINECOLOR; public static final GenericName CLASS_SIZE; public static final GenericName CLASS_STATUS; public static final GenericName CLASS_STYLE; public static final GenericName CLASS_SYMBOL; public static final GenericName CLASS_TEMPLATE; /** Expression */ public static final GenericName CLASS_TEXT; public static final FeatureType CLUSTER; public static final GenericName CLUSTER_MAXDISTANCE; public static final GenericName CLUSTER_REGION; public static final GenericName CLUSTER_GROUP; public static final GenericName CLUSTER_FILTER; public static final FeatureType FEATURE; public static final GenericName FEATURE_POINTS; public static final GenericName FEATURE_ITEMS; public static final GenericName FEATURE_TEXT; public static final GenericName FEATURE_WKT; public static final FeatureType GRID; public static final GenericName GRID_LABELFORMAT; public static final GenericName GRID_MINARCS; public static final GenericName GRID_MAXARCS; public static final GenericName GRID_MININTERVAL; public static final GenericName GRID_MAXINTERVAL; public static final GenericName GRID_MINSUBDIVIDE; public static final GenericName GRID_MAXSUBDIVIDE; public static final FeatureType JOIN; public static final GenericName JOIN_CONNECTION; public static final GenericName JOIN_CONNECTIONTYPE; public static final GenericName JOIN_FOOTER; public static final GenericName JOIN_FROM; public static final GenericName JOIN_HEADER; public static final GenericName JOIN_NAME; public static final GenericName JOIN_TABLE; public static final GenericName JOIN_TEMPLATE; public static final GenericName JOIN_TO; public static final GenericName JOIN_TYPE; public static final FeatureType LABEL; public static final GenericName LABEL_ALIGN; /** [double|auto|follow|attribute] */ public static final GenericName LABEL_ANGLE; public static final GenericName LABEL_ANTIALIAS; public static final GenericName LABEL_BACKGROUNDCOLOR; public static final GenericName LABEL_BACKGROUNDSHADOWCOLOR; public static final GenericName LABEL_BACKGROUNDSHADOWSIZE; public static final GenericName LABEL_BUFFER; /** [r] [g] [b] | [attribute] */ public static final GenericName LABEL_COLOR; public static final GenericName LABEL_ENCODING; public static final GenericName LABEL_FONT; public static final GenericName LABEL_FORCE; public static final GenericName LABEL_MAXLENGTH; public static final GenericName LABEL_MAXOVERLAPANGLE; public static final GenericName LABEL_MAXSIZE; public static final GenericName LABEL_MINDISTANCE; public static final GenericName LABEL_MINFEATURESIZE; public static final GenericName LABEL_MINSIZE; public static final GenericName LABEL_OFFSET; /** [r] [g] [b] | [attribute] */ public static final GenericName LABEL_OUTLINECOLOR; /** [integer] */ public static final GenericName LABEL_OUTLINEWIDTH; public static final GenericName LABEL_PARTIALS; /** [ul|uc|ur|cl|cc|cr|ll|lc|lr|auto] */ public static final GenericName LABEL_POSITION; public static final GenericName LABEL_PRIORITY; public static final GenericName LABEL_REPEATDISTANCE; public static final GenericName LABEL_SHADOWCOLOR; public static final GenericName LABEL_SHADOWSIZE; /** [double]|[tiny|small|medium|large|giant]|[attribute] */ public static final GenericName LABEL_SIZE; public static final GenericName LABEL_STYLE; public static final GenericName LABEL_TYPE; public static final GenericName LABEL_WRAP; public static final FeatureType LAYER; public static final GenericName LAYER_CLASS; public static final GenericName LAYER_CLASSGROUP; /** [attribute] */ public static final GenericName LAYER_CLASSITEM; public static final GenericName LAYER_CLUSTER; public static final GenericName LAYER_CONNECTION; public static final GenericName LAYER_CONNECTIONTYPE; public static final GenericName LAYER_DATA; public static final GenericName LAYER_DEBUG; public static final GenericName LAYER_DUMP; public static final GenericName LAYER_EXTENT; public static final GenericName LAYER_FEATURE; public static final GenericName LAYER_FILTER; /** [attribute] */ public static final GenericName LAYER_FILTERITEM; public static final GenericName LAYER_FOOTER; public static final GenericName LAYER_GRID; public static final GenericName LAYER_GROUP; public static final GenericName LAYER_HEADER; public static final GenericName LAYER_JOIN; /** [attribute] */ public static final GenericName LAYER_LABELANGLEITEM; public static final GenericName LAYER_LABELCACHE; /** [attribute] */ public static final GenericName LAYER_LABELITEM; public static final GenericName LAYER_LABELMAXSCALEDENOM; public static final GenericName LAYER_LABELMAXSCALE; public static final GenericName LAYER_LABELMINSCALEDENOM; public static final GenericName LAYER_LABELMINSCALE; public static final GenericName LAYER_LABELREQUIRES; /** [attribute] */ public static final GenericName LAYER_LABELSIZEITEM; public static final GenericName LAYER_MAXFEATURES; public static final GenericName LAYER_MAXGEOWIDTH; public static final GenericName LAYER_MAXSCALEDENOM; public static final GenericName LAYER_MAXSCALE; public static final GenericName LAYER_METADATA; public static final GenericName LAYER_MINGEOWIDTH; public static final GenericName LAYER_MINSCALEDENOM; public static final GenericName LAYER_MINSCALE; public static final GenericName LAYER_NAME; public static final GenericName LAYER_OFFSITE; /** [integer|alpha] */ public static final GenericName LAYER_OPACITY; public static final GenericName LAYER_PLUGIN; public static final GenericName LAYER_POSTLABELCACHE; public static final GenericName LAYER_PROCESSING; public static final GenericName LAYER_PROJECTION; public static final GenericName LAYER_REQUIRES; public static final GenericName LAYER_SIZEUNITS; public static final GenericName LAYER_STATUS; /** [attribute] */ public static final GenericName LAYER_STYLEITEM; public static final GenericName LAYER_SYMBOLSCALEDENOM; public static final GenericName LAYER_SYMBOLSCALE; public static final GenericName LAYER_TEMPLATE; public static final GenericName LAYER_TILEINDEX; /** [attribute] */ public static final GenericName LAYER_TILEITEM; public static final GenericName LAYER_TOLERANCE; public static final GenericName LAYER_TOLERANCEUNITS; public static final GenericName LAYER_TRANSPARENCY; public static final GenericName LAYER_TRANSFORM; public static final GenericName LAYER_TYPE; public static final GenericName LAYER_UNITS; public static final FeatureType LEGEND; public static final GenericName LEGEND_IMAGECOLOR; public static final GenericName LEGEND_INTERLACE; public static final GenericName LEGEND_KEYSIZE; public static final GenericName LEGEND_KEYSPACING; public static final GenericName LEGEND_LABEL; public static final GenericName LEGEND_OUTLINECOLOR; public static final GenericName LEGEND_POSITION; public static final GenericName LEGEND_POSTLABELCACHE; public static final GenericName LEGEND_STATUS; public static final GenericName LEGEND_TEMPLATE; public static final GenericName LEGEND_TRANSPARENT; public static final FeatureType MAP; public static final GenericName MAP_ANGLE; public static final GenericName MAP_CONFIG; public static final GenericName MAP_DATAPATTERN; public static final GenericName MAP_DEBUG; public static final GenericName MAP_DEFRESOLUTION; public static final GenericName MAP_EXTENT; public static final GenericName MAP_FONTSET; public static final GenericName MAP_IMAGECOLOR; public static final GenericName MAP_IMAGEQUALITY; public static final GenericName MAP_IMAGETYPE; public static final GenericName MAP_INTERLACE; public static final GenericName MAP_LAYER; public static final GenericName MAP_LEGEND; public static final GenericName MAP_MAXSIZE; public static final GenericName MAP_NAME; public static final GenericName MAP_PROJECTION; public static final GenericName MAP_QUERYMAP; public static final GenericName MAP_REFERENCE; public static final GenericName MAP_RESOLUTION; public static final GenericName MAP_SCALEDENOM; public static final GenericName MAP_SCALE; public static final GenericName MAP_SCALEBAR; public static final GenericName MAP_SHAPEPATH; public static final GenericName MAP_SIZE; public static final GenericName MAP_STATUS; public static final GenericName MAP_SYMBOLSET; public static final GenericName MAP_SYMBOL; public static final GenericName MAP_TEMPLATEPATTERN; public static final GenericName MAP_TRANSPARENT; public static final GenericName MAP_UNITS; public static final GenericName MAP_WEB; public static final FeatureType OUTPUTFORMAT; public static final GenericName OUTPUTFORMAT_DRIVER; public static final GenericName OUTPUTFORMAT_EXTENSION; public static final GenericName OUTPUTFORMAT_FORMATOPTION; public static final GenericName OUTPUTFORMAT_IMAGEMODE; public static final GenericName OUTPUTFORMAT_MIMETYPE; public static final GenericName OUTPUTFORMAT_NAME; public static final GenericName OUTPUTFORMAT_TRANSPARENT; public static final FeatureType QUERYMAP; public static final GenericName QUERYMAP_COLOR; public static final GenericName QUERYMAP_SIZE; public static final GenericName QUERYMAP_STATUS; public static final GenericName QUERYMAP_STYLE; public static final FeatureType REFERENCE; public static final GenericName REFERENCE_COLOR; public static final GenericName REFERENCE_EXTENT; public static final GenericName REFERENCE_IMAGE; public static final GenericName REFERENCE_MARKER; public static final GenericName REFERENCE_MARKERSIZE; public static final GenericName REFERENCE_MINBOXSIZE; public static final GenericName REFERENCE_MAXBOXSIZE; public static final GenericName REFERENCE_OUTLINECOLOR; public static final GenericName REFERENCE_SIZE; public static final GenericName REFERENCE_STATUS; public static final FeatureType SCALEBAR; public static final GenericName SCALEBAR_ALIGN; public static final GenericName SCALEBAR_BACKGROUNDCOLOR; public static final GenericName SCALEBAR_COLOR; public static final GenericName SCALEBAR_IMAGECOLOR; public static final GenericName SCALEBAR_INTERLACE; public static final GenericName SCALEBAR_INTERVALS; public static final GenericName SCALEBAR_LABEL; public static final GenericName SCALEBAR_OUTLINECOLOR; public static final GenericName SCALEBAR_POSITION; public static final GenericName SCALEBAR_POSTLABELCACHE; public static final GenericName SCALEBAR_SIZE; public static final GenericName SCALEBAR_STATUS; public static final GenericName SCALEBAR_STYLE; public static final GenericName SCALEBAR_TRANSPARENT; public static final GenericName SCALEBAR_UNITS; public static final FeatureType STYLE; public static final GenericName STYLE_ANGLE; public static final GenericName STYLE_ANGLEITEM; public static final GenericName STYLE_ANTIALIAS; public static final GenericName STYLE_BACKGROUNDCOLOR; /** [r] [g] [b] | [attribute] */ public static final GenericName STYLE_COLOR; public static final GenericName STYLE_GAP; public static final GenericName STYLE_GEOMTRANSFORM; /** [butt|round|square] */ public static final GenericName STYLE_LINECAP; /** [round|miter|bevel] */ public static final GenericName STYLE_LINEJOIN; public static final GenericName STYLE_LINEJOINMAXSIZE; public static final GenericName STYLE_MAXSIZE; public static final GenericName STYLE_MAXWIDTH; public static final GenericName STYLE_MINSIZE; public static final GenericName STYLE_MINWIDTH; public static final GenericName STYLE_OFFSET; /** [integer|attribute] */ public static final GenericName STYLE_OPACITY; /** [r] [g] [b] | [attribute] */ public static final GenericName STYLE_OUTLINECOLOR; /** no info, I guess it's an expression */ public static final GenericName STYLE_OUTLINEWIDTH; /** [double on] [double off] [double on] [double off] ... END */ public static final GenericName STYLE_PATTERN; /** [double|attribute] */ public static final GenericName STYLE_SIZE; public static final GenericName STYLE_SIZEITEM; public static final GenericName STYLE_SYMBOL; /** [double|attribute] */ public static final GenericName STYLE_WIDTH; public static final FeatureType SYMBOL; public static final GenericName SYMBOL_ANTIALIAS; public static final GenericName SYMBOL_CHARACTER; public static final GenericName SYMBOL_FILLED; public static final GenericName SYMBOL_FONT; public static final GenericName SYMBOL_GAP; public static final GenericName SYMBOL_IMAGE; public static final GenericName SYMBOL_NAME; public static final GenericName SYMBOL_LINECAP; public static final GenericName SYMBOL_LINEJOIN; public static final GenericName SYMBOL_LINEJOINMAXSIZE; public static final GenericName SYMBOL_PATTERN; public static final GenericName SYMBOL_POINTS; public static final GenericName SYMBOL_STYLE; public static final GenericName SYMBOL_TRANSPARENT; public static final GenericName SYMBOL_TYPE; public static final FeatureType WEB; public static final GenericName WEB_BROWSEFORMAT; public static final GenericName WEB_EMPTY; public static final GenericName WEB_ERROR; public static final GenericName WEB_FOOTER; public static final GenericName WEB_HEADER; public static final GenericName WEB_IMAGEPATH; public static final GenericName WEB_IMAGEURL; public static final GenericName WEB_LEGENDFORMAT; public static final GenericName WEB_LOG; public static final GenericName WEB_MAXSCALEDENOM; public static final GenericName WEB_MAXSCALE; public static final GenericName WEB_MAXTEMPLATE; public static final GenericName WEB_METADATA; public static final GenericName WEB_MINSCALEDENOM; public static final GenericName WEB_MINSCALE; public static final GenericName WEB_MINTEMPLATE; public static final GenericName WEB_QUERYFORMAT; public static final GenericName WEB_TEMPLATE; static { FeatureTypeBuilder ftb; //---------------------------------------------------------------------- ftb = new FeatureTypeBuilder(); ftb.setName(NAMESPACE,"STYLE"); STYLE_ANGLE = addAttribute(ftb,NamesExt.create(NAMESPACE, "ANGLE"), String.class); STYLE_ANGLEITEM = addAttribute(ftb,NamesExt.create(NAMESPACE, "ANGLEITEM"), String.class); //deprecated STYLE_ANTIALIAS = addAttribute(ftb,NamesExt.create(NAMESPACE, "ANTIALIAS"), Boolean.class); STYLE_BACKGROUNDCOLOR = addAttribute(ftb,NamesExt.create(NAMESPACE, "BACKGROUNDCOLOR"), Color.class); STYLE_COLOR = addAttribute(ftb,NamesExt.create(NAMESPACE, "COLOR"), Expression.class); STYLE_GAP = addAttribute(ftb,NamesExt.create(NAMESPACE, "GAP"), Double.class); STYLE_GEOMTRANSFORM = addAttribute(ftb,NamesExt.create(NAMESPACE, "GEOMTRANSFORM"), String.class); STYLE_LINECAP = addAttribute(ftb,NamesExt.create(NAMESPACE, "LINECAP"), Literal.class); STYLE_LINEJOIN = addAttribute(ftb,NamesExt.create(NAMESPACE, "LINEJOIN"), Literal.class); STYLE_LINEJOINMAXSIZE = addAttribute(ftb,NamesExt.create(NAMESPACE, "LINEJOINMAXSIZE"), Integer.class); STYLE_MAXSIZE = addAttribute(ftb,NamesExt.create(NAMESPACE, "MAXSIZE"), Double.class); STYLE_MAXWIDTH = addAttribute(ftb,NamesExt.create(NAMESPACE, "MAXWIDTH"), Double.class); STYLE_MINSIZE = addAttribute(ftb,NamesExt.create(NAMESPACE, "MINSIZE"), Double.class); STYLE_MINWIDTH = addAttribute(ftb,NamesExt.create(NAMESPACE, "MINWIDTH"), Double.class); STYLE_OFFSET = addAttribute(ftb,NamesExt.create(NAMESPACE, "OFFSET"), Point2D.class); STYLE_OPACITY = addAttribute(ftb,NamesExt.create(NAMESPACE, "OPACITY"), Expression.class); STYLE_OUTLINECOLOR = addAttribute(ftb,NamesExt.create(NAMESPACE, "OUTLINECOLOR"), Expression.class); STYLE_OUTLINEWIDTH = addAttribute(ftb,NamesExt.create(NAMESPACE, "OUTLINEWIDTH"), Expression.class); STYLE_PATTERN = addAttribute(ftb,NamesExt.create(NAMESPACE, "PATTERN"), float[].class); STYLE_SIZE = addAttribute(ftb,NamesExt.create(NAMESPACE, "SIZE"), Expression.class); STYLE_SIZEITEM = addAttribute(ftb,NamesExt.create(NAMESPACE, "SIZEITEM"), String.class); //deprecated STYLE_SYMBOL = addAttribute(ftb,NamesExt.create(NAMESPACE, "SYMBOL"), String.class); STYLE_WIDTH = addAttribute(ftb,NamesExt.create(NAMESPACE, "WIDTH"), Expression.class); STYLE = ftb.build(); //---------------------------------------------------------------------- ftb = new FeatureTypeBuilder(); ftb.setName(NAMESPACE,"LABEL"); LABEL_ALIGN = addAttribute(ftb,NamesExt.create(NAMESPACE, "ALIGN"), String.class); LABEL_ANGLE = addAttribute(ftb,NamesExt.create(NAMESPACE, "ANGLE"), String.class); LABEL_ANTIALIAS = addAttribute(ftb,NamesExt.create(NAMESPACE, "ANTIALIAS"), Boolean.class); LABEL_BACKGROUNDCOLOR = addAttribute(ftb,NamesExt.create(NAMESPACE, "BACKGROUNDCOLOR"), Color.class); //deprecated LABEL_BACKGROUNDSHADOWCOLOR = addAttribute(ftb,NamesExt.create(NAMESPACE, "BACKGROUNDSHADOWCOLOR"),Color.class); //deprecated LABEL_BACKGROUNDSHADOWSIZE = addAttribute(ftb,NamesExt.create(NAMESPACE, "BACKGROUNDSHADOWSIZE"),Point2D.class); //deprecated LABEL_BUFFER = addAttribute(ftb,NamesExt.create(NAMESPACE, "BUFFER"), Integer.class); LABEL_COLOR = addAttribute(ftb,NamesExt.create(NAMESPACE, "COLOR"), Expression.class); LABEL_ENCODING = addAttribute(ftb,NamesExt.create(NAMESPACE, "ENCODING"), String.class); LABEL_FONT = addAttribute(ftb,NamesExt.create(NAMESPACE, "FONT"), String.class); LABEL_FORCE = addAttribute(ftb,NamesExt.create(NAMESPACE, "FORCE"), Boolean.class); LABEL_MAXLENGTH = addAttribute(ftb,NamesExt.create(NAMESPACE, "MAXLENGTH"), Integer.class); LABEL_MAXOVERLAPANGLE = addAttribute(ftb,NamesExt.create(NAMESPACE, "MAXOVERLAPANGLE"), Double.class); LABEL_MAXSIZE = addAttribute(ftb,NamesExt.create(NAMESPACE, "MAXSIZE"), Double.class); LABEL_MINDISTANCE = addAttribute(ftb,NamesExt.create(NAMESPACE, "MINDISTANCE"), Integer.class); LABEL_MINFEATURESIZE = addAttribute(ftb,NamesExt.create(NAMESPACE, "MINFEATURESIZE"), String.class); LABEL_MINSIZE = addAttribute(ftb,NamesExt.create(NAMESPACE, "MINSIZE"), Double.class); LABEL_OFFSET = addAttribute(ftb,NamesExt.create(NAMESPACE, "OFFSET"), Point2D.class); LABEL_OUTLINECOLOR = addAttribute(ftb,NamesExt.create(NAMESPACE, "OUTLINECOLOR"), Expression.class); LABEL_OUTLINEWIDTH = addAttribute(ftb,NamesExt.create(NAMESPACE, "OUTLINEWIDTH"), Integer.class); LABEL_PARTIALS = addAttribute(ftb,NamesExt.create(NAMESPACE, "PARTIALS"), Boolean.class); LABEL_POSITION = addAttribute(ftb,NamesExt.create(NAMESPACE, "POSITION"), String.class); LABEL_PRIORITY = addAttribute(ftb,NamesExt.create(NAMESPACE, "PRIORITY"), String.class); LABEL_REPEATDISTANCE = addAttribute(ftb,NamesExt.create(NAMESPACE, "REPEATDISTANCE"), Integer.class); LABEL_SHADOWCOLOR = addAttribute(ftb,NamesExt.create(NAMESPACE, "SHADOWCOLOR"), Color.class); LABEL_SHADOWSIZE = addAttribute(ftb,NamesExt.create(NAMESPACE, "SHADOWSIZE"), String.class); LABEL_SIZE = addAttribute(ftb,NamesExt.create(NAMESPACE, "SIZE"), Expression.class); LABEL_STYLE = STYLE.getName(); ftb.addAssociation(STYLE).setName(STYLE.getName()); LABEL_TYPE = addAttribute(ftb,NamesExt.create(NAMESPACE, "TYPE"), String.class); LABEL_WRAP = addAttribute(ftb,NamesExt.create(NAMESPACE, "WRAP"), String.class); LABEL = ftb.build(); //---------------------------------------------------------------------- ftb = new FeatureTypeBuilder(); ftb.setName(NAMESPACE,"WEB"); WEB_BROWSEFORMAT = addAttribute(ftb,NamesExt.create(NAMESPACE, "BROWSEFORMAT"), String.class); WEB_EMPTY = addAttribute(ftb,NamesExt.create(NAMESPACE, "EMPTY"), String.class); WEB_ERROR = addAttribute(ftb,NamesExt.create(NAMESPACE, "ERROR"), String.class); WEB_FOOTER = addAttribute(ftb,NamesExt.create(NAMESPACE, "FOOTER"), String.class); WEB_HEADER = addAttribute(ftb,NamesExt.create(NAMESPACE, "HEADER"), String.class); WEB_IMAGEPATH = addAttribute(ftb,NamesExt.create(NAMESPACE, "IMAGEPATH"), String.class); WEB_IMAGEURL = addAttribute(ftb,NamesExt.create(NAMESPACE, "IMAGEURL"), String.class); WEB_LEGENDFORMAT = addAttribute(ftb,NamesExt.create(NAMESPACE, "LEGENDFORMAT"), String.class); WEB_LOG = addAttribute(ftb,NamesExt.create(NAMESPACE, "LOG"), String.class); //deprecated WEB_MAXSCALEDENOM = addAttribute(ftb,NamesExt.create(NAMESPACE, "MAXSCALEDENOM"), Double.class); WEB_MAXSCALE = addAttribute(ftb,NamesExt.create(NAMESPACE, "MAXSCALE"), Double.class); //deprecated WEB_MAXTEMPLATE = addAttribute(ftb,NamesExt.create(NAMESPACE, "MAXTEMPLATE"), String.class); WEB_METADATA = addAttribute(ftb,NamesExt.create(NAMESPACE, "METADATA"), String.class); WEB_MINSCALEDENOM = addAttribute(ftb,NamesExt.create(NAMESPACE, "MINSCALEDENOM"), Double.class); WEB_MINSCALE = addAttribute(ftb,NamesExt.create(NAMESPACE, "MINSCALE"), Double.class); //deprecated WEB_MINTEMPLATE = addAttribute(ftb,NamesExt.create(NAMESPACE, "MINTEMPLATE"), String.class); WEB_QUERYFORMAT = addAttribute(ftb,NamesExt.create(NAMESPACE, "QUERYFORMAT"), String.class); WEB_TEMPLATE = addAttribute(ftb,NamesExt.create(NAMESPACE, "TEMPLATE"), String.class); //should exist, yet the mapserver doesn't explain what it contain //ftb.add(new DefaultName(NAMESPACE, "VALIDATION"), String.class); WEB = ftb.build(); //---------------------------------------------------------------------- ftb = new FeatureTypeBuilder(); ftb.setName(NAMESPACE,"CLASS"); CLASS_BACKGROUNDCOLOR = addAttribute(ftb,NamesExt.create(NAMESPACE, "BACKGROUNDCOLOR"), Color.class); CLASS_COLOR = addAttribute(ftb,NamesExt.create(NAMESPACE, "COLOR"), Color.class); CLASS_DEBUG = addAttribute(ftb,NamesExt.create(NAMESPACE, "DEBUG"), Boolean.class); CLASS_EXPRESSION = addAttribute(ftb,NamesExt.create(NAMESPACE, "EXPRESSION"), String.class); CLASS_GROUP = addAttribute(ftb,NamesExt.create(NAMESPACE, "GROUP"), String.class); CLASS_KEYIMAGE = addAttribute(ftb,NamesExt.create(NAMESPACE, "KEYIMAGE"), String.class); CLASS_LABEL = LABEL.getName(); ftb.addAssociation(LABEL).setName(LABEL.getName()); CLASS_MAXSCALEDENOM = addAttribute(ftb,NamesExt.create(NAMESPACE, "MAXSCALEDENOM"), Double.class); CLASS_MAXSCALE = addAttribute(ftb,NamesExt.create(NAMESPACE, "MAXSCALE"), Double.class); //deprecated CLASS_MAXSIZE = addAttribute(ftb,NamesExt.create(NAMESPACE, "MAXSIZE"), Integer.class); CLASS_MINSCALEDENOM = addAttribute(ftb,NamesExt.create(NAMESPACE, "MINSCALEDENOM"), Double.class); CLASS_MINSCALE = addAttribute(ftb,NamesExt.create(NAMESPACE, "MINSCALE"), Double.class); //deprecated CLASS_MINSIZE = addAttribute(ftb,NamesExt.create(NAMESPACE, "MINSIZE"), Integer.class); CLASS_NAME = addAttribute(ftb,NamesExt.create(NAMESPACE, "NAME"), String.class); CLASS_OUTLINECOLOR = addAttribute(ftb,NamesExt.create(NAMESPACE, "OUTLINECOLOR"), Color.class); CLASS_SIZE = addAttribute(ftb,NamesExt.create(NAMESPACE, "SIZE"), Integer.class); CLASS_STATUS = addAttribute(ftb,NamesExt.create(NAMESPACE, "STATUS"), Boolean.class); CLASS_STYLE = STYLE.getName(); ftb.addAssociation(STYLE).setName(STYLE.getName()); CLASS_SYMBOL = addAttribute(ftb,NamesExt.create(NAMESPACE, "SYMBOL"), String.class); CLASS_TEMPLATE = addAttribute(ftb,NamesExt.create(NAMESPACE, "TEMPLATE"), String.class); CLASS_TEXT = addAttribute(ftb,NamesExt.create(NAMESPACE, "TEXT"), Expression.class); //should exist, yet the mapserver doesn't explain what it contain //ftb.add(new DefaultName(NAMESPACE, "VALIDATION"), String.class); CLASS = ftb.build(); //---------------------------------------------------------------------- ftb = new FeatureTypeBuilder(); ftb.setName(NAMESPACE,"CLUSTER"); CLUSTER_MAXDISTANCE = addAttribute(ftb,NamesExt.create(NAMESPACE, "MAXDISTANCE"), Double.class); CLUSTER_REGION = addAttribute(ftb,NamesExt.create(NAMESPACE, "REGION"), String.class); CLUSTER_GROUP = addAttribute(ftb,NamesExt.create(NAMESPACE, "GROUP"), String.class); CLUSTER_FILTER = addAttribute(ftb,NamesExt.create(NAMESPACE, "FILTER"), String.class); CLUSTER = ftb.build(); //---------------------------------------------------------------------- ftb = new FeatureTypeBuilder(); ftb.setName(NAMESPACE,"FEATURE"); FEATURE_POINTS = addAttribute(ftb,NamesExt.create(NAMESPACE, "POINTS"), String.class); FEATURE_ITEMS = addAttribute(ftb,NamesExt.create(NAMESPACE, "ITEMS"), String.class); FEATURE_TEXT = addAttribute(ftb,NamesExt.create(NAMESPACE, "TEXT"), String.class); FEATURE_WKT = addAttribute(ftb,NamesExt.create(NAMESPACE, "WKT"), String.class); FEATURE = ftb.build(); //---------------------------------------------------------------------- ftb = new FeatureTypeBuilder(); ftb.setName(NAMESPACE,"GRID"); GRID_LABELFORMAT = addAttribute(ftb,NamesExt.create(NAMESPACE, "LABELFORMAT"), String.class); GRID_MINARCS = addAttribute(ftb,NamesExt.create(NAMESPACE, "MINARCS"), Double.class); GRID_MAXARCS = addAttribute(ftb,NamesExt.create(NAMESPACE, "MAXARCS"), Double.class); GRID_MININTERVAL = addAttribute(ftb,NamesExt.create(NAMESPACE, "MININTERVAL"), Double.class); GRID_MAXINTERVAL = addAttribute(ftb,NamesExt.create(NAMESPACE, "MAXINTERVAL"), Double.class); GRID_MINSUBDIVIDE = addAttribute(ftb,NamesExt.create(NAMESPACE, "MINSUBDIVIDE"), Double.class); GRID_MAXSUBDIVIDE = addAttribute(ftb,NamesExt.create(NAMESPACE, "MAXSUBDIVIDE"), Double.class); GRID = ftb.build(); //---------------------------------------------------------------------- ftb = new FeatureTypeBuilder(); ftb.setName(NAMESPACE,"JOIN"); JOIN_CONNECTION = addAttribute(ftb,NamesExt.create(NAMESPACE, "CONNECTION"), String.class); JOIN_CONNECTIONTYPE = addAttribute(ftb,NamesExt.create(NAMESPACE, "CONNECTIONTYPE"), String.class); JOIN_FOOTER = addAttribute(ftb,NamesExt.create(NAMESPACE, "FOOTER"), String.class); JOIN_FROM = addAttribute(ftb,NamesExt.create(NAMESPACE, "FROM"), String.class); JOIN_HEADER = addAttribute(ftb,NamesExt.create(NAMESPACE, "HEADER"), String.class); JOIN_NAME = addAttribute(ftb,NamesExt.create(NAMESPACE, "NAME"), String.class); JOIN_TABLE = addAttribute(ftb,NamesExt.create(NAMESPACE, "TABLE"), String.class); JOIN_TEMPLATE = addAttribute(ftb,NamesExt.create(NAMESPACE, "TEMPLATE"), String.class); JOIN_TO = addAttribute(ftb,NamesExt.create(NAMESPACE, "TO"), String.class); JOIN_TYPE = addAttribute(ftb,NamesExt.create(NAMESPACE, "TYPE"), String.class); JOIN = ftb.build(); //---------------------------------------------------------------------- ftb = new FeatureTypeBuilder(); ftb.setName(NAMESPACE,"LAYER"); LAYER_CLASS = CLASS.getName(); ftb.addAssociation(CLASS).setName(CLASS.getName()).setMinimumOccurs(0).setMaximumOccurs(Integer.MAX_VALUE); LAYER_CLASSGROUP = addAttribute(ftb,NamesExt.create(NAMESPACE, "CLASSGROUP"), String.class); LAYER_CLASSITEM = addAttribute(ftb,NamesExt.create(NAMESPACE, "CLASSITEM"), PropertyName.class); LAYER_CLUSTER = CLUSTER.getName(); ftb.addAssociation(CLUSTER).setName(CLUSTER.getName()); LAYER_CONNECTION = addAttribute(ftb,NamesExt.create(NAMESPACE, "CONNECTION"), String.class); LAYER_CONNECTIONTYPE = addAttribute(ftb,NamesExt.create(NAMESPACE, "CONNECTIONTYPE"), String.class); LAYER_DATA = addAttribute(ftb,NamesExt.create(NAMESPACE, "DATA"), String.class); LAYER_DEBUG = addAttribute(ftb,NamesExt.create(NAMESPACE, "DEBUG"), String.class); LAYER_DUMP = addAttribute(ftb,NamesExt.create(NAMESPACE, "DUMP"), Boolean.class); LAYER_EXTENT = addAttribute(ftb,NamesExt.create(NAMESPACE, "EXTENT"), String.class); LAYER_FEATURE = FEATURE.getName(); ftb.addAssociation(FEATURE).setName(FEATURE.getName()); LAYER_FILTER = addAttribute(ftb,NamesExt.create(NAMESPACE, "FILTER"), String.class); LAYER_FILTERITEM = addAttribute(ftb,NamesExt.create(NAMESPACE, "FILTERITEM"), PropertyName.class); LAYER_FOOTER = addAttribute(ftb,NamesExt.create(NAMESPACE, "FOOTER"), String.class); LAYER_GRID = GRID.getName(); ftb.addAssociation(GRID).setName(GRID.getName()); LAYER_GROUP = addAttribute(ftb,NamesExt.create(NAMESPACE, "GROUP"), String.class); LAYER_HEADER = addAttribute(ftb,NamesExt.create(NAMESPACE, "HEADER"), String.class); LAYER_JOIN = JOIN.getName(); ftb.addAssociation(JOIN).setName(JOIN.getName()); LAYER_LABELANGLEITEM = addAttribute(ftb,NamesExt.create(NAMESPACE, "LABELANGLEITEM"), PropertyName.class); LAYER_LABELCACHE = addAttribute(ftb,NamesExt.create(NAMESPACE, "LABELCACHE"), Boolean.class); LAYER_LABELITEM = addAttribute(ftb,NamesExt.create(NAMESPACE, "LABELITEM"), PropertyName.class); LAYER_LABELMAXSCALEDENOM = addAttribute(ftb,NamesExt.create(NAMESPACE, "LABELMAXSCALEDENOM"),Double.class); LAYER_LABELMAXSCALE = addAttribute(ftb,NamesExt.create(NAMESPACE, "LABELMAXSCALE"), Double.class); //deprecated LAYER_LABELMINSCALEDENOM = addAttribute(ftb,NamesExt.create(NAMESPACE, "LABELMINSCALEDENOM"),Double.class); LAYER_LABELMINSCALE = addAttribute(ftb,NamesExt.create(NAMESPACE, "LABELMINSCALE"), Double.class); //deprecated LAYER_LABELREQUIRES = addAttribute(ftb,NamesExt.create(NAMESPACE, "LABELREQUIRES"), String.class); LAYER_LABELSIZEITEM = addAttribute(ftb,NamesExt.create(NAMESPACE, "LABELSIZEITEM"), PropertyName.class); //deprecated LAYER_MAXFEATURES = addAttribute(ftb,NamesExt.create(NAMESPACE, "MAXFEATURES"), Integer.class); LAYER_MAXGEOWIDTH = addAttribute(ftb,NamesExt.create(NAMESPACE, "MAXGEOWIDTH"), Double.class); LAYER_MAXSCALEDENOM = addAttribute(ftb,NamesExt.create(NAMESPACE, "MAXSCALEDENOM"), Double.class); LAYER_MAXSCALE = addAttribute(ftb,NamesExt.create(NAMESPACE, "MAXSCALE"), Double.class); //deprecated LAYER_METADATA = addAttribute(ftb,NamesExt.create(NAMESPACE, "METADATA"), String.class); LAYER_MINGEOWIDTH = addAttribute(ftb,NamesExt.create(NAMESPACE, "MINGEOWIDTH"), Double.class); LAYER_MINSCALEDENOM = addAttribute(ftb,NamesExt.create(NAMESPACE, "MINSCALEDENOM"), Double.class); LAYER_MINSCALE = addAttribute(ftb,NamesExt.create(NAMESPACE, "MINSCALE"), Double.class); //deprecated LAYER_NAME = addAttribute(ftb,NamesExt.create(NAMESPACE, "NAME"), String.class); LAYER_OFFSITE = addAttribute(ftb,NamesExt.create(NAMESPACE, "OFFSITE"), Color.class); LAYER_OPACITY = addAttribute(ftb,NamesExt.create(NAMESPACE, "OPACITY"), String.class); LAYER_PLUGIN = addAttribute(ftb,NamesExt.create(NAMESPACE, "PLUGIN"), String.class); LAYER_POSTLABELCACHE = addAttribute(ftb,NamesExt.create(NAMESPACE, "POSTLABELCACHE"), Boolean.class); LAYER_PROCESSING = addAttribute(ftb,NamesExt.create(NAMESPACE, "PROCESSING"), String.class); LAYER_PROJECTION = addAttribute(ftb,NamesExt.create(NAMESPACE, "PROJECTION"), String.class); LAYER_REQUIRES = addAttribute(ftb,NamesExt.create(NAMESPACE, "REQUIRES"), String.class); LAYER_SIZEUNITS = addAttribute(ftb,NamesExt.create(NAMESPACE, "SIZEUNITS"), String.class); LAYER_STATUS = addAttribute(ftb,NamesExt.create(NAMESPACE, "STATUS"), String.class); LAYER_STYLEITEM = addAttribute(ftb,NamesExt.create(NAMESPACE, "STYLEITEM"), PropertyName.class); LAYER_SYMBOLSCALEDENOM = addAttribute(ftb,NamesExt.create(NAMESPACE, "SYMBOLSCALEDENOM"), Double.class); LAYER_SYMBOLSCALE = addAttribute(ftb,NamesExt.create(NAMESPACE, "SYMBOLSCALE"), Double.class); //deprecated LAYER_TEMPLATE = addAttribute(ftb,NamesExt.create(NAMESPACE, "TEMPLATE"), String.class); LAYER_TILEINDEX = addAttribute(ftb,NamesExt.create(NAMESPACE, "TILEINDEX"), String.class); LAYER_TILEITEM = addAttribute(ftb,NamesExt.create(NAMESPACE, "TILEITEM"), PropertyName.class); LAYER_TOLERANCE = addAttribute(ftb,NamesExt.create(NAMESPACE, "TOLERANCE"), Double.class); LAYER_TOLERANCEUNITS = addAttribute(ftb,NamesExt.create(NAMESPACE, "TOLERANCEUNITS"), String.class); LAYER_TRANSPARENCY = addAttribute(ftb,NamesExt.create(NAMESPACE, "TRANSPARENCY"), String.class); //deprecated LAYER_TRANSFORM = addAttribute(ftb,NamesExt.create(NAMESPACE, "TRANSFORM"), String.class); LAYER_TYPE = addAttribute(ftb,NamesExt.create(NAMESPACE, "TYPE"), String.class); LAYER_UNITS = addAttribute(ftb,NamesExt.create(NAMESPACE, "UNITS"), String.class); //should exist, yet the mapserver doesn't explain what it contain //ftb.add(new DefaultName(NAMESPACE, "VALIDATION"), String.class); LAYER = ftb.build(); //---------------------------------------------------------------------- ftb = new FeatureTypeBuilder(); ftb.setName(NAMESPACE,"LEGEND"); LEGEND_IMAGECOLOR = addAttribute(ftb,NamesExt.create(NAMESPACE, "IMAGECOLOR"), Color.class); LEGEND_INTERLACE = addAttribute(ftb,NamesExt.create(NAMESPACE, "INTERLACE"), Boolean.class); LEGEND_KEYSIZE = addAttribute(ftb,NamesExt.create(NAMESPACE, "KEYSIZE"), Point2D.class); LEGEND_KEYSPACING = addAttribute(ftb,NamesExt.create(NAMESPACE, "KEYSPACING"), Point2D.class); LEGEND_LABEL = LABEL.getName(); ftb.addAssociation(LABEL).setName(LABEL.getName()).setMinimumOccurs(0).setMaximumOccurs(Integer.MAX_VALUE); LEGEND_OUTLINECOLOR = addAttribute(ftb,NamesExt.create(NAMESPACE, "OUTLINECOLOR"), Color.class); LEGEND_POSITION = addAttribute(ftb,NamesExt.create(NAMESPACE, "POSITION"), String.class); LEGEND_POSTLABELCACHE = addAttribute(ftb,NamesExt.create(NAMESPACE, "POSTLABELCACHE"), Boolean.class); LEGEND_STATUS = addAttribute(ftb,NamesExt.create(NAMESPACE, "STATUS"), String.class); LEGEND_TEMPLATE = addAttribute(ftb,NamesExt.create(NAMESPACE, "TEMPLATE"), String.class); LEGEND_TRANSPARENT = addAttribute(ftb,NamesExt.create(NAMESPACE, "TRANSPARENT"), Boolean.class); //deprecated LEGEND = ftb.build(); //---------------------------------------------------------------------- ftb = new FeatureTypeBuilder(); ftb.setName(NAMESPACE,"OUTPUTFORMAT"); OUTPUTFORMAT_DRIVER = addAttribute(ftb,NamesExt.create(NAMESPACE, "DRIVER"), String.class); OUTPUTFORMAT_EXTENSION = addAttribute(ftb,NamesExt.create(NAMESPACE, "EXTENSION"), String.class); OUTPUTFORMAT_FORMATOPTION = NamesExt.create(NAMESPACE, "FORMATOPTION"); ftb.addAttribute(String.class).setName(NamesExt.create(NAMESPACE, "FORMATOPTION")).setMinimumOccurs(0).setMaximumOccurs(Integer.MAX_VALUE); OUTPUTFORMAT_IMAGEMODE = addAttribute(ftb,NamesExt.create(NAMESPACE, "IMAGEMODE"), String.class); OUTPUTFORMAT_MIMETYPE = addAttribute(ftb,NamesExt.create(NAMESPACE, "MIMETYPE"), String.class); OUTPUTFORMAT_NAME = addAttribute(ftb,NamesExt.create(NAMESPACE, "NAME"), String.class); OUTPUTFORMAT_TRANSPARENT = addAttribute(ftb,NamesExt.create(NAMESPACE, "TRANSPARENT"), Boolean.class); OUTPUTFORMAT = ftb.build(); //---------------------------------------------------------------------- ftb = new FeatureTypeBuilder(); ftb.setName(NAMESPACE,"QUERYMAP"); QUERYMAP_COLOR = addAttribute(ftb,NamesExt.create(NAMESPACE, "COLOR"), Color.class); QUERYMAP_SIZE = addAttribute(ftb,NamesExt.create(NAMESPACE, "SIZE"), Point2D.class); QUERYMAP_STATUS = addAttribute(ftb,NamesExt.create(NAMESPACE, "STATUS"), Boolean.class); QUERYMAP_STYLE = addAttribute(ftb,NamesExt.create(NAMESPACE, "STYLE"), String.class); QUERYMAP = ftb.build(); //---------------------------------------------------------------------- ftb = new FeatureTypeBuilder(); ftb.setName(NAMESPACE,"REFERENCE"); REFERENCE_COLOR = addAttribute(ftb,NamesExt.create(NAMESPACE, "COLOR"), Color.class); REFERENCE_EXTENT = addAttribute(ftb,NamesExt.create(NAMESPACE, "EXTENT"), String.class); REFERENCE_IMAGE = addAttribute(ftb,NamesExt.create(NAMESPACE, "IMAGE"), String.class); REFERENCE_MARKER = addAttribute(ftb,NamesExt.create(NAMESPACE, "MARKER"), String.class); REFERENCE_MARKERSIZE = addAttribute(ftb,NamesExt.create(NAMESPACE, "MARKERSIZE"), Integer.class); REFERENCE_MINBOXSIZE = addAttribute(ftb,NamesExt.create(NAMESPACE, "MINBOXSIZE"), Integer.class); REFERENCE_MAXBOXSIZE = addAttribute(ftb,NamesExt.create(NAMESPACE, "MAXBOXSIZE"), Integer.class); REFERENCE_OUTLINECOLOR = addAttribute(ftb,NamesExt.create(NAMESPACE, "OUTLINECOLOR"), Color.class); REFERENCE_SIZE = addAttribute(ftb,NamesExt.create(NAMESPACE, "SIZE"), Point2D.class); REFERENCE_STATUS = addAttribute(ftb,NamesExt.create(NAMESPACE, "STATUS"), Boolean.class); REFERENCE = ftb.build(); //---------------------------------------------------------------------- ftb = new FeatureTypeBuilder(); ftb.setName(NAMESPACE,"SCALEBAR"); SCALEBAR_ALIGN = addAttribute(ftb,NamesExt.create(NAMESPACE, "ALIGN"), String.class); SCALEBAR_BACKGROUNDCOLOR= addAttribute(ftb,NamesExt.create(NAMESPACE, "BACKGROUNDCOLOR"), Color.class); SCALEBAR_COLOR = addAttribute(ftb,NamesExt.create(NAMESPACE, "COLOR"), Color.class); SCALEBAR_IMAGECOLOR = addAttribute(ftb,NamesExt.create(NAMESPACE, "IMAGECOLOR"), Color.class); SCALEBAR_INTERLACE = addAttribute(ftb,NamesExt.create(NAMESPACE, "INTERLACE"), Boolean.class); //deprecated SCALEBAR_INTERVALS = addAttribute(ftb,NamesExt.create(NAMESPACE, "INTERVALS"), Integer.class); SCALEBAR_LABEL = LABEL.getName(); ftb.addAssociation(LABEL).setName(LABEL.getName()); SCALEBAR_OUTLINECOLOR = addAttribute(ftb,NamesExt.create(NAMESPACE, "OUTLINECOLOR"), Color.class); SCALEBAR_POSITION = addAttribute(ftb,NamesExt.create(NAMESPACE, "POSITION"), String.class); SCALEBAR_POSTLABELCACHE = addAttribute(ftb,NamesExt.create(NAMESPACE, "POSTLABELCACHE"), Boolean.class); SCALEBAR_SIZE = addAttribute(ftb,NamesExt.create(NAMESPACE, "SIZE"), Point2D.class); SCALEBAR_STATUS = addAttribute(ftb,NamesExt.create(NAMESPACE, "STATUS"), String.class); SCALEBAR_STYLE = addAttribute(ftb,NamesExt.create(NAMESPACE, "STYLE"), Integer.class); SCALEBAR_TRANSPARENT = addAttribute(ftb,NamesExt.create(NAMESPACE, "TRANSPARENT"), Boolean.class); //deprecated SCALEBAR_UNITS = addAttribute(ftb,NamesExt.create(NAMESPACE, "UNITS"), String.class); SCALEBAR = ftb.build(); //---------------------------------------------------------------------- ftb = new FeatureTypeBuilder(); ftb.setName(NAMESPACE,"SYMBOL"); SYMBOL_ANTIALIAS = addAttribute(ftb,NamesExt.create(NAMESPACE, "ANTIALIAS"), Boolean.class); SYMBOL_CHARACTER = addAttribute(ftb,NamesExt.create(NAMESPACE, "CHARACTER"), String.class); SYMBOL_FILLED = addAttribute(ftb,NamesExt.create(NAMESPACE, "FILLED"), Boolean.class); SYMBOL_FONT = addAttribute(ftb,NamesExt.create(NAMESPACE, "FONT"), String.class); SYMBOL_GAP = addAttribute(ftb,NamesExt.create(NAMESPACE, "GAP"), Integer.class); //deprecated SYMBOL_IMAGE = addAttribute(ftb,NamesExt.create(NAMESPACE, "IMAGE"), String.class); SYMBOL_NAME = addAttribute(ftb,NamesExt.create(NAMESPACE, "NAME"), String.class); SYMBOL_LINECAP = addAttribute(ftb,NamesExt.create(NAMESPACE, "LINECAP"), String.class); //deprecated SYMBOL_LINEJOIN = addAttribute(ftb,NamesExt.create(NAMESPACE, "LINEJOIN"), String.class); //deprecated SYMBOL_LINEJOINMAXSIZE = addAttribute(ftb,NamesExt.create(NAMESPACE, "LINEJOINMAXSIZE"), Integer.class); //deprecated SYMBOL_PATTERN = addAttribute(ftb,NamesExt.create(NAMESPACE, "PATTERN"), String.class); //deprecated SYMBOL_POINTS = addAttribute(ftb,NamesExt.create(NAMESPACE, "POINTS"), String.class); SYMBOL_STYLE = addAttribute(ftb,NamesExt.create(NAMESPACE, "STYLE"), String.class); //deprecated SYMBOL_TRANSPARENT = addAttribute(ftb,NamesExt.create(NAMESPACE, "TRANSPARENT"), Integer.class); /** [ellipse|hatch|pixmap|simple|truetype|vector] */ SYMBOL_TYPE = addAttribute(ftb,NamesExt.create(NAMESPACE, "TYPE"), String.class); SYMBOL = ftb.build(); //---------------------------------------------------------------------- ftb = new FeatureTypeBuilder(); ftb.setName(NAMESPACE,"MAP"); MAP_ANGLE = addAttribute(ftb,NamesExt.create(NAMESPACE, "ANGLE"), Double.class); MAP_CONFIG = addAttribute(ftb,NamesExt.create(NAMESPACE, "CONFIG"), String.class); MAP_DATAPATTERN = addAttribute(ftb,NamesExt.create(NAMESPACE, "DATAPATTERN"), String.class); MAP_DEBUG = addAttribute(ftb,NamesExt.create(NAMESPACE, "DEBUG"), String.class); MAP_DEFRESOLUTION = addAttribute(ftb,NamesExt.create(NAMESPACE, "DEFRESOLUTION"), Integer.class); MAP_EXTENT = addAttribute(ftb,NamesExt.create(NAMESPACE, "EXTENT"), String.class); MAP_FONTSET = addAttribute(ftb,NamesExt.create(NAMESPACE, "FONTSET"), String.class); MAP_IMAGECOLOR = addAttribute(ftb,NamesExt.create(NAMESPACE, "IMAGECOLOR"), Color.class); MAP_IMAGEQUALITY = addAttribute(ftb,NamesExt.create(NAMESPACE, "IMAGEQUALITY"), Integer.class); //deprecated MAP_IMAGETYPE = addAttribute(ftb,NamesExt.create(NAMESPACE, "IMAGETYPE"), String.class); MAP_INTERLACE = addAttribute(ftb,NamesExt.create(NAMESPACE, "INTERLACE"), Boolean.class); //deprecated MAP_LAYER = LAYER.getName(); ftb.addAssociation(LAYER).setName(LAYER.getName()).setMinimumOccurs(0).setMaximumOccurs(Integer.MAX_VALUE); MAP_LEGEND = LEGEND.getName(); ftb.addAssociation(LEGEND).setName(LEGEND.getName()).setMinimumOccurs(0).setMaximumOccurs(Integer.MAX_VALUE); MAP_MAXSIZE = addAttribute(ftb,NamesExt.create(NAMESPACE, "MAXSIZE"), Integer.class); MAP_NAME = addAttribute(ftb,NamesExt.create(NAMESPACE, "NAME"), String.class); MAP_PROJECTION = addAttribute(ftb,NamesExt.create(NAMESPACE, "PROJECTION"), String.class); MAP_QUERYMAP = QUERYMAP.getName(); ftb.addAssociation(QUERYMAP).setName(QUERYMAP.getName()); MAP_REFERENCE = REFERENCE.getName(); ftb.addAssociation(REFERENCE).setName(REFERENCE.getName()); MAP_RESOLUTION = addAttribute(ftb,NamesExt.create(NAMESPACE, "RESOLUTION"), Integer.class); MAP_SCALEDENOM = addAttribute(ftb,NamesExt.create(NAMESPACE, "SCALEDENOM"), Double.class); MAP_SCALE = addAttribute(ftb,NamesExt.create(NAMESPACE, "SCALE"), Double.class); //deprecated MAP_SCALEBAR = SCALEBAR.getName(); ftb.addAssociation(SCALEBAR).setName(SCALEBAR.getName()); MAP_SHAPEPATH = addAttribute(ftb,NamesExt.create(NAMESPACE, "SHAPEPATH"), String.class); MAP_SIZE = addAttribute(ftb,NamesExt.create(NAMESPACE, "SIZE"), String.class); MAP_STATUS = addAttribute(ftb,NamesExt.create(NAMESPACE, "STATUS"), Boolean.class); MAP_SYMBOLSET = addAttribute(ftb,NamesExt.create(NAMESPACE, "SYMBOLSET"), String.class); MAP_SYMBOL = SYMBOL.getName(); ftb.addAssociation(SYMBOL).setName(SYMBOL.getName()).setMinimumOccurs(0).setMaximumOccurs(Integer.MAX_VALUE); MAP_TEMPLATEPATTERN = addAttribute(ftb,NamesExt.create(NAMESPACE, "TEMPLATEPATTERN"), String.class); MAP_TRANSPARENT = addAttribute(ftb,NamesExt.create(NAMESPACE, "TRANSPARENT"), Boolean.class); //deprecated MAP_UNITS = addAttribute(ftb,NamesExt.create(NAMESPACE, "UNITS"), String.class); MAP_WEB = WEB.getName(); ftb.addAssociation(WEB).setName(WEB.getName()); MAP = ftb.build(); } private static GenericName addAttribute(FeatureTypeBuilder ftb,GenericName name, Class valueClass){ ftb.addAttribute(valueClass).setName(name); return name; } private static final List<FeatureType> ALL_TYPES = UnmodifiableArrayList.wrap(new FeatureType[] { CLASS,CLUSTER,FEATURE,GRID,JOIN,LABEL,LAYER,LEGEND,MAP, OUTPUTFORMAT,QUERYMAP,REFERENCE,SCALEBAR,STYLE,SYMBOL,WEB}); public static FeatureType getType(final GenericName name){ for(FeatureType ft : ALL_TYPES){ if(ft.getName().equals(name)){ return ft; } } return null; } public static FeatureType getType(final String name){ for(FeatureType ft : ALL_TYPES){ if(ft.getName().tip().toString().equalsIgnoreCase(name)){ return ft; } } return null; } private static Map<Object,Object> deprecated(){ return Collections.singletonMap((Object)"Deprecated", (Object)Boolean.TRUE); } private MapfileTypes(){ } }