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.util.Collection;
024:
025: // OpenGIS dependencies
026: import org.opengis.metadata.citation.OnLineResource;
027: import org.opengis.metadata.ExtendedElementInformation;
028: import org.opengis.metadata.MetadataExtensionInformation;
029:
030: /**
031: * Information describing metadata extensions.
032: *
033: * @source $URL: http://svn.geotools.org/geotools/tags/2.4.1/modules/library/metadata/src/main/java/org/geotools/metadata/iso/MetadataExtensionInformationImpl.java $
034: * @version $Id: MetadataExtensionInformationImpl.java 25193 2007-04-18 13:37:38Z desruisseaux $
035: * @author Martin Desruisseaux
036: * @author Touraïvane
037: *
038: * @since 2.1
039: */
040: public class MetadataExtensionInformationImpl extends MetadataEntity
041: implements MetadataExtensionInformation {
042: /**
043: * Serial number for compatibility with different versions.
044: */
045: private static final long serialVersionUID = 573866936088674519L;
046:
047: /**
048: * Information about on-line sources containing the community profile name and
049: * the extended metadata elements. Information for all new metadata elements.
050: */
051: private OnLineResource extensionOnLineResource;
052:
053: /**
054: * Provides information about a new metadata element, not found in ISO 19115, which is
055: * required to describe geographic data.
056: */
057: private Collection extendedElementInformation;
058:
059: /**
060: * Construct an initially empty metadata extension information.
061: */
062: public MetadataExtensionInformationImpl() {
063: }
064:
065: /**
066: * Constructs a metadata entity initialized with the values from the specified metadata.
067: *
068: * @since 2.4
069: */
070: public MetadataExtensionInformationImpl(
071: final MetadataExtensionInformation source) {
072: super (source);
073: }
074:
075: /**
076: * Information about on-line sources containing the community profile name and
077: * the extended metadata elements. Information for all new metadata elements.
078: */
079: public OnLineResource getExtensionOnLineResource() {
080: return extensionOnLineResource;
081: }
082:
083: /**
084: * Set information about on-line sources.
085: */
086: public synchronized void setExtensionOnLineResource(
087: final OnLineResource newValue) {
088: checkWritePermission();
089: this .extensionOnLineResource = newValue;
090: }
091:
092: /**
093: * Provides information about a new metadata element, not found in ISO 19115, which is
094: * required to describe geographic data.
095: */
096: public synchronized Collection getExtendedElementInformation() {
097: return extendedElementInformation = nonNullCollection(
098: extendedElementInformation,
099: ExtendedElementInformation.class);
100: }
101:
102: /**
103: * Set information about a new metadata element.
104: */
105: public synchronized void setExtendedElementInformation(
106: final Collection newValues) {
107: extendedElementInformation = copyCollection(newValues,
108: extendedElementInformation,
109: ExtendedElementInformation.class);
110: }
111: }
|