Class DefaultScopeDescription
Object
AbstractMetadata
ModifiableMetadata
ISOMetadata
DefaultScopeDescription
- All Implemented Interfaces:
Serializable, Emptiable, LenientComparable, IdentifiedObject, 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
XMLinstead.
- Since:
- 0.3
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class ModifiableMetadata
ModifiableMetadata.StateModifier and TypeClassDescriptionstatic enumWhether the metadata is still editable or has been made final. -
Field Summary
Fields inherited from class ISOMetadata
identifiersModifier and TypeFieldDescriptionprotected Collection<Identifier> All identifiers associated with this metadata, ornullif none. -
Constructor Summary
ConstructorsConstructorDescriptionCreates an initially empty scope description.Constructs a new instance initialized with the values from the specified metadata object. -
Method Summary
Modifier and TypeMethodDescriptionstatic DefaultScopeDescriptioncastOrCopy(ScopeDescription object) Returns a SIS metadata implementation with the values of the given arbitrary implementation.Returns the attribute instances to which the information applies.Returns the attribute types to which the information applies.Returns the dataset to which the information applies.Returns the feature instances to which the information applies.Returns the feature types to which the information applies.Returns an indication of which property is set, ornullif unknown.Returns the class of information that does not fall into the other categories to which the information applies.voidsetAttributeInstances(Set<? extends AttributeType> newValues) Sets the attribute instances to which the information applies.voidsetAttributes(Set<? extends AttributeType> newValues) Sets the attribute types to which the information applies.voidsetDataset(String newValue) Sets the dataset to which the information applies.voidsetFeatureInstances(Set<? extends FeatureType> newValues) Sets the feature instances to which the information applies.voidsetFeatures(Set<? extends FeatureType> newValues) Sets the feature types to which the information applies.voidsetLevelDescription(ScopeCode level, Set<? extends CharSequence> newValues) Dispatches the given values to a setter method determined by the given hierarchical level.voidSets the class of information that does not fall into the other categories to which the information applies.Methods inherited from class ISOMetadata
getIdentifier, getIdentifierMap, getIdentifiers, getStandard, setIdentifierModifier and TypeMethodDescriptionprotected IdentifierReturns the first identifier which is presumed to be defined by ISO 19115 conceptual model.A map view of the identifiers collection as (authority, code) entries.Returns all identifiers associated with this object (from conceptual model and from XML document).Returns the metadata standard implemented by subclasses, which is ISO 19115.protected voidsetIdentifier(Identifier newValue) Sets the identifier for metadata objects that are expected to contain at most one ISO 19115 identifier.Methods inherited from class ModifiableMetadata
checkWritePermission, copyCollection, copyList, copyMap, copySet, deepCopy, merge, nonNullCollection, nonNullList, nonNullMap, nonNullSet, singleton, state, writeCollection, writeList, writeMap, writeSetModifier and TypeMethodDescriptionprotected voidcheckWritePermission(Object current) Checks if changes in the metadata are allowed.protected static <E> Collection<E> copyCollection(Collection<? extends E> source, Class<E> elementType) Creates a list or set with the content of thesourcecollection, or returnsnullif the source isnullor empty.protected static <E> List<E> copyList(Collection<? extends E> source, Class<E> elementType) Creates a list with the content of thesourcecollection, or returnsnullif the source isnullor empty.protected static <K,V> Map <K, V> Creates a map with the content of thesourcemap, or returnsnullif the source isnullor empty.protected static <E> Set<E> copySet(Collection<? extends E> source, Class<E> elementType) Creates a set with the content of thesourcecollection, or returnsnullif the source isnullor empty.deepCopy(ModifiableMetadata.State target) Copies (if necessary) this metadata and all its children.voidMerges the data from the given source into this metadata.protected final <E> Collection<E> nonNullCollection(Collection<E> current, Class<E> elementType) Returns the specified collection, or a new one ifcurrentis null.protected final <E> List<E> nonNullList(List<E> current, Class<E> elementType) Returns the specified list, or a new one ifcurrentis null.protected final <K,V> Map <K, V> nonNullMap(Map<K, V> current, Class<K> keyType) Returns the specified map, or a new one ifcurrentis null.protected final <E> Set<E> nonNullSet(Set<E> current, Class<E> elementType) Returns the specified set, or a new one ifcurrentis null.protected static <E> Collection<E> Creates a singleton list or set containing only the given value, if non-null.state()Tells whether this instance of metadata is editable.protected final <E> Collection<E> writeCollection(Collection<? extends E> source, Collection<E> target, Class<E> elementType) Writes the content of thesourcecollection into thetargetlist or set, creating it if needed.protected final <E> List<E> writeList(Collection<? extends E> source, List<E> target, Class<E> elementType) Writes the content of thesourcecollection into thetargetlist, creating it if needed.protected final <K,V> Map <K, V> Writes the content of thesourcemap into thetargetmap, creating it if needed.protected final <E> Set<E> writeSet(Collection<? extends E> source, Set<E> target, Class<E> elementType) Writes the content of thesourcecollection into thetargetset, creating it if needed.Methods inherited from class AbstractMetadata
asMap, asTreeTable, clone, equals, equals, getInterface, getStandardType, hashCode, isEmpty, nilReasons, prune, toStringModifier and TypeMethodDescriptionasMap()Returns a view of the property values in aMap.Returns the property types and values as a tree table.protected AbstractMetadataclone()Returns a shallow clone of this metadata.final booleanPerforms a strict comparison of this metadata with the given object.booleanequals(Object object, ComparisonMode mode) Compares this metadata with the specified object for equality.final Class<?> Deprecated, for removal: This API element is subject to removal in a future version.Returns the metadata interface implemented by this class.intComputes a hash code value for this metadata using Java reflection.booleanisEmpty()Returns a view of the reasons why some properties are missing.voidprune()Removes all references to empty properties.Returns a string representation of this metadata.
-
Constructor Details
-
DefaultScopeDescription
public DefaultScopeDescription()Creates an initially empty scope description. -
DefaultScopeDescription
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, ornullif none.- See Also:
-
-
Method Details
-
castOrCopy
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
DefaultScopeDescriptioninstance 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, ornullif none.- Returns:
- a SIS implementation containing the values of the given object (may be the
given object itself), or
nullif the argument was null.
- If the given object is
-
getLevel
Returns an indication of which property is set, ornullif unknown. This method returns one of the following values depending which property has been set:hierarchical level of the data Scope code Getter method DATASETgetDataset()FEATURE_TYPEgetFeatures()ATTRIBUTE_TYPEgetAttributes()FEATUREgetFeatureInstances()ATTRIBUTEgetAttributeInstances()- Returns:
- an identification of the property which is set, or
nullif 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.DATASETlevel with aAdministrative area A, B & C
description.- Specified by:
getDatasetin interfaceScopeDescription- 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 thenewValueis 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_TYPElevel with aAdministrative 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:
getFeaturesin interfaceScopeDescription- 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 thenewValueis 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_TYPElevel with aAdministrative 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:
getAttributesin interfaceScopeDescription- 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 thenewValueis 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.FEATURElevel with aAdministrative 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:
getFeatureInstancesin interfaceScopeDescription- 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 thenewValueis 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.ATTRIBUTElevel with aAdministrative 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:
getAttributeInstancesin interfaceScopeDescription- 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 thenewValueis 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 toInternationalStringfor ISO 19115:2014 conformance. See GEO-221 for more information.- Specified by:
getOtherin interfaceScopeDescription- 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 thenewValueis non-null, then this method automatically discards all other properties.Upcoming API change: The type of this property may be changed toInternationalStringfor ISO 19115:2014 conformance. See GEO-221 for more information.- Parameters:
newValue- Other class of information.
-
setLevelDescription
Dispatches the given values to a setter method determined by the given hierarchical level. The mapping between scope codes andScopeDescriptionproperties 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, ornullif unknown.newValues- the values to set, ornullif none.- Since:
- 1.0
- See Also:
-
AbstractMetadata.getStandardType()for integration withLenientComparable.