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.distribution;
021:
022: // J2SE direct dependencies and extensions
023: import java.util.Date;
024:
025: // OpenGIS dependencies
026: import org.opengis.util.InternationalString;
027: import org.opengis.metadata.distribution.StandardOrderProcess;
028:
029: // Geotools dependencies
030: import org.geotools.metadata.iso.MetadataEntity;
031:
032: /**
033: * Common ways in which the resource may be obtained or received, and related instructions
034: * and fee information.
035: *
036: * @source $URL: http://svn.geotools.org/geotools/tags/2.4.1/modules/library/metadata/src/main/java/org/geotools/metadata/iso/distribution/StandardOrderProcessImpl.java $
037: * @version $Id: StandardOrderProcessImpl.java 25189 2007-04-17 13:23:47Z desruisseaux $
038: * @author Martin Desruisseaux
039: * @author Jody Garnett
040: *
041: * @since 2.1
042: */
043: public class StandardOrderProcessImpl extends MetadataEntity implements
044: StandardOrderProcess {
045: /**
046: * Serial number for interoperability with different versions.
047: */
048: private static final long serialVersionUID = -6503378937452728631L;
049:
050: /**
051: * Fees and terms for retrieving the resource.
052: * Include monetary units (as specified in ISO 4217).
053: */
054: private InternationalString fees;
055:
056: /**
057: * Date and time when the dataset will be available,
058: * in milliseconds ellapsed since January 1st, 1970.
059: */
060: private long plannedAvailableDateTime = Long.MIN_VALUE;
061:
062: /**
063: * General instructions, terms and services provided by the distributor.
064: */
065: private InternationalString orderingInstructions;
066:
067: /**
068: * Typical turnaround time for the filling of an order.
069: */
070: private InternationalString turnaround;
071:
072: /**
073: * Constructs an initially empty standard order process.
074: */
075: public StandardOrderProcessImpl() {
076: }
077:
078: /**
079: * Constructs a metadata entity initialized with the values from the specified metadata.
080: *
081: * @since 2.4
082: */
083: public StandardOrderProcessImpl(final StandardOrderProcess source) {
084: super (source);
085: }
086:
087: /**
088: * Returns fees and terms for retrieving the resource.
089: * Include monetary units (as specified in ISO 4217).
090: */
091: public InternationalString getFees() {
092: return fees;
093: }
094:
095: /**
096: * Set fees and terms for retrieving the resource.
097: * Include monetary units (as specified in ISO 4217).
098: */
099: public synchronized void setFees(final InternationalString newValue) {
100: checkWritePermission();
101: fees = newValue;
102: }
103:
104: /**
105: * Returns the date and time when the dataset will be available.
106: */
107: public synchronized Date getPlannedAvailableDateTime() {
108: return (plannedAvailableDateTime != Long.MIN_VALUE) ? new Date(
109: plannedAvailableDateTime) : null;
110: }
111:
112: /**
113: * Set the date and time when the dataset will be available.
114: */
115: public synchronized void setPlannedAvailableDateTime(
116: final Date newValue) {
117: checkWritePermission();
118: plannedAvailableDateTime = (newValue != null) ? newValue
119: .getTime() : Long.MIN_VALUE;
120: }
121:
122: /**
123: * Returns general instructions, terms and services provided by the distributor.
124: */
125: public InternationalString getOrderingInstructions() {
126: return orderingInstructions;
127: }
128:
129: /**
130: * Set general instructions, terms and services provided by the distributor.
131: */
132: public synchronized void setOrderingInstructions(
133: final InternationalString newValue) {
134: checkWritePermission();
135: orderingInstructions = newValue;
136: }
137:
138: /**
139: * Returns typical turnaround time for the filling of an order.
140: */
141: public InternationalString getTurnaround() {
142: return turnaround;
143: }
144:
145: /**
146: * Set typical turnaround time for the filling of an order.
147: */
148: public synchronized void setTurnaround(
149: final InternationalString newValue) {
150: checkWritePermission();
151: turnaround = newValue;
152: }
153: }
|