Object
AbstractMetadata
ModifiableMetadata
ISOMetadata
- All Implemented Interfaces:
Serializable
,Emptiable
,LenientComparable
,IdentifiedObject
- Direct Known Subclasses:
AbstractContentInformation
,AbstractElement
,AbstractGeographicExtent
,AbstractGeolocationInformation
,AbstractIdentification
,AbstractParty
,AbstractResult
,AbstractSpatialRepresentation
,DefaultAcquisitionInformation
,DefaultAddress
,DefaultAlgorithm
,DefaultApplicationSchemaInformation
,DefaultAssociatedResource
,DefaultAttributeGroup
,DefaultBasicMeasure
,DefaultBrowseGraphic
,DefaultCitation
,DefaultCitationDate
,DefaultConstraints
,DefaultContact
,DefaultCoupledResource
,DefaultDataFile
,DefaultDataQuality
,DefaultDigitalTransferOptions
,DefaultDimension
,DefaultDistribution
,DefaultDistributor
,DefaultEnvironmentalRecord
,DefaultEvaluationMethod
,DefaultEvaluationReportInformation
,DefaultEvent
,DefaultExtendedElementInformation
,DefaultExtent
,DefaultFeatureTypeInfo
,DefaultFormat
,DefaultGCP
,DefaultGeometricObjects
,DefaultIdentifier
,DefaultInstrument
,DefaultKeywordClass
,DefaultKeywords
,DefaultLineage
,DefaultMaintenanceInformation
,DefaultMeasureDescription
,DefaultMeasureReference
,DefaultMedium
,DefaultMetadata
,DefaultMetadataExtensionInformation
,DefaultMetadataScope
,DefaultNominalResolution
,DefaultObjective
,DefaultOnlineResource
,DefaultOperation
,DefaultOperationChainMetadata
,DefaultOperationMetadata
,DefaultPlan
,DefaultPlatform
,DefaultPlatformPass
,DefaultPortrayalCatalogueReference
,DefaultProcessing
,DefaultProcessStep
,DefaultProcessStepReport
,DefaultQualityMeasure
,DefaultRangeDimension
,DefaultRangeElementDescription
,DefaultReleasability
,DefaultRequestedDate
,DefaultRequirement
,DefaultResolution
,DefaultResponsibility
,DefaultScope
,DefaultScopeDescription
,DefaultSeries
,DefaultSource
,DefaultSourceReference
,DefaultStandardOrderProcess
,DefaultTelephone
,DefaultTemporalExtent
,DefaultUsage
,DefaultVerticalExtent
The base class of ISO 19115 implementation classes. Each sub-classes implements one
of the ISO Metadata interface provided by GeoAPI.
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
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class ModifiableMetadata
ModifiableMetadata.State
-
Field Summary
Modifier and TypeFieldDescriptionprotected Collection
<Identifier> All identifiers associated with this metadata, ornull
if none. -
Constructor Summary
ModifierConstructorDescriptionprotected
Constructs an initially empty metadata.protected
ISOMetadata
(Object object) Constructs a new metadata initialized with the values from the specified object. -
Method Summary
Modifier and TypeMethodDescriptionprotected Identifier
Returns 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 to this object (from conceptual model and from XML document).Returns the metadata standard implemented by subclasses, which is ISO 19115.protected void
setIdentifier
(Identifier newValue) Sets the identifier for metadata objects that are expected to contain at most one ISO 19115 identifier.boolean
Requests this metadata instance and (potentially) all its children to transition to a new state.Methods inherited from class ModifiableMetadata
checkWritePermission, collectionType, copyCollection, copyList, copyMap, copySet, deepCopy, nonNullCollection, nonNullList, nonNullMap, nonNullSet, singleton, state, writeCollection, writeList, writeMap, writeSet
Methods inherited from class AbstractMetadata
asMap, asTreeTable, equals, equals, getInterface, hashCode, isEmpty, prune, toString
-
Field Details
-
identifiers
All identifiers associated with this metadata, ornull
if none. This field is initialized to a non-null value when first needed.
-
-
Constructor Details
-
ISOMetadata
protected ISOMetadata()Constructs an initially empty metadata. -
ISOMetadata
Constructs a new metadata initialized with the values from the specified object. If the given object is an instance ofIdentifiedObject
, then this constructor copies the collection of identifiers.- Parameters:
object
- the metadata to copy values from, ornull
if none.
-
-
Method Details
-
getStandard
Returns the metadata standard implemented by subclasses, which is ISO 19115.Note for implementers
Subclasses shall not override this method in a way that depends on the object state, since this method may be indirectly invoked by copy constructors (i.e. is may be invoked before this metadata object is fully constructed).- Specified by:
getStandard
in classAbstractMetadata
- Returns:
- the metadata standard, which is ISO 19115 by default.
-
getIdentifiers
Returns all identifiers associated to this object (from conceptual model and from XML document). This collection may contain identifiers from different sources:- Identifiers specified in the ISO 19115-1 or 19115-2 abstract models,
typically (but not necessarily) as an
identifier
property (may also bemetadataIdentifier
,ISBN
orISSN
properties). - Identifiers specified in the ISO 19115-3 or 19115-4 XML schemas.
Those identifiers are typically stored as a result of unmarshalling an XML document.
Those identifiers can be recognized by an authority
sets as one of the
IdentifierSpace
constants.
- Specified by:
getIdentifiers
in interfaceIdentifiedObject
- Returns:
- all identifiers associated to this object, or an empty collection if none.
- See Also:
- Identifiers specified in the ISO 19115-1 or 19115-2 abstract models,
typically (but not necessarily) as an
-
getIdentifierMap
A map view of the identifiers collection as (authority, code) entries. Each map entry is associated to an element from the above identifier collection in which the key is the identifier authority and the value is the identifier code.There is usually a one-to-one relationship between the map entries and the identifier elements, but not always:
- The map view may contain less entries, because the map interface allows only one
entry per authority. If the identifier collection contains
many identifiers for the same authority, then only the first occurrence is visible through
this
Map
view. - The map view may also contain more entries than the identifier collection. For example, the
Citation
interface defines separated attributes for ISBN, ISSN and other identifiers. This map view may choose to unify all those attributes in a single view.
put
operations if and only if thisIdentifiedObject
is modifiable.The default implementation returns a wrapper around the
identifiers
list. That map is live: changes in the identifiers list will be reflected in the map, and conversely.- Specified by:
getIdentifierMap
in interfaceIdentifiedObject
- Returns:
- the identifiers as a map of (authority, code) entries, or an empty map if none.
- The map view may contain less entries, because the map interface allows only one
entry per authority. If the identifier collection contains
many identifiers for the same authority, then only the first occurrence is visible through
this
-
getIdentifier
Returns the first identifier which is presumed to be defined by ISO 19115 conceptual model. This method checks the authority for filtering ignorable identifiers like ISBN/ISSN codes and XML attributes. This convenience method is provided for implementation of publicgetIdentifier(Identifier)
methods in subclasses having anidentifier
property with [0 … 1] multiplicity.- Returns:
- an identifier from ISO 19115-3 conceptual model (excluding XML identifiers),
or
null
if none. - Since:
- 1.0
-
setIdentifier
Sets the identifier for metadata objects that are expected to contain at most one ISO 19115 identifier. This convenience method is provided for implementation of publicsetIdentifier(Identifier)
methods in subclasses having anidentifier
property with [0 … 1] multiplicity. The default implementation removes all identifiers that would be returned bygetIdentifier()
before to add the given one in theidentifiers
collection.- Parameters:
newValue
- the new identifier value, ornull
for removing the identifier.- Since:
- 1.0
-
transitionTo
Requests this metadata instance and (potentially) all its children to transition to a new state. The action performed by this method depends on the source state and the given target state, as listed in the following table:State transitions Current state Target state Action Any Same Does nothing and returns false
.ModifiableMetadata.State.EDITABLE
ModifiableMetadata.State.COMPLETABLE
Marks this metadata and all children as completable. Any ModifiableMetadata.State.FINAL
Marks this metadata and all children as unmodifiable. ModifiableMetadata.State.FINAL
Any other Throws UnmodifiableMetadataException
.ModifiableMetadata.State.FINAL
implies transitioning all childrenModifiableMetadata
instances to the final state too.- Overrides:
transitionTo
in classModifiableMetadata
- Parameters:
target
- the desired new state (editable, completable or final).- Returns:
true
if the state of thisModifiableMetadata
changed as a result of this method call.
-