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;
021:
022: // J2SE direct dependencies
023: import java.net.URI;
024:
025: // OpenGIS dependencies
026: import org.opengis.metadata.ApplicationSchemaInformation;
027: import org.opengis.metadata.SpatialAttributeSupplement;
028: import org.opengis.metadata.citation.Citation;
029:
030: /**
031: * Information about the application schema used to build the dataset.
032: *
033: * @source $URL: http://svn.geotools.org/geotools/tags/2.4.1/modules/library/metadata/src/main/java/org/geotools/metadata/iso/ApplicationSchemaInformationImpl.java $
034: * @version $Id: ApplicationSchemaInformationImpl.java 25189 2007-04-17 13:23:47Z desruisseaux $
035: * @author Martin Desruisseaux
036: * @author Touraïvane
037: *
038: * @since 2.1
039: */
040: public class ApplicationSchemaInformationImpl extends MetadataEntity
041: implements ApplicationSchemaInformation {
042: /**
043: * Serial number for interoperability with different versions.
044: */
045: private static final long serialVersionUID = -3109191272905767382L;
046:
047: /**
048: * Name of the application schema used.
049: */
050: private Citation name;
051:
052: /**
053: * Identification of the schema language used.
054: */
055: private String schemaLanguage;
056:
057: /**
058: * Formal language used in Application Schema.
059: */
060: private String constraintLanguage;
061:
062: /**
063: * Full application schema given as an ASCII file.
064: */
065: private URI schemaAscii;
066:
067: /**
068: * Full application schema given as a graphics file.
069: */
070: private URI graphicsFile;
071:
072: /**
073: * Full application schema given as a software development file.
074: */
075: private URI softwareDevelopmentFile;
076:
077: /**
078: * Software dependent format used for the application schema software dependent file.
079: */
080: private String softwareDevelopmentFileFormat;
081:
082: /**
083: * Information about the spatial attributes in the application schema for the feature types.
084: */
085: private SpatialAttributeSupplement featureCatalogueSupplement;
086:
087: /**
088: * Construct an initially empty application schema information.
089: */
090: public ApplicationSchemaInformationImpl() {
091: }
092:
093: /**
094: * Constructs a metadata entity initialized with the values from the specified metadata.
095: *
096: * @since 2.4
097: */
098: public ApplicationSchemaInformationImpl(
099: final ApplicationSchemaInformation source) {
100: super (source);
101: }
102:
103: /**
104: * Creates a application schema information initialized to the specified values.
105: */
106: public ApplicationSchemaInformationImpl(final Citation name,
107: final String schemaLanguage, final String constraintLanguage) {
108: setName(name);
109: setSchemaLanguage(schemaLanguage);
110: setConstraintLanguage(constraintLanguage);
111: }
112:
113: /**
114: * Name of the application schema used.
115: */
116: public Citation getName() {
117: return name;
118: }
119:
120: /**
121: * Set the name of the application schema used.
122: */
123: public synchronized void setName(final Citation newValue) {
124: checkWritePermission();
125: name = newValue;
126: }
127:
128: /**
129: * Identification of the schema language used.
130: */
131: public String getSchemaLanguage() {
132: return schemaLanguage;
133: }
134:
135: /**
136: * Set the identification of the schema language used.
137: */
138: public synchronized void setSchemaLanguage(final String newValue) {
139: checkWritePermission();
140: schemaLanguage = newValue;
141: }
142:
143: /**
144: * Formal language used in Application Schema.
145: */
146: public String getConstraintLanguage() {
147: return constraintLanguage;
148: }
149:
150: /**
151: * Set the formal language used in Application Schema.
152: */
153: public synchronized void setConstraintLanguage(final String newValue) {
154: checkWritePermission();
155: constraintLanguage = newValue;
156: }
157:
158: /**
159: * Full application schema given as an ASCII file.
160: */
161: public URI getSchemaAscii() {
162: return schemaAscii;
163: }
164:
165: /**
166: * Set the full application schema given as an ASCII file.
167: */
168: public synchronized void setSchemaAscii(final URI newValue) {
169: checkWritePermission();
170: schemaAscii = newValue;
171: }
172:
173: /**
174: * Full application schema given as a graphics file.
175: */
176: public URI getGraphicsFile() {
177: return graphicsFile;
178: }
179:
180: /**
181: * Set the full application schema given as a graphics file.
182: */
183: public synchronized void setGraphicsFile(final URI newValue) {
184: checkWritePermission();
185: graphicsFile = newValue;
186: }
187:
188: /**
189: * Full application schema given as a software development file.
190: */
191: public URI getSoftwareDevelopmentFile() {
192: return softwareDevelopmentFile;
193: }
194:
195: /**
196: * Set the full application schema given as a software development file.
197: */
198: public synchronized void setSoftwareDevelopmentFile(
199: final URI newValue) {
200: checkWritePermission();
201: softwareDevelopmentFile = newValue;
202: }
203:
204: /**
205: * Software dependent format used for the application schema software dependent file.
206: */
207: public String getSoftwareDevelopmentFileFormat() {
208: return softwareDevelopmentFileFormat;
209: }
210:
211: /**
212: * Set the software dependent format used for the application schema software dependent file.
213: */
214: public synchronized void setSoftwareDevelopmentFileFormat(
215: final String newValue) {
216: checkWritePermission();
217: softwareDevelopmentFileFormat = newValue;
218: }
219:
220: /**
221: * Information about the spatial attributes in the application schema for the feature types.
222: */
223: public SpatialAttributeSupplement getFeatureCatalogueSupplement() {
224: return featureCatalogueSupplement;
225: }
226:
227: /**
228: * Set information about the spatial attributes in the application schema for the feature types.
229: */
230: public synchronized void setFeatureCatalogueSupplement(
231: final SpatialAttributeSupplement newValue) {
232: checkWritePermission();
233: featureCatalogueSupplement = newValue;
234: }
235: }
|