|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface MetadataID
The MetadataID class serves as the interface class for identifiers of objects. This class provides the method signatures common to all ID classes as well as the majority of the implementation, and defines an identification name as a list of one or more non-zero length atomic name components delimeted by a '.' (similar to JNDI names).
These classes are shipped between the client and RuntimeMetadata, so the MetadataID class is serializable. To speed serialization and decrease the overhead of shipping MetadataID across the network using RMI, several instance variables that may not be required by all users are made transient and recomputed as needed.
Additionally, because IDs are designed
to be used as primary keys, the hashCode
, equals
and compareTo
methods are all consistent and optimized for
fast performance. This is in part accomplished by caching the hash code value,
which is tolerable since all MetadataID subclasses are immutable: they
cannot be modified after they have been created.
Finally, several key methods that are very commonly used and that will not be
overridden in subclasses are marked as final
as an inlining hint to the
compiler.
Method Summary | |
---|---|
java.lang.Object |
clone()
Return a deep cloned instance of this object. |
int |
compareTo(java.lang.Object obj)
Compares this object to another. |
int |
compareToByName(java.lang.Object obj)
Compares this object to another lexicographically. |
boolean |
equals(java.lang.Object obj)
Returns true if the specified object is semantically equal to this instance. |
java.lang.String |
getFullName()
Obtain the full name for the object that this identifier represents. |
java.lang.String |
getName()
Obtain the last name component this identifier. |
java.lang.String |
getNameComponent(int index)
Obtain the specified component of the name. |
java.util.List |
getNameComponents()
Obtain the list of atomic name components for this ID. |
java.lang.String |
getParentFullName()
Return the full name of the parent. |
java.lang.String |
getPath()
Obtain the path for this component. |
int |
hashCode()
Returns the hash code value for this object. |
int |
size()
Return the number of atomic name components in this identifier. |
java.lang.String |
toString()
Returns a string representing the current state of the object. |
Method Detail |
---|
java.lang.String getFullName()
java.lang.String getName()
java.lang.String getPath()
java.lang.String getNameComponent(int index)
the
- index of the atomic name component to return; must be less than
the result of the method size
in order to be valid.
java.lang.IndexOutOfBoundsException
- if the index is not valid and is out of the bounds of this name.java.util.List getNameComponents()
java.lang.IndexOutOfBoundsException
- if the index is not valid and is out of the bounds of this name.int size()
boolean equals(java.lang.Object obj)
compareTo()
.
equals
in class java.lang.Object
obj
- the object that this instance is to be compared to.
int compareTo(java.lang.Object obj)
equals()
, meaning
that (compare(x, y)==0) == (x.equals(y))
.
The algorithm that this method follows is based primarily upon the
hash code. When two instances of MetadataID, objects A and B, are being compared,
this method first compares the (cached) hash code of the two objects. If the
two hash codes are not equal, the method returns the difference in the hash
codes (namely A.hashCode() - B.hashCode()
).
If, however, the two hash code values are equivalent, then the
two MetadataID instances are potentially equivalent, and the
full names of the BaseIDs are compared (ignoring case) to determine actual result.
compareTo
in interface java.lang.Comparable
obj
- the object that this instance is to be compared to.
java.lang.IllegalArgumentException
- if the specified object reference is null
java.lang.ClassCastException
- if the specified object's type prevents it
from being compared to this instance.int compareToByName(java.lang.Object obj)
equals()
.
obj
- the object that this instance is to be compared to.
java.lang.IllegalArgumentException
- if the specified object reference is null
java.lang.ClassCastException
- if the specified object's type prevents it
from being compared to this instance.int hashCode()
hashCode
in class java.lang.Object
java.lang.String toString()
toString
in class java.lang.Object
java.lang.Object clone() throws java.lang.CloneNotSupportedException
java.lang.CloneNotSupportedException
- if this object cannot be cloned (i.e., only objects in
Defaults
cannot be cloned).java.lang.String getParentFullName()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |