/* Copyright (c) 2001 - 2007 TOPP - www.openplans.org. All rights reserved. * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.web.data.layer; import java.io.Serializable; import java.sql.Date; import java.sql.Time; import java.sql.Timestamp; import java.util.Arrays; import java.util.List; import org.geoserver.web.wicket.ParamResourceModel; import org.geotools.referencing.CRS; import org.opengis.referencing.crs.CoordinateReferenceSystem; import com.vividsolutions.jts.geom.Geometry; import com.vividsolutions.jts.geom.GeometryCollection; import com.vividsolutions.jts.geom.LineString; import com.vividsolutions.jts.geom.MultiLineString; import com.vividsolutions.jts.geom.MultiPoint; import com.vividsolutions.jts.geom.MultiPolygon; import com.vividsolutions.jts.geom.Point; import com.vividsolutions.jts.geom.Polygon; @SuppressWarnings("serial") class AttributeDescription implements Serializable { static final List BINDINGS = Arrays.asList(String.class, Boolean.class, Integer.class, Long.class, Float.class, Double.class, Date.class, Time.class, Timestamp.class, Geometry.class, Point.class, LineString.class, Polygon.class, MultiPoint.class, MultiLineString.class, MultiPolygon.class, GeometryCollection.class); static final CoordinateReferenceSystem WGS84; static { try { WGS84 = CRS.decode("EPSG:4326"); } catch(Exception e) { throw new RuntimeException(e); } } String name; Class binding = String.class; boolean nullable = true; int size = 100; CoordinateReferenceSystem crs = WGS84; /** * Returns the localized named of the attribute type * * @param binding * @return */ static String getLocalizedName(Class binding) { if (binding == null) { return "-"; } else if (BINDINGS.contains(binding)) { return new ParamResourceModel("AttributeType." + binding.getSimpleName(), null) .getString(); } else { return binding.getSimpleName(); } } public String getName() { return name; } public void setName(String name) { this.name = name; } public Class getBinding() { return binding; } public void setBinding(Class binding) { this.binding = binding; } public boolean isNullable() { return nullable; } public void setNullable(boolean nullable) { this.nullable = nullable; } public int getSize() { return size; } public void setSize(int size) { this.size = size; } public CoordinateReferenceSystem getCrs() { return crs; } public void setCrs(CoordinateReferenceSystem crs) { this.crs = crs; } }