001: /*
002: * GeoTools - OpenSource mapping toolkit
003: * http://geotools.org
004: * (C) 2004-2006, GeoTools Project Managment Committee (PMC)
005: * (C) 2004, Institut de Recherche pour le Développement
006: *
007: * This library is free software; you can redistribute it and/or
008: * modify it under the terms of the GNU Lesser General Public
009: * License as published by the Free Software Foundation;
010: * version 2.1 of the License.
011: *
012: * This library is distributed in the hope that it will be useful,
013: * but WITHOUT ANY WARRANTY; without even the implied warranty of
014: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
015: * Lesser General Public License for more details.
016: *
017: * This package contains documentation from OpenGIS specifications.
018: * OpenGIS consortium's work is fully acknowledged here.
019: */
020: package org.geotools.metadata.iso.spatial;
021:
022: // OpenGIS dependencies
023: import org.opengis.metadata.spatial.Dimension;
024: import org.opengis.metadata.spatial.DimensionNameType;
025:
026: // Geotools dependencies
027: import org.geotools.metadata.iso.MetadataEntity;
028:
029: /**
030: * Axis properties.
031: *
032: * @source $URL: http://svn.geotools.org/geotools/tags/2.4.1/modules/library/metadata/src/main/java/org/geotools/metadata/iso/spatial/DimensionImpl.java $
033: * @version $Id: DimensionImpl.java 25189 2007-04-17 13:23:47Z desruisseaux $
034: * @author Martin Desruisseaux
035: * @author Touraïvane
036: *
037: * @since 2.1
038: */
039: public class DimensionImpl extends MetadataEntity implements Dimension {
040: /**
041: * Serial number for interoperability with different versions.
042: */
043: private static final long serialVersionUID = -2572515000574007266L;
044:
045: /**
046: * Name of the axis.
047: */
048: private DimensionNameType dimensionName;
049:
050: /**
051: * Number of elements along the axis.
052: */
053: private Integer dimensionSize;
054:
055: /**
056: * Degree of detail in the grid dataset.
057: */
058: private Double resolution;
059:
060: /**
061: * Constructs an initially empty dimension.
062: */
063: public DimensionImpl() {
064: }
065:
066: /**
067: * Constructs a metadata entity initialized with the values from the specified metadata.
068: *
069: * @since 2.4
070: */
071: public DimensionImpl(final Dimension source) {
072: super (source);
073: }
074:
075: /*
076: * Creates a dimension initialized to the given type.
077: */
078: public DimensionImpl(final DimensionNameType dimensionName,
079: final int dimensionSize) {
080: setDimensionName(dimensionName);
081: setDimensionSize(new Integer(dimensionSize));
082: }
083:
084: /**
085: * Name of the axis.
086: */
087: public DimensionNameType getDimensionName() {
088: return dimensionName;
089: }
090:
091: /**
092: * Set the name of the axis.
093: */
094: public synchronized void setDimensionName(
095: final DimensionNameType newValue) {
096: checkWritePermission();
097: dimensionName = newValue;
098: }
099:
100: /**
101: * Number of elements along the axis.
102: */
103: public Integer getDimensionSize() {
104: return dimensionSize;
105: }
106:
107: /**
108: * Set the number of elements along the axis.
109: */
110: public synchronized void setDimensionSize(final Integer newValue) {
111: checkWritePermission();
112: dimensionSize = newValue;
113: }
114:
115: /**
116: * Degree of detail in the grid dataset.
117: */
118: public Double getResolution() {
119: return resolution;
120: }
121:
122: /**
123: * Set the degree of detail in the grid dataset.
124: */
125: public synchronized void setResolution(final Double newValue) {
126: checkWritePermission();
127: resolution = newValue;
128: }
129: }
|