001: /*
002: * GeoTools - OpenSource mapping toolkit
003: * http://geotools.org
004: * (C) 2007, GeoTools Project Managment Committee (PMC)
005: * (C) 2007, Geomatys
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: package org.geotools.image.io.metadata;
018:
019: import java.util.Date;
020: import org.opengis.referencing.cs.CoordinateSystemAxis; // For javadoc
021:
022: /**
023: * An {@code <Axis>} element in
024: * {@linkplain GeographicMetadataFormat geographic metadata format}.
025: *
026: * @since 2.4
027: * @source $URL: http://svn.geotools.org/geotools/tags/2.4.1/modules/unsupported/coverageio/src/main/java/org/geotools/image/io/metadata/Axis.java $
028: * @version $Id: Axis.java 26151 2007-07-04 18:54:48Z desruisseaux $
029: * @author Martin Desruisseaux
030: *
031: * @see CoordinateSystemAxis
032: */
033: public class Axis extends MetadataAccessor {
034: /**
035: * Creates a parser for an axis. This constructor should not be invoked
036: * directly; use {@link ImageReferencing#getAxis} instead.
037: *
038: * @param metadata The metadata which contains this axis.
039: * @param index The band index for this instance.
040: */
041: protected Axis(final ImageReferencing metadata, final int index) {
042: super (metadata.cs);
043: selectChild(index);
044: }
045:
046: /**
047: * Creates a parser for an axis. This constructor should not be invoked
048: * directly; use {@link ImageReferencing#getAxis} instead.
049: *
050: * @param parent The set of all axis.
051: * @param index The axis index for this instance.
052: */
053: Axis(final ChildList parent, final int index) {
054: super (parent);
055: selectChild(index);
056: }
057:
058: /**
059: * Returns the name for this axis, or {@code null} if none.
060: */
061: public String getName() {
062: return getString("name");
063: }
064:
065: /**
066: * Sets the name for this axis.
067: *
068: * @param name The axis name, or {@code null} if none.
069: */
070: public void setName(final String name) {
071: setString("name", name);
072: }
073:
074: /**
075: * Returns the direction for this axis, or {@code null} if none.
076: */
077: public String getDirection() {
078: return getString("direction");
079: }
080:
081: /**
082: * Sets the direction for this axis.
083: *
084: * @param direction The axis direction, or {@code null} if none.
085: */
086: public void setDirection(final String direction) {
087: setEnum("direction", direction,
088: GeographicMetadataFormat.DIRECTIONS);
089: }
090:
091: /**
092: * Returns the units for this axis, or {@code null} if none.
093: */
094: public String getUnits() {
095: return getString("units");
096: }
097:
098: /**
099: * Sets the units for this axis.
100: *
101: * @param units The axis units, or {@code null} if none.
102: */
103: public void setUnits(final String units) {
104: setString("units", units);
105: }
106:
107: /**
108: * Returns the time origin for this axis, or {@code null} if none.
109: */
110: public Date getTimeOrigin() {
111: return getDate("origin");
112: }
113:
114: /**
115: * Sets the time origin for this axis.
116: *
117: * @param origin The axis time origin, or {@code null} if none.
118: */
119: public void setTimeOrigin(final Date origin) {
120: setDate("origin", origin);
121: }
122: }
|