1 /*
2  *    GeoAPI - Java interfaces for OGC/ISO standards
3  *    http://www.geoapi.org
4  *
5  *    Copyright (C) 2004-2011 Open Geospatial Consortium, Inc.
6  *    All Rights Reserved. http://www.opengeospatial.org/ogc/legal
7  *
8  *    Permission to use, copy, and modify this software and its documentation, with
9  *    or without modification, for any purpose and without fee or royalty is hereby
10  *    granted, provided that you include the following on ALL copies of the software
11  *    and documentation or portions thereof, including modifications, that you make:
12  *
13  *    1. The full text of this NOTICE in a location viewable to users of the
14  *       redistributed or derivative work.
15  *    2. Notice of any changes or modifications to the OGC files, including the
16  *       date changes were made.
17  *
18  *    THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE
19  *    NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
20  *    TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT
21  *    THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY
22  *    PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
23  *
24  *    COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR
25  *    CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION.
26  *
27  *    The name and trademarks of copyright holders may NOT be used in advertising or
28  *    publicity pertaining to the software without specific, written prior permission.
29  *    Title to copyright in this software and any associated documentation will at all
30  *    times remain with copyright holders.
31  */
32 package org.opengis.metadata.maintenance;
33 
34 import java.util.Set;
35 import org.opengis.annotation.UML;
36 import org.opengis.feature.type.AttributeType;
37 import org.opengis.feature.type.FeatureType;
38 
39 import static org.opengis.annotation.Obligation.*;
40 import static org.opengis.annotation.Specification.*;
41 
42 
43 /**
44  * Description of the class of information covered by the information.
45  *
46  * @author  Martin Desruisseaux (IRD)
47  * @author  Cory Horner (Refractions Research)
48  * @version 3.0
49  * @since   2.0
50  *
51  * @navassoc - - - AttributeType
52  * @navassoc - - - FeatureType
53  * @navassoc - - - AttributeType
54  */
55 @UML(identifier="MD_ScopeDescription", specification=ISO_19115)
56 public interface ScopeDescription {
57     /**
58      * Attributes to which the information applies.
59      *
60      * @return Attributes to which the information applies.
61      *
62      * @condition Features, featureInstances, attributeInstances, dataset and other not
63      *            documented.
64      */
65     @UML(identifier="attributes", obligation=CONDITIONAL, specification=ISO_19115)
getAttributes()66     Set<? extends AttributeType> getAttributes();
67 
68     /**
69      * Features to which the information applies.
70      *
71      * @return Features to which the information applies.
72      *
73      * @condition attributes, featureInstances, attributeInstances, dataset and other not
74      *            documented.
75      */
76     @UML(identifier="features", obligation=CONDITIONAL, specification=ISO_19115)
getFeatures()77     Set<? extends FeatureType> getFeatures();
78 
79     /**
80      * Feature instances to which the information applies.
81      *
82      * @return Feature instances to which the information applies.
83      *
84      * @condition Attributes, features, attributeInstances, dataset and other not
85      *            documented.
86      */
87     @UML(identifier="featureInstances", obligation=CONDITIONAL, specification=ISO_19115)
getFeatureInstances()88     Set<? extends FeatureType> getFeatureInstances();
89 
90     /**
91      * Attribute instances to which the information applies.
92      *
93      * @return Attribute instances to which the information applies.
94      *
95      * @since 2.1
96      *
97      * @condition Attributes, features, featureInstances, dataset and other not
98      *            documented.
99      */
100     @UML(identifier="attributeInstances", obligation=CONDITIONAL, specification=ISO_19115)
getAttributeInstances()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)
getDataset()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)
getOther()128     String getOther();
129 }
130