/* (c) 2014 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.catalog;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* Represents a dimension, such as the standard TIME and ELEVATION ones, but could be a custom one
*
* @author Andrea Aime - GeoSolutions
*/
public interface DimensionInfo extends Serializable {
/** Default value for elevation dimension 'units'. **/
public static final String ELEVATION_UNITS = "EPSG:5030";
/** Default value for elevation dimension 'unitSymbol'. **/
public static final String ELEVATION_UNIT_SYMBOL = "m";
/** Default value for time dimension 'unitSymbol'. **/
public static final String TIME_UNITS = "ISO8601";
/**
* Whether this dimension is enabled or not
*/
public boolean isEnabled();
/**
* Sets the dimension as enabled, or not
*
* @param enabled
*/
public void setEnabled(boolean enabled);
/**
* The attribute on which the dimension is based. Used only for vector data
*
*
*/
public String getAttribute();
public void setAttribute(String attribute);
/**
* The attribute on which the end of the dimension is based. Used only for vector data.
* This attribute is optional.
*
*/
public String getEndAttribute();
public void setEndAttribute(String attribute);
/**
* The way the dimension is going to be presented in the capabilities documents
*
*
*/
public DimensionPresentation getPresentation();
public void setPresentation(DimensionPresentation presentation);
/**
* The interval resolution in case {@link DimensionPresentation#DISCRETE_INTERVAL} presentation
* has been chosen (it can be a representation of a elevation resolution or a time interval in
* milliseconds)
*
*
*/
public BigDecimal getResolution();
public void setResolution(BigDecimal resolution);
/**
* The units attribute for the elevation dimension. This method has no affect
* on the time dimension.
*
* @return the value for units
*/
public String getUnits();
public void setUnits(String units);
/**
* The unitSymbol attribute for the elevation dimension. This method has no affect
* on the time dimension.
*
* @return the value for unitSymbol
*/
public String getUnitSymbol();
public void setUnitSymbol(String unitSymbol);
/**
* The setting for selecting the default value for this dimension.
*
* @return the current default value setting
*/
public DimensionDefaultValueSetting getDefaultValue();
public void setDefaultValue(DimensionDefaultValueSetting defaultValue);
}