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.constraint;
021:
022: // OpenGIS direct dependencies
023: import org.opengis.metadata.constraint.Classification;
024: import org.opengis.metadata.constraint.SecurityConstraints;
025: import org.opengis.util.InternationalString;
026:
027: /**
028: * Handling restrictions imposed on the resource for national security or similar security concerns.
029: *
030: * @source $URL: http://svn.geotools.org/geotools/tags/2.4.1/modules/library/metadata/src/main/java/org/geotools/metadata/iso/constraint/SecurityConstraintsImpl.java $
031: * @version $Id: SecurityConstraintsImpl.java 25193 2007-04-18 13:37:38Z desruisseaux $
032: * @author Martin Desruisseaux
033: * @author Touraïvane
034: *
035: * @since 2.1
036: */
037: public class SecurityConstraintsImpl extends ConstraintsImpl implements
038: SecurityConstraints {
039: /**
040: * Serial number for interoperability with different versions.
041: */
042: private static final long serialVersionUID = 6412833018607679734L;;
043:
044: /**
045: * Name of the handling restrictions on the resource.
046: */
047: private Classification classification;
048:
049: /**
050: * Explanation of the application of the legal constraints or other restrictions and legal
051: * prerequisites for obtaining and using the resource.
052: */
053: private InternationalString userNote;
054:
055: /**
056: * Name of the classification system.
057: */
058: private InternationalString classificationSystem;
059:
060: /**
061: * Additional information about the restrictions on handling the resource.
062: */
063: private InternationalString handlingDescription;
064:
065: /**
066: * Creates an initially empty security constraints.
067: */
068: public SecurityConstraintsImpl() {
069: }
070:
071: /**
072: * Constructs a metadata entity initialized with the values from the specified metadata.
073: *
074: * @since 2.4
075: */
076: public SecurityConstraintsImpl(final SecurityConstraints source) {
077: super (source);
078: }
079:
080: /**
081: * Creates a security constraints initialized with the specified classification.
082: */
083: public SecurityConstraintsImpl(final Classification classification) {
084: setClassification(classification);
085: }
086:
087: /**
088: * Returns the name of the handling restrictions on the resource.
089: */
090: public Classification getClassification() {
091: return classification;
092: }
093:
094: /**
095: * Set the name of the handling restrictions on the resource.
096: */
097: public synchronized void setClassification(
098: final Classification newValue) {
099: checkWritePermission();
100: classification = newValue;
101: }
102:
103: /**
104: * Returns the explanation of the application of the legal constraints or other restrictions and legal
105: * prerequisites for obtaining and using the resource.
106: */
107: public InternationalString getUserNote() {
108: return userNote;
109: }
110:
111: /**
112: * Set the explanation of the application of the legal constraints or other restrictions and legal
113: * prerequisites for obtaining and using the resource.
114: */
115: public synchronized void setUserNote(
116: final InternationalString newValue) {
117: checkWritePermission();
118: userNote = newValue;
119: }
120:
121: /**
122: * Returns the name of the classification system.
123: */
124: public InternationalString getClassificationSystem() {
125: return classificationSystem;
126: }
127:
128: /**
129: * Set the name of the classification system.
130: */
131: public synchronized void setClassificationSystem(
132: final InternationalString newValue) {
133: checkWritePermission();
134: classificationSystem = newValue;
135: }
136:
137: /**
138: * Returns the additional information about the restrictions on handling the resource.
139: */
140: public InternationalString getHandlingDescription() {
141: return handlingDescription;
142: }
143:
144: /**
145: * Set the additional information about the restrictions on handling the resource.
146: */
147: public synchronized void setHandlingDescription(
148: final InternationalString newValue) {
149: checkWritePermission();
150: handlingDescription = newValue;
151: }
152: }
|