Package org.eclipse.ecf.discovery.identity

## Class ServiceID

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

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

Direct Known Subclasses:
  `DnsSdServiceID`, `JSLPServiceID`, `ZooDiscoveryServiceID`

    public class ServiceID
    extends BaseID
    implements IServiceID

Service identity type. ServiceIDs are IDs that uniquely identify a remote service. Subclasses may be created as appropriate.

See Also:
  Serialized Form

### Field Summary

Fields
`protected URI` `location`
`protected IServiceInfo` `serviceInfo`
`protected IServiceTypeID` `type`

### Fields inherited from class org.eclipse.ecf.core.identity.BaseID

`namespace`

### Constructor Summary

Constructors
`protected` `ServiceID​(Namespace namespace, IServiceTypeID type, URI anURI)`

### Method Summary

All Methods Instance Methods Concrete Methods
`boolean` `equals​(Object obj)`
`protected String` `getFullyQualifiedName()`
`URI` `getLocation()` (non-Javadoc)
`IServiceInfo` `getServiceInfo()`
`String` `getServiceName()` Get service name for this ID.
`String` `getServiceType()` Get service type for this ID.
`IServiceTypeID` `getServiceTypeID()` Get service type ID for this ID.
`int` `hashCode()`
`protected int` `namespaceCompareTo​(BaseID o)` Called by `Namespace.getCompareToForObject(BaseID, BaseID)`.
`protected boolean` `namespaceEquals​(BaseID o)` Called by `Namespace.testIDEquals(BaseID, BaseID)`.
`protected String` `namespaceGetName()` Called by `Namespace.getNameForID(BaseID)`.
`protected int` `namespaceHashCode()` Called by `Namespace.getHashCodeForID(BaseID)`.
`void` `setServiceInfo​(IServiceInfo serviceInfo)`
`String` `toString()`

### Methods inherited from class org.eclipse.ecf.core.identity.BaseID

`compareTo, getAdapter, getName, getNamespace, namespaceToExternalForm, toExternalForm`

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

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

### Methods inherited from interface java.lang.Comparable

`compareTo`

### Methods inherited from interface org.eclipse.core.runtime.IAdaptable

`getAdapter`

### Methods inherited from interface org.eclipse.ecf.core.identity.ID

`getName, getNamespace, toExternalForm`

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

`implies`

### Field Detail

#### serviceInfo

    protected IServiceInfo serviceInfo

Since:
  3.0

#### type

    protected IServiceTypeID type

#### location

    protected URI location

Since:
  3.0

### Constructor Detail

#### ServiceID

    protected ServiceID​(Namespace namespace,
                        IServiceTypeID type,
                        URI anURI)

Parameters:
  `namespace` - namespace should not be `null`
  `type` - service type ID should not be `null`
  `anURI` - uri for service location should not be `null`
Since:
  3.0

### Method Detail

#### getFullyQualifiedName

    protected String getFullyQualifiedName()

#### namespaceCompareTo

    protected int namespaceCompareTo​(BaseID o)

Description copied from class: `BaseID`
Called by `Namespace.getCompareToForObject(BaseID, BaseID)`.

Specified by:
  `namespaceCompareTo` in class `BaseID`
Parameters:
  `o` - the other ID to compare to. Will not be `null`.
Returns:
  the appropriate value as per `Comparable` contract.

#### namespaceEquals

    protected boolean namespaceEquals​(BaseID o)

Description copied from class: `BaseID`
Called by `Namespace.testIDEquals(BaseID, BaseID)`.

Specified by:
  `namespaceEquals` in class `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 String namespaceGetName()

Description copied from class: `BaseID`
Called by `Namespace.getNameForID(BaseID)`.

Specified by:
  `namespaceGetName` in class `BaseID`
Returns:
  String name for this ID. Must not be `null`. Value returned should be unique within this Namespace.

#### namespaceHashCode

    protected int namespaceHashCode()

Description copied from class: `BaseID`
Called by `Namespace.getHashCodeForID(BaseID)`.

Specified by:
  `namespaceHashCode` in class `BaseID`
Returns:
  int hashCode for this ID. Returned value must be unique within this process.

#### getServiceType

    public String getServiceType()

Get service type for this ID.

Returns:
  String service type. Will not be `null`.

#### getServiceTypeID

    public IServiceTypeID getServiceTypeID()

Description copied from interface: `IServiceID`
Get service type ID for this ID.

Specified by:
  `getServiceTypeID` in interface `IServiceID`
Returns:
  IServiceTypeID. Will not be `null`.

#### getServiceName

    public String getServiceName()

Get service name for this ID.

Specified by:
  `getServiceName` in interface `IServiceID`
Returns:
  String service name. May be `null`.

#### toString

    public String toString()

Specified by:
  `toString` in interface `Principal`
Overrides:
  `toString` in class `Object`

#### getLocation

    public URI getLocation()

(non-Javadoc)

Specified by:
  `getLocation` in interface `IServiceID`
Returns:
  URI the location for this serviceID
Since:
  3.0
See Also:
  `IServiceID.getLocation()`

#### getServiceInfo

    public IServiceInfo getServiceInfo()

Returns:
  the serviceInfo
Since:
  3.0

#### setServiceInfo

    public void setServiceInfo​(IServiceInfo serviceInfo)

Parameters:
  `serviceInfo` - the serviceInfo to set
Since:
  3.0

#### hashCode

    public int hashCode()

Specified by:
  `hashCode` in interface `ID`
Specified by:
  `hashCode` in interface `Principal`
Overrides:
  `hashCode` in class `BaseID`
Since:
  3.0
See Also:
  `Object.hashCode()`

#### equals

    public boolean equals​(Object obj)

Specified by:
  `equals` in interface `ID`
Specified by:
  `equals` in interface `Principal`
Overrides:
  `equals` in class `BaseID`
Since:
  3.0
See Also:
  `Object.equals(java.lang.Object)`