Package org.eclipse.ecf.discovery

# Class ServiceInfo

java.lang.Object
org.eclipse.ecf.discovery.ServiceInfo

All Implemented Interfaces:
  `Serializable`, `org.eclipse.core.runtime.IAdaptable`, `IServiceInfo`

Direct Known Subclasses:
  `JSLPServiceInfo`

public class ServiceInfo extends Object implements IServiceInfo, Serializable
Base implementation of `IServiceInfo`. Subclasses may be created as appropriate.

See Also:
  - Serialized Form

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`DEFAULT_PRIORITY`
`static final long`
`DEFAULT_TTL`
`static final int`
`DEFAULT_WEIGHT`
`protected int`
`priority`
`protected IServiceProperties`
`properties`
`protected IServiceID`
`serviceID`
`protected String`
`serviceName`
`protected long`
`timeToLive`
`static final String`
`UNKNOWN_PROTOCOL`
`protected int`
`weight`

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`ServiceInfo()`
``
`ServiceInfo(URI anURI, String aServiceName, IServiceTypeID aServiceTypeID)`
Create an IServiceInfo instance.
``
`ServiceInfo(URI anURI, String aServiceName, IServiceTypeID aServiceTypeID, int priority, int weight, IServiceProperties props)`
Create an IServiceInfo instance.
``
`ServiceInfo(URI anURI, String aServiceName, IServiceTypeID aServiceTypeID, int priority, int weight, IServiceProperties props, long ttl)`
Create an IServiceInfo instance.
``
`ServiceInfo(URI anURI, String aServiceName, IServiceTypeID aServiceTypeID, IServiceProperties props)`
Create an IServiceInfo instance.

## Method Summary

Modifier and Type
Method
Description
`Object`
`getAdapter(Class adapter)`
`URI`
`getLocation()`
Get URI for service
`int`
`getPriority()`
The priority for the service Priority: The priority of this target host.
`IServiceID`
`getServiceID()`
Get ServiceID for service.
`String`
`getServiceName()`
(non-Javadoc)
`IServiceProperties`
`getServiceProperties()`
Map with any/all properties associated with the service.
`long`
`getTTL()`
(non-Javadoc)
`int`
`getWeight()`
The weight for the service.
`String`
`toString()`

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

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

## Field Details

### DEFAULT_TTL

public static final long DEFAULT_TTL

Since:
  4.0
See Also:
  - Constant Field Values

### DEFAULT_PRIORITY

public static final int DEFAULT_PRIORITY

See Also:
  - Constant Field Values

### DEFAULT_WEIGHT

public static final int DEFAULT_WEIGHT

See Also:
  - Constant Field Values

### UNKNOWN_PROTOCOL

public static final String UNKNOWN_PROTOCOL

See Also:
  - Constant Field Values

### serviceName

protected String serviceName

Since:
  3.0

### serviceID

protected IServiceID serviceID

### priority

protected int priority

### weight

protected int weight

### properties

protected IServiceProperties properties

### timeToLive

protected long timeToLive

Since:
  4.0

## Constructor Details

### ServiceInfo

protected ServiceInfo()

### ServiceInfo

public ServiceInfo(URI anURI, String aServiceName, IServiceTypeID aServiceTypeID)
Create an IServiceInfo instance.

Parameters:
  `anURI` - The (absolute) location of the service.
  `aServiceName` - a user chosen service name. Only ASCII characters are allowed.
  `aServiceTypeID` - the service type identifier.
Since:
  3.0

### ServiceInfo

public ServiceInfo(URI anURI, String aServiceName, IServiceTypeID aServiceTypeID, IServiceProperties props)
Create an IServiceInfo instance.

Parameters:
  `anURI` - The (absolute) location of the service.
  `aServiceName` - a user chosen service name. Only ASCII characters are allowed.
  `aServiceTypeID` - the service type identifier.
  `props` - generic service properties.
Since:
  3.0

### ServiceInfo

public ServiceInfo(URI anURI, String aServiceName, IServiceTypeID aServiceTypeID, int priority, int weight, IServiceProperties props)
Create an IServiceInfo instance.

Parameters:
  `anURI` - The (absolute) location of the service.
  `aServiceName` - a user chosen service name. Only ASCII characters are allowed.
  `aServiceTypeID` - the service type identifier.
  `priority` - the service priority. The priority of this target host. A client MUST attempt to contact the target host with the lowest-numbered priority it can reach; target hosts with the same priority SHOULD be tried in an order defined by the weight field.
  `weight` - the service weight. A server selection mechanism. The weight field specifies a relative weight for entries with the same priority. Larger weights SHOULD be given a proportionately higher probability of being selected. Domain administrators SHOULD use Weight 0 when there isn't any server selection to do. In the presence of records containing weights greater than 0, records with weight 0 should have a very small chance of being selected.
  `props` - generic service properties.
Since:
  3.0

### ServiceInfo

public ServiceInfo(URI anURI, String aServiceName, IServiceTypeID aServiceTypeID, int priority, int weight, IServiceProperties props, long ttl)
Create an IServiceInfo instance.

Parameters:
  `anURI` - The (absolute) location of the service.
  `aServiceName` - a user chosen service name. Only ASCII characters are allowed.
  `aServiceTypeID` - the service type identifier.
  `priority` - the service priority. The priority of this target host. A client MUST attempt to contact the target host with the lowest-numbered priority it can reach; target hosts with the same priority SHOULD be tried in an order defined by the weight field.
  `weight` - the service weight. A server selection mechanism. The weight field specifies a relative weight for entries with the same priority. Larger weights SHOULD be given a proportionately higher probability of being selected. Domain administrators SHOULD use Weight 0 when there isn't any server selection to do. In the presence of records containing weights greater than 0, records with weight 0 should have a very small chance of being selected.
  `props` - generic service properties.
  `ttl` - time to live
Since:
  4.0

## Method Details

### getLocation

public URI getLocation()
Description copied from interface: `IServiceInfo`
Get URI for service

Specified by:
  `getLocation` in interface `IServiceInfo`
Returns:
  `URI` the location for the service.

### getServiceID

public IServiceID getServiceID()
Description copied from interface: `IServiceInfo`
Get ServiceID for service.

Specified by:
  `getServiceID` in interface `IServiceInfo`
Returns:
  ServiceID the serviceID for the service. Will not be `null`.

### getPriority

public int getPriority()
Description copied from interface: `IServiceInfo`
The priority for the service Priority: The priority of this target host. A client MUST attempt to contact the target host with the lowest-numbered priority it can reach; target hosts with the same priority SHOULD be tried in an order defined by the weight field.

Specified by:
  `getPriority` in interface `IServiceInfo`
Returns:
  int the priority. 0 if no priority information for service.

### getWeight

public int getWeight()
Description copied from interface: `IServiceInfo`
The weight for the service. 0 if no weight information for service. Weight: A server selection mechanism. The weight field specifies a relative weight for entries with the same priority. Larger weights SHOULD be given a proportionately higher probability of being selected. Domain administrators SHOULD use Weight 0 when there isn't any server selection to do. In the presence of records containing weights greater than 0, records with weight 0 should have a very small chance of being selected.

Specified by:
  `getWeight` in interface `IServiceInfo`
Returns:
  int the weight

### getServiceProperties

public IServiceProperties getServiceProperties()
Description copied from interface: `IServiceInfo`
Map with any/all properties associated with the service. Properties are assumed to be name/value pairs, both of type String.

Specified by:
  `getServiceProperties` in interface `IServiceInfo`
Returns:
  Map the properties associated with this service. Will not be `null`.

### toString

public String toString()

Overrides:
  `toString` in class `Object`

### getAdapter

public Object getAdapter(Class adapter)

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

### getServiceName

public String getServiceName()
(non-Javadoc)

Specified by:
  `getServiceName` in interface `IServiceInfo`
Returns:
  A human readable service name. Not used for uniqueness!
Since:
  3.0
See Also:
  - `IServiceInfo.getServiceName()`

### getTTL

public long getTTL()
(non-Javadoc)

Specified by:
  `getTTL` in interface `IServiceInfo`
Returns:
  long the time to live in seconds
Since:
  4.0
See Also:
  - `IServiceInfo.getTTL()`