/* (c) 2014 - 2016 Open Source Geospatial Foundation - all rights reserved
* (c) 2001 - 2013 OpenPlans
* 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<Class<?>> 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
*
*/
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;
}
}