Interface Identifier

All Superinterfaces:
Immutable, Serializable
All Known Subinterfaces:
HierarchicalIdentifier<T>, WritableIdentifier
All Known Implementing Classes:
AbstractIdentifier, AbstractQName, AbstractStringIdentifier, AbstractUUIDIdentifier, DatastoreIdentifier, MountPointIdentifier, ObjectIdentifier, ParserNamespace, QName, QNameModule, SourceIdentifier, UnresolvedQName, UnresolvedQName.Qualified, UnresolvedQName.Unqualified, YangDataName, YangInstanceIdentifier

public interface Identifier extends Serializable, Immutable
General identifier interface. It is primarily a marker for all things that identify concepts -- such as names, addresses, classes, etc. We do not require too much, just that the identifiers are serializable (and thus transferable).

Implementations are expected to implement hashCode() and equals(Object) methods in a way, which ensures that objects before and after serialization are considered equal.

Implementations are advised to use the Externalizable Proxy pattern to allow future evolution of their serialization format. For further efficiency, implementations should consider implementing WritableObject, so they can be efficiently embedded in other Serializable and WritableObjects objects.