Package org.geotools.metadata
Class AbstractMetadata
Object
AbstractMetadata
- Direct Known Subclasses:
ModifiableMetadata
Base class for metadata implementations. Subclasses must implement the interfaces of some
metadata standard. This class uses Java reflection in
order to provide default implementation of copy constructor,
equals(java.lang.Object)
and hashCode()
methods.- Since:
- 2.4
- Author:
- Martin Desruisseaux (Geomatys)
-
Field Summary
Fields -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
Creates an initially empty metadata.protected
AbstractMetadata
(Object source) Constructs a metadata entity initialized with the values from the specified metadata. -
Method Summary
Modifier and TypeMethodDescriptionasMap()
Returns a view of this metadata object as a map.asTree()
Returns a view of this metadata as a tree.boolean
Compares this metadata with the specified object for equality.Class<?>
Returns the metadata interface implemented by this class.abstract MetadataStandard
Returns the metadata standard implemented by subclasses.int
hashCode()
Computes a hash code value for this metadata using Java reflection.toString()
Returns a string representation of this metadata.
-
Field Details
-
LOGGER
The logger for metadata implementation.
-
-
Constructor Details
-
AbstractMetadata
protected AbstractMetadata()Creates an initially empty metadata. -
AbstractMetadata
Constructs a metadata entity initialized with the values from the specified metadata. Thesource
metadata must implements the same metadata interface (defined by the standard) than this class, but don't need to be the same implementation class. The copy is performed using Java reflections.- Parameters:
source
- The metadata to copy values from.- Throws:
ClassCastException
- if the specified metadata don't implements the expected metadata interface.UnmodifiableMetadataException
- if this class don't defineset
methods corresponding to theget
methods found in the implemented interface, or if this instance is not modifiable for some other reason.
-
-
Method Details
-
getStandard
Returns the metadata standard implemented by subclasses.- Returns:
- The metadata standard implemented.
-
getInterface
Returns the metadata interface implemented by this class. It should be one of the interfaces defined in the metadata standard implemented by this class.- Returns:
- The standard interface implemented by this implementation class.
-
asMap
Returns a view of this metadata object as a map. The map is backed by this metadata object using Java reflection, so changes in the underlying metadata object are immediately reflected in the map. The keys are the property names as determined by the list ofget*()
methods declared in the metadata interface.The map supports the
put
operations if the underlying metadata object contains {@link #set*(...)} methods.- Returns:
- A view of this metadata object as a map.
-
asTree
Returns a view of this metadata as a tree. Note that whileTreeModel
is defined in thejavax.swing.tree
package, it can be seen as a data structure independent of Swing. It will not force class loading of Swing framework.In current implementation, the tree is not live (i.e. changes in metadata are not reflected in the tree). However it may be improved in a future Geotools implementation.
- Returns:
- A view of this metadata object as a tree.
-
equals
Compares this metadata with the specified object for equality. The default implementation uses Java reflection. Subclasses may override this method for better performances.This method performs a deep comparaison (i.e. if this metadata contains other metadata, the comparaison will walk through the other metadata content as well) providing that every childs implement the
Object.equals(java.lang.Object)
method as well. This is the case by default if every childs are subclasses ofAbstractMetadata
. -
hashCode
public int hashCode()Computes a hash code value for this metadata using Java reflection. The hash code is defined as the sum of hash code values of all non-null properties. This is the same contract thanSet.hashCode()
and ensure that the hash code value is insensitive to the ordering of properties. -
toString
Returns a string representation of this metadata.
-