Package org.eclipse.ecf.core.identity

## Class BaseID

- java.lang.Object
- - org.eclipse.ecf.core.identity.BaseID

All Implemented Interfaces:
  `Serializable`, `Comparable`, `Principal`, `org.eclipse.core.runtime.IAdaptable`, `ID`

Direct Known Subclasses:
  `FileTransferID`, `LongID`, `R_OSGiID`, `RemoteServiceID`, `ServiceID`, `ServiceTypeID`, `StringID`, `URIID`, `UuID`, `ZooDiscoveryTargetID`

    public abstract class BaseID
    extends Object
    implements ID

Base class for ID implementation classes Extensions for the org.eclipse.ecf.namespace extension point that expose new Namespace subclasses and their own ID implementations are recommended (but not required) to use this class as a superclass.

See Also:
  Serialized Form

### Field Summary

Fields
`protected Namespace` `namespace`

### Constructor Summary

Constructors
`` `BaseID()`
`protected` `BaseID​(Namespace namespace)`

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`int` `compareTo​(Object o)`
`boolean` `equals​(Object o)`
`Object` `getAdapter​(Class clazz)`
`String` `getName()` Get the unique name of this identity.
`Namespace` `getNamespace()` Get the Namespace instance associated with this identity
`int` `hashCode()`
`protected abstract int` `namespaceCompareTo​(BaseID o)` Called by `Namespace.getCompareToForObject(BaseID, BaseID)`.
`protected abstract boolean` `namespaceEquals​(BaseID o)` Called by `Namespace.testIDEquals(BaseID, BaseID)`.
`protected abstract String` `namespaceGetName()` Called by `Namespace.getNameForID(BaseID)`.
`protected abstract int` `namespaceHashCode()` Called by `Namespace.getHashCodeForID(BaseID)`.
`protected String` `namespaceToExternalForm()` Called by `Namespace.toExternalForm(BaseID)`.
`String` `toExternalForm()` Get this ID instance in String form.

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface java.security.Principal

`implies, toString`

### Field Detail

#### namespace

    protected Namespace namespace

### Constructor Detail

#### BaseID

    public BaseID()

Since:
  3.9

#### BaseID

    protected BaseID​(Namespace namespace)

### Method Detail

#### compareTo

    public int compareTo​(Object o)

Specified by:
  `compareTo` in interface `Comparable`

#### equals

    public boolean equals​(Object o)

Specified by:
  `equals` in interface `ID`
Specified by:
  `equals` in interface `Principal`
Overrides:
  `equals` in class `Object`

#### getName

    public String getName()

Description copied from interface: `ID`
Get the unique name of this identity.

Specified by:
  `getName` in interface `ID`
Specified by:
  `getName` in interface `Principal`
Returns:
  String unique name for this identity. Will not be null, and must be a unique String within the Namespace returned by getNamespace()

#### getNamespace

    public Namespace getNamespace()

Description copied from interface: `ID`
Get the Namespace instance associated with this identity

Specified by:
  `getNamespace` in interface `ID`
Returns:
  Namespace the Namespace corresponding to this identity. Will not return null.

#### hashCode

    public int hashCode()

Specified by:
  `hashCode` in interface `ID`
Specified by:
  `hashCode` in interface `Principal`
Overrides:
  `hashCode` in class `Object`

#### toExternalForm

    public String toExternalForm()

Description copied from interface: `ID`
Get this ID instance in String form. Will not return null.

Specified by:
  `toExternalForm` in interface `ID`
Returns:
  String that is external representation of this ID

#### namespaceCompareTo

    protected abstract int namespaceCompareTo​(BaseID o)

Called by `Namespace.getCompareToForObject(BaseID, BaseID)`.

Parameters:
  `o` - the other ID to compare to. Will not be `null`.
Returns:
  the appropriate value as per `Comparable` contract.

#### namespaceEquals

    protected abstract boolean namespaceEquals​(BaseID o)

Called by `Namespace.testIDEquals(BaseID, BaseID)`.

Parameters:
  `o` - the other ID to test against. May be `null`.
Returns:
  `true` if this ID is equal to the given ID. `false` otherwise.

#### namespaceGetName

    protected abstract String namespaceGetName()

Called by `Namespace.getNameForID(BaseID)`.

Returns:
  String name for this ID. Must not be `null`. Value returned should be unique within this Namespace.

#### namespaceHashCode

    protected abstract int namespaceHashCode()

Called by `Namespace.getHashCodeForID(BaseID)`.

Returns:
  int hashCode for this ID. Returned value must be unique within this process.

#### namespaceToExternalForm

    protected String namespaceToExternalForm()

Called by `Namespace.toExternalForm(BaseID)`.

Returns:
  String that represents this ID. Default implementation is to return

       namespace.getScheme() + Namespace.SCHEME_SEPARATOR + namespaceGetName();

#### getAdapter

    public Object getAdapter​(Class clazz)

Specified by:
  `getAdapter` in interface `org.eclipse.core.runtime.IAdaptable`