001 /*
002 * GeoAPI - Java interfaces for OGC/ISO standards
003 * http://www.geoapi.org
004 *
005 * Copyright (C) 2004-2012 Open Geospatial Consortium, Inc.
006 * All Rights Reserved. http://www.opengeospatial.org/ogc/legal
007 *
008 * Permission to use, copy, and modify this software and its documentation, with
009 * or without modification, for any purpose and without fee or royalty is hereby
010 * granted, provided that you include the following on ALL copies of the software
011 * and documentation or portions thereof, including modifications, that you make:
012 *
013 * 1. The full text of this NOTICE in a location viewable to users of the
014 * redistributed or derivative work.
015 * 2. Notice of any changes or modifications to the OGC files, including the
016 * date changes were made.
017 *
018 * THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE
019 * NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
020 * TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT
021 * THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY
022 * PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
023 *
024 * COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR
025 * CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION.
026 *
027 * The name and trademarks of copyright holders may NOT be used in advertising or
028 * publicity pertaining to the software without specific, written prior permission.
029 * Title to copyright in this software and any associated documentation will at all
030 * times remain with copyright holders.
031 */
032 package org.opengis.metadata.maintenance;
033
034 import java.util.Set;
035 import org.opengis.annotation.UML;
036 import org.opengis.feature.type.AttributeType;
037 import org.opengis.feature.type.FeatureType;
038
039 import static org.opengis.annotation.Obligation.*;
040 import static org.opengis.annotation.Specification.*;
041
042
043 /**
044 * Description of the class of information covered by the information.
045 *
046 * @author Martin Desruisseaux (IRD)
047 * @author Cory Horner (Refractions Research)
048 * @version 3.0
049 * @since 2.0
050 *
051 * @navassoc - - - AttributeType
052 * @navassoc - - - FeatureType
053 * @navassoc - - - AttributeType
054 */
055 @UML(identifier="MD_ScopeDescription", specification=ISO_19115)
056 public interface ScopeDescription {
057 /**
058 * Attributes to which the information applies.
059 *
060 * @return Attributes to which the information applies.
061 *
062 * @condition Features, featureInstances, attributeInstances, dataset and other not
063 * documented.
064 */
065 @UML(identifier="attributes", obligation=CONDITIONAL, specification=ISO_19115)
066 Set<? extends AttributeType> getAttributes();
067
068 /**
069 * Features to which the information applies.
070 *
071 * @return Features to which the information applies.
072 *
073 * @condition attributes, featureInstances, attributeInstances, dataset and other not
074 * documented.
075 */
076 @UML(identifier="features", obligation=CONDITIONAL, specification=ISO_19115)
077 Set<? extends FeatureType> getFeatures();
078
079 /**
080 * Feature instances to which the information applies.
081 *
082 * @return Feature instances to which the information applies.
083 *
084 * @condition Attributes, features, attributeInstances, dataset and other not
085 * documented.
086 */
087 @UML(identifier="featureInstances", obligation=CONDITIONAL, specification=ISO_19115)
088 Set<? extends FeatureType> getFeatureInstances();
089
090 /**
091 * Attribute instances to which the information applies.
092 *
093 * @return Attribute instances to which the information applies.
094 *
095 * @since 2.1
096 *
097 * @condition Attributes, features, featureInstances, dataset and other not
098 * documented.
099 */
100 @UML(identifier="attributeInstances", obligation=CONDITIONAL, specification=ISO_19115)
101 Set<? extends AttributeType> getAttributeInstances();
102
103 /**
104 * Dataset to which the information applies.
105 *
106 * @return Dataset to which the information applies.
107 *
108 * @since 2.1
109 *
110 * @condition Attributes, features, featureInstances, attributeInstances and other not
111 * documented.
112 */
113 @UML(identifier="dataset", obligation=CONDITIONAL, specification=ISO_19115)
114 String getDataset();
115
116 /**
117 * Class of information that does not fall into the other categories to
118 * which the information applies.
119 *
120 * @return Class of information that does not fall into the other categories.
121 *
122 * @since 2.1
123 *
124 * @condition Attributes, features, featureInstances, attributeInstances and dataset not
125 * documented.
126 */
127 @UML(identifier="other", obligation=CONDITIONAL, specification=ISO_19115)
128 String getOther();
129 }