Class DefaultScopeDescription
java.lang.Object
org.apache.sis.metadata.AbstractMetadata
org.apache.sis.metadata.ModifiableMetadata
org.apache.sis.metadata.iso.ISOMetadata
org.apache.sis.metadata.iso.maintenance.DefaultScopeDescription
- All Implemented Interfaces:
Serializable
,Emptiable
,LenientComparable
,IdentifiedObject
,org.opengis.metadata.maintenance.ScopeDescription
public class DefaultScopeDescription
extends ISOMetadata
implements org.opengis.metadata.maintenance.ScopeDescription
Description of the class of information covered by the information.
The following properties are mandatory or conditional (i.e. mandatory under some circumstances)
in a well-formed metadata according ISO 19115:
ISO 19115 defines
MD_ScopeDescription
├─attributeInstances……
Attribute instances to which the information applies.
├─attributes…………………………
Attributes to which the information applies.
├─dataset…………………………………
Dataset to which the information applies.
├─featureInstances…………
Feature instances to which the information applies.
├─features………………………………
Features to which the information applies.
└─other………………………………………
Class of information that does not fall into the other categories to which the information applies.ScopeDescription
as an union (in the C/C++ sense):
only one of the properties in this class can be set to a non-empty value.
Setting any property to a non-empty value discard all the other ones.
Limitations
- Instances of this class are not synchronized for multi-threading. Synchronization, if needed, is caller's responsibility.
- Serialized objects of this class are not guaranteed to be compatible with future Apache SIS releases.
Serialization support is appropriate for short term storage or RMI between applications running the
same version of Apache SIS. For long term storage, use
XML
instead.
- Since:
- 0.3
- Version:
- 1.0
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.sis.metadata.ModifiableMetadata
ModifiableMetadata.State
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final byte
Enumeration of possible values forproperty
.private static final byte
Enumeration of possible values forproperty
.private static final byte
Enumeration of possible values forproperty
.private static final byte
Enumeration of possible values forproperty
.private static final byte
Enumeration of possible values forproperty
.private static final String[]
The names of the mutually exclusive properties.private static final byte
Enumeration of possible values forproperty
.private byte
Specifies which property is set, or 0 if none.private static final long
Serial number for inter-operability with different versions.private static final String[]
The names of the setter methods, for logging purpose only.private Object
The value, as one of the following types:Set<FeatureType>
for thefeatures
propertySet<AttributeType>
for theattributes
propertySet<FeatureType>
for thefeatureInstances
propertySet<AttributeType>
for theattributeInstances
propertyString
for thedataset
propertyString
for theother
propertyFields inherited from class org.apache.sis.metadata.iso.ISOMetadata
identifiers
-
Constructor Summary
ConstructorsConstructorDescriptionCreates an initially empty scope description.DefaultScopeDescription
(org.opengis.metadata.maintenance.ScopeDescription object) Constructs a new instance initialized with the values from the specified metadata object. -
Method Summary
Modifier and TypeMethodDescriptionprivate static <E> Set<E>
Returns the given value casted to aSet
of elements of the given type.static DefaultScopeDescription
castOrCopy
(org.opengis.metadata.maintenance.ScopeDescription object) Returns a SIS metadata implementation with the values of the given arbitrary implementation.Set<org.opengis.feature.type.AttributeType>
Returns the attribute instances to which the information applies.Set<org.opengis.feature.type.AttributeType>
Returns the attribute types to which the information applies.Returns the dataset to which the information applies.Set<org.opengis.feature.type.FeatureType>
Returns the feature instances to which the information applies.Set<org.opengis.feature.type.FeatureType>
Returns the feature types to which the information applies.org.opengis.metadata.maintenance.ScopeCode
getLevel()
Returns an indication of which property is set, ornull
if unknown.getOther()
Returns the class of information that does not fall into the other categories to which the information applies.private <E> Set<E>
getProperty
(Class<E> type, byte code) Returns the set of properties identified by thecode
argument, or an unmodifiable empty set if another value is defined.void
setAttributeInstances
(Set<? extends org.opengis.feature.type.AttributeType> newValues) Sets the attribute instances to which the information applies.void
setAttributes
(Set<? extends org.opengis.feature.type.AttributeType> newValues) Sets the attribute types to which the information applies.void
setDataset
(String newValue) Sets the dataset to which the information applies.void
setFeatureInstances
(Set<? extends org.opengis.feature.type.FeatureType> newValues) Sets the feature instances to which the information applies.void
setFeatures
(Set<? extends org.opengis.feature.type.FeatureType> newValues) Sets the feature types to which the information applies.void
setLevelDescription
(org.opengis.metadata.maintenance.ScopeCode level, Set<? extends CharSequence> newValues) Dispatches the given values to a setter method determined by the given hierarchical level.void
Sets the class of information that does not fall into the other categories to which the information applies.private <E> void
setProperty
(Set<? extends E> newValue, Class<E> type, byte code) Sets the properties identified by thecode
argument, if non-null and non-empty.private void
warningOnOverwrite
(byte code) Sends a warning if setting the value for the given property would overwrite an existing property.Methods inherited from class org.apache.sis.metadata.iso.ISOMetadata
getIdentifier, getIdentifierMap, getIdentifiers, getStandard, setIdentifier, transitionTo
Methods inherited from class org.apache.sis.metadata.ModifiableMetadata
checkWritePermission, collectionType, copyCollection, copyList, copyMap, copySet, deepCopy, nonNullCollection, nonNullList, nonNullMap, nonNullSet, singleton, state, writeCollection, writeList, writeMap, writeSet
Methods inherited from class org.apache.sis.metadata.AbstractMetadata
asMap, asTreeTable, equals, equals, getInterface, hashCode, isEmpty, prune, toString
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDSerial number for inter-operability with different versions.- See Also:
-
DATASET
private static final byte DATASETEnumeration of possible values forproperty
.- See Also:
-
FEATURES
private static final byte FEATURESEnumeration of possible values forproperty
.- See Also:
-
ATTRIBUTES
private static final byte ATTRIBUTESEnumeration of possible values forproperty
.- See Also:
-
FEATURE_INSTANCES
private static final byte FEATURE_INSTANCESEnumeration of possible values forproperty
.- See Also:
-
ATTRIBUTE_INSTANCES
private static final byte ATTRIBUTE_INSTANCESEnumeration of possible values forproperty
.- See Also:
-
OTHER
private static final byte OTHEREnumeration of possible values forproperty
.- See Also:
-
NAMES
The names of the mutually exclusive properties. The index of each name shall be the value of the abovebyte
constants minus one. -
SETTERS
The names of the setter methods, for logging purpose only. -
property
private byte propertySpecifies which property is set, or 0 if none. -
value
The value, as one of the following types:Set<FeatureType>
for thefeatures
propertySet<AttributeType>
for theattributes
propertySet<FeatureType>
for thefeatureInstances
propertySet<AttributeType>
for theattributeInstances
propertyString
for thedataset
propertyString
for theother
property
-
-
Constructor Details
-
DefaultScopeDescription
public DefaultScopeDescription()Creates an initially empty scope description. -
DefaultScopeDescription
public DefaultScopeDescription(org.opengis.metadata.maintenance.ScopeDescription object) Constructs a new instance initialized with the values from the specified metadata object. This is a shallow copy constructor, because the other metadata contained in the given object are not recursively copied.If the given object contains more than one value, then the first non-null element in the following list has precedence (from wider scope to smaller scope): dataset, features, attributes, feature instances, attribute instances and other.
- Parameters:
object
- the metadata to copy values from, ornull
if none.- See Also:
-
-
Method Details
-
castOrCopy
public static DefaultScopeDescription castOrCopy(org.opengis.metadata.maintenance.ScopeDescription object) Returns a SIS metadata implementation with the values of the given arbitrary implementation. This method performs the first applicable action in the following choices:- If the given object is
null
, then this method returnsnull
. - Otherwise if the given object is already an instance of
DefaultScopeDescription
, then it is returned unchanged. - Otherwise a new
DefaultScopeDescription
instance is created using the copy constructor and returned. Note that this is a shallow copy operation, because the other metadata contained in the given object are not recursively copied.
- Parameters:
object
- the object to get as a SIS implementation, ornull
if none.- Returns:
- a SIS implementation containing the values of the given object (may be the
given object itself), or
null
if the argument was null.
- If the given object is
-
cast
Returns the given value casted to aSet
of elements of the given type. It is caller responsibility to ensure that the cast is valid, as element type is verified only when assertions are enabled. -
getProperty
Returns the set of properties identified by thecode
argument, or an unmodifiable empty set if another value is defined. -
setProperty
Sets the properties identified by thecode
argument, if non-null and non-empty. This discards any other properties.- Parameters:
newValue
- the value to set.code
- the property which is going to be set.
-
warningOnOverwrite
private void warningOnOverwrite(byte code) Sends a warning if setting the value for the given property would overwrite an existing property.- Parameters:
code
- the property which is going to be set.
-
getLevel
public org.opengis.metadata.maintenance.ScopeCode getLevel()Returns an indication of which property is set, ornull
if unknown. This method returns one of the following values depending which property has been set:hierarchical level of the data Scope code Getter method DATASET
getDataset()
FEATURE_TYPE
getFeatures()
ATTRIBUTE_TYPE
getAttributes()
FEATURE
getFeatureInstances()
ATTRIBUTE
getAttributeInstances()
- Returns:
- an identification of the property which is set, or
null
if unknown. - Since:
- 1.0
- See Also:
-
getDataset
Returns the dataset to which the information applies.Example: If a geographic data provider is generating vector mapping for the administrative areas and if the data were processed in the same way, then the provider could record the bulk of initial data atScopeCode.DATASET
level with a “Administrative area A, B & C” description.- Specified by:
getDataset
in interfaceorg.opengis.metadata.maintenance.ScopeDescription
- Returns:
- dataset to which the information applies, or
null
.
-
setDataset
Sets the dataset to which the information applies.Effect on other properties
If and only if thenewValue
is non-null, then this method automatically discards all other properties.- Parameters:
newValue
- the new dataset.
-
getFeatures
Returns the feature types to which the information applies.Example: if an administrative area performs a complete re-survey of the road network, the change can be recorded atScopeCode.FEATURE_TYPE
level with a “Administrative area A — Road network” description.Conditions
This method returns a modifiable collection only if no other property is set. Otherwise, this method returns an unmodifiable empty collection.Upcoming API change: The type of this property may be changed toSet<CharSequence>
for ISO 19115:2014 conformance. See GEO-238 for more information.- Specified by:
getFeatures
in interfaceorg.opengis.metadata.maintenance.ScopeDescription
- Returns:
- feature types to which the information applies.
-
setFeatures
Sets the feature types to which the information applies.Effect on other properties
If and only if thenewValue
is non-empty, then this method automatically discards all other properties.Upcoming API change: The type of this property may be changed toSet<CharSequence>
for ISO 19115:2014 conformance. See GEO-238 for more information.- Parameters:
newValues
- the new feature types.
-
getAttributes
Returns the attribute types to which the information applies.Example: if an administrative area detects an anomaly in all overhead clearance of the road survey, the correction can be recorded atScopeCode.ATTRIBUTE_TYPE
level with a “Administrative area A — Overhead clearance” description.Conditions
This method returns a modifiable collection only if no other property is set. Otherwise, this method returns an unmodifiable empty collection.Upcoming API change: The type of this property may be changed toSet<CharSequence>
for ISO 19115:2014 conformance. See GEO-238 for more information.- Specified by:
getAttributes
in interfaceorg.opengis.metadata.maintenance.ScopeDescription
- Returns:
- attribute types to which the information applies.
-
setAttributes
Sets the attribute types to which the information applies.Effect on other properties
If and only if thenewValue
is non-empty, then this method automatically discards all other properties.Upcoming API change: The type of this property may be changed toSet<CharSequence>
for ISO 19115:2014 conformance. See GEO-238 for more information.- Parameters:
newValues
- the new attribute types.
-
getFeatureInstances
Returns the feature instances to which the information applies.Example: If a new bridge is constructed in a road network, the change can be recorded atScopeCode.FEATURE
level with a “Administrative area A — New bridge” description.Conditions
This method returns a modifiable collection only if no other property is set. Otherwise, this method returns an unmodifiable empty collection.Upcoming API change: The type of this property may be changed toSet<CharSequence>
for ISO 19115:2014 conformance. See GEO-238 for more information.- Specified by:
getFeatureInstances
in interfaceorg.opengis.metadata.maintenance.ScopeDescription
- Returns:
- feature instances to which the information applies.
-
setFeatureInstances
Sets the feature instances to which the information applies.Effect on other properties
If and only if thenewValue
is non-empty, then this method automatically discards all other properties.Upcoming API change: The type of this property may be changed toSet<CharSequence>
for ISO 19115:2014 conformance. See GEO-238 for more information.- Parameters:
newValues
- the new feature instances.
-
getAttributeInstances
Returns the attribute instances to which the information applies.Example: If the overhead clearance of a new bridge was wrongly recorded, the correction can be recorded atScopeCode.ATTRIBUTE
level with a “Administrative area A — New bridge — Overhead clearance” description.Conditions
This method returns a modifiable collection only if no other property is set. Otherwise, this method returns an unmodifiable empty collection.Upcoming API change: The type of this property may be changed toSet<CharSequence>
for ISO 19115:2014 conformance. See GEO-238 for more information.- Specified by:
getAttributeInstances
in interfaceorg.opengis.metadata.maintenance.ScopeDescription
- Returns:
- attribute instances to which the information applies.
-
setAttributeInstances
Sets the attribute instances to which the information applies.Effect on other properties
If and only if thenewValue
is non-empty, then this method automatically discards all other properties.Upcoming API change: The type of this property may be changed toSet<CharSequence>
for ISO 19115:2014 conformance. See GEO-238 for more information.- Parameters:
newValues
- the new attribute instances.
-
getOther
Returns the class of information that does not fall into the other categories to which the information applies.Upcoming API change: The type of this property may be changed toInternationalString
for ISO 19115:2014 conformance. See GEO-221 for more information.- Specified by:
getOther
in interfaceorg.opengis.metadata.maintenance.ScopeDescription
- Returns:
- class of information that does not fall into the other categories, or
null
.
-
setOther
Sets the class of information that does not fall into the other categories to which the information applies.Effect on other properties
If and only if thenewValue
is non-null, then this method automatically discards all other properties.Upcoming API change: The type of this property may be changed toInternationalString
for ISO 19115:2014 conformance. See GEO-221 for more information.- Parameters:
newValue
- Other class of information.
-
setLevelDescription
public void setLevelDescription(org.opengis.metadata.maintenance.ScopeCode level, Set<? extends CharSequence> newValues) Dispatches the given values to a setter method determined by the given hierarchical level. The mapping between scope codes andScopeDescription
properties is documented in thegetLevel()
method. If the given scope code is not one of the listed codes, then the "other" property is used.- Parameters:
level
- an identification of the property which is set, ornull
if unknown.newValues
- the values to set, ornull
if none.- Since:
- 1.0
- See Also:
-