|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
ObjectAbstractMetadata
@ThreadSafe public abstract class AbstractMetadata
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(Object) and hashCode() methods.
| metadata/geotk-metadata (download) | View source code for this class |
| Field Summary | |
|---|---|
protected static Logger |
LOGGER
The logger for metadata implementation. |
| Constructor Summary | |
|---|---|
protected |
AbstractMetadata()
Creates an initially empty metadata. |
protected |
AbstractMetadata(Object source)
Constructs a metadata entity initialized with the values from the specified metadata. |
| Method Summary | |
|---|---|
Map<String,Object> |
asMap()
Returns a view of this metadata object as a map. |
TreeModel |
asTree()
Returns a view of this metadata as a tree. |
TreeTableNode |
asTreeTable()
Returns a view of this metadata as a tree table. |
boolean |
equals(Object object)
Performs a strict comparison of this metadata with the given object. |
boolean |
equals(Object object,
ComparisonMode mode)
Compares this metadata with the specified object for equality. |
Class<?> |
getInterface()
Returns the metadata interface implemented by this class. |
abstract MetadataStandard |
getStandard()
Returns the metadata standard implemented by subclasses. |
int |
hashCode()
Computes a hash code value for this metadata using Java reflection. |
boolean |
isEmpty()
Returns true if this metadata contains only null or empty properties. |
void |
parse(TreeModel tree)
Fetches values from every nodes of the given tree except the root, and puts them in this metadata object. |
String |
toString()
Returns a string representation of this metadata. |
| Methods inherited from class Object |
|---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
protected static final Logger LOGGER
| Constructor Detail |
|---|
protected AbstractMetadata()
protected AbstractMetadata(Object source)
throws ClassCastException,
UnmodifiableMetadataException
source 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.
source - The metadata to copy values from, or null if none.
ClassCastException - if the specified metadata don't implements the expected
metadata interface.
UnmodifiableMetadataException - if this class don't define set methods
corresponding to the get methods found in the implemented interface,
or if this instance is not modifiable for some other reason.| Method Detail |
|---|
public abstract MetadataStandard getStandard()
public Class<?> getInterface()
public boolean isEmpty()
true if this metadata contains only null or empty properties.
A property is considered empty in any of the following cases:
null or empty elements.null or empty attributes.
Note that empty properties can be removed by calling the ModifiableMetadata.prune()
method.
Note for implementors
The default implementation uses Java reflection indirectly,
by iterating over all entries returned by asMap(). Subclasses that override this
method should usually not invoke super.isEmpty(), because the Java reflection will
discover and process the properties defined in the sub-classes - which is usually not the
intend when overriding a method.
true if this metadata is empty.DefaultGeographicBoundingBox.isEmpty()public Map<String,Object> asMap()
getFoo() methods declared in the metadata interface.
The map supports the put and remove operations
if the underlying metadata object contains setFoo(...) methods.
MetadataStandard.asMap(Object),
MetadataStandard#asMap(Object, NullValuePolicy, KeyNamePolicy),
MetadataStandard.asNameMap(Class, KeyNamePolicy, KeyNamePolicy),
MetadataStandard.asTypeMap(Class, TypeValuePolicy, KeyNamePolicy),
MetadataStandard#asRestrictionMap(Object, NullValuePolicy, KeyNamePolicy),
MetadataStandard.asDescriptionMap(Class, Locale, KeyNamePolicy)public TreeTableNode asTreeTable()
TreeTableNode is
defined in a org.geotoolkit.gui.swing sub-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 Geotk implementation.
MetadataStandard.asTreeTable(Object)public TreeModel asTree()
TreeModel is
defined in the javax.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 Geotk implementation.
MetadataStandard.asTree(Object)
public void parse(TreeModel tree)
throws ParseException
If the given metadata object already contains property values, then the parsing will be merged with the existing values: attributes not defined in the tree will be left unchanged, and collections will be augmented with new entries without change in the previously existing entries.
This method can parse the tree created by asTree().
Note:
The current implementation expects the tree root to be an instance of
javax.swing.tree.TreeNode.
tree - The tree from which to fetch the values.
ParseException - If a value can not be stored in this metadata object.
public boolean equals(Object object,
ComparisonMode mode)
This method performs a deep comparison (i.e. if this metadata contains
other metadata, the comparison will walk through the other metadata content as well)
providing that every children implement the Object.equals(Object) method as well.
This is the case by default if every children are subclasses of AbstractMetadata.
equals in interface LenientComparableobject - The object to compare with this metadata.mode - The strictness level of the comparison.
true if the given object is equal to this metadata.Utilities.deepEquals(Object, Object, ComparisonMode)public final boolean equals(Object object)
equals in interface LenientComparableequals in class Objectobject - The object to compare with this metadata for equality.
true if both objects are strictly equal.ComparisonMode.STRICTpublic int hashCode()
Set.hashCode() and ensure that the hash code
value is insensitive to the ordering of properties.
hashCode in class Objectpublic String toString()
toString in class Object
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||