|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.sun.jini.reggie.RegistrarProxy
class RegistrarProxy
A RegistrarProxy is a proxy for a registrar. Clients only see instances via the ServiceRegistrar, Administrable and ReferentUuid interfaces.
Field Summary | |
---|---|
private static Logger |
logger
|
(package private) ServiceID |
registrarID
The registrar's service ID. |
private static long |
serialVersionUID
|
(package private) Registrar |
server
The registrar. |
Fields inherited from interface net.jini.core.lookup.ServiceRegistrar |
---|
TRANSITION_MATCH_MATCH, TRANSITION_MATCH_NOMATCH, TRANSITION_NOMATCH_MATCH |
Constructor Summary | |
---|---|
RegistrarProxy(Registrar server,
ServiceID registrarID)
Constructor for use by getInstance(), ConstrainableRegistrarProxy. |
Method Summary | |
---|---|
boolean |
equals(Object obj)
Proxies for servers with the same service ID are considered equal. |
Object |
getAdmin()
Returns an object that implements whatever administration interfaces are appropriate for the particular service. |
Class[] |
getEntryClasses(ServiceTemplate tmpl)
Looks at all service items that match the specified template, finds every entry (among those service items) that either doesn't match any entry templates or is a subclass of at least one matching entry template, and returns the set of the (most specific) classes of those entries. |
Object[] |
getFieldValues(ServiceTemplate tmpl,
int setIndex,
String field)
Looks at all service items that match the specified template, finds every entry (among those service items) that matches tmpl.attributeSetTemplates[setIndex], and returns the set of values of the specified field of those entries. |
String[] |
getGroups()
Returns the set of groups that this lookup service is currently a member of. |
(package private) static RegistrarProxy |
getInstance(Registrar server,
ServiceID registrarID)
Returns RegistrarProxy or ConstrainableRegistrarProxy instance, depending on whether given server implements RemoteMethodControl. |
LookupLocator |
getLocator()
Returns a LookupLocator that can be used if necessary for unicast discovery of the lookup service. |
Uuid |
getReferentUuid()
Return the Uuid that has been assigned to the
resource this proxy represents. |
ServiceID |
getServiceID()
Returns the service ID of the lookup service. |
Class[] |
getServiceTypes(ServiceTemplate tmpl,
String prefix)
Looks at all service items that match the specified template, and for every service item finds the most specific type (class or interface) or types the service item is an instance of that are neither equal to, nor a superclass of, any of the service types in the template and that have names that start with the specified prefix, and returns the set of all such types. |
(package private) static void |
handleException(Throwable e)
Rethrow the exception if it is an Error, unless it is a LinkageError, OutOfMemoryError, or StackOverflowError. |
int |
hashCode()
|
Object |
lookup(ServiceTemplate tmpl)
Returns the service object (i.e., just ServiceItem.service) from an item matching the template, or null if there is no match. |
ServiceMatches |
lookup(ServiceTemplate tmpl,
int maxMatches)
Returns at most maxMatches items matching the template, plus the total number of items that match the template. |
EventRegistration |
notify(ServiceTemplate tmpl,
int transitions,
RemoteEventListener listener,
MarshalledObject handback,
long leaseDuration)
Registers for event notification. |
private void |
readObject(ObjectInputStream in)
Reads the default serializable field value for this instance, followed by the registrar's service ID encoded as specified by the ServiceID.writeBytes method. |
private void |
readObjectNoData()
Throws InvalidObjectException, since data for this class is required. |
ServiceRegistration |
register(ServiceItem srvItem,
long leaseDuration)
Register a new service or re-register an existing service. |
String |
toString()
Returns a string created from the proxy class name, the registrar's service ID, and the result of the underlying proxy's toString method. |
private void |
writeObject(ObjectOutputStream out)
Writes the default serializable field value for this instance, followed by the registrar's service ID encoded as specified by the ServiceID.writeBytes method. |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
private static final long serialVersionUID
private static final Logger logger
final Registrar server
transient ServiceID registrarID
Constructor Detail |
---|
RegistrarProxy(Registrar server, ServiceID registrarID)
Method Detail |
---|
static RegistrarProxy getInstance(Registrar server, ServiceID registrarID)
public Object getAdmin() throws RemoteException
Administrable
getAdmin
in interface Administrable
RemoteException
JoinAdmin
public ServiceRegistration register(ServiceItem srvItem, long leaseDuration) throws RemoteException
ServiceRegistrar
To register a new service, item.serviceID should be null. In that case, if item.service does not equal (using MarshalledObject.equals) any existing item's service object, then a new service ID will be assigned and included in the returned ServiceRegistration. The service ID is unique over time and space with respect to all other service IDs generated by all lookup services. If item.service does equal an existing item's service object, the existing item is first deleted from the lookup service (even if it has different attributes) and its lease is cancelled, but that item's service ID is reused for the newly registered item.
To re-register an existing service, or to register the service in any other lookup service, item.serviceID should be set to the same service ID that was returned by the initial registration. If an item is already registered under the same service ID, the existing item is first deleted (even if it has different attributes or a different service instance) and its lease is cancelled. Note that service object equality is not checked in this case, to allow for reasonable evolution of the service (e.g., the serialized form of the stub changes, or the service implements a new interface).
Any duplicate attribute sets included in a service item are eliminated in the stored representation of the item. The lease duration request is not exact; the returned lease is allowed to have a shorter (but not longer) duration than what was requested. The registration is persistent across restarts (crashes) of the lookup service until the lease expires or is cancelled.
register
in interface ServiceRegistrar
srvItem
- service item to registerleaseDuration
- requested lease duration, in milliseconds
RemoteException
public Object lookup(ServiceTemplate tmpl) throws RemoteException
ServiceRegistrar
lookup
in interface ServiceRegistrar
tmpl
- template to match
RemoteException
public ServiceMatches lookup(ServiceTemplate tmpl, int maxMatches) throws RemoteException
ServiceRegistrar
lookup
in interface ServiceRegistrar
tmpl
- template to matchmaxMatches
- maximum number of matches to return
RemoteException
public EventRegistration notify(ServiceTemplate tmpl, int transitions, RemoteEventListener listener, MarshalledObject handback, long leaseDuration) throws RemoteException
ServiceRegistrar
While the event registration is in effect, a ServiceEvent is sent to the specified listener whenever a register, lease cancellation or expiration, or attribute change operation results in an item changing state in a way that satisfies the template and transition combination.
notify
in interface ServiceRegistrar
tmpl
- template to matchtransitions
- bitwise OR of any non-empty set of transition valueslistener
- listener to send events tohandback
- object to include in every ServiceEvent generatedleaseDuration
- requested lease duration
RemoteException
public Class[] getEntryClasses(ServiceTemplate tmpl) throws RemoteException
ServiceRegistrar
getEntryClasses
in interface ServiceRegistrar
tmpl
- template to match
RemoteException
public Object[] getFieldValues(ServiceTemplate tmpl, int setIndex, String field) throws NoSuchFieldException, RemoteException
ServiceRegistrar
getFieldValues
in interface ServiceRegistrar
tmpl
- template to matchsetIndex
- index into tmpl.attributeSetTemplatesfield
- name of field of tmpl.attributeSetTemplates[setIndex]
NoSuchFieldException
- field does not name a field of the
entry template
RemoteException
static void handleException(Throwable e)
public Class[] getServiceTypes(ServiceTemplate tmpl, String prefix) throws RemoteException
ServiceRegistrar
getServiceTypes
in interface ServiceRegistrar
tmpl
- template to matchprefix
- class name prefix
RemoteException
public ServiceID getServiceID()
ServiceRegistrar
getServiceID
in interface ServiceRegistrar
public LookupLocator getLocator() throws RemoteException
ServiceRegistrar
getLocator
in interface ServiceRegistrar
RemoteException
public String[] getGroups() throws RemoteException
ServiceRegistrar
getGroups
in interface ServiceRegistrar
RemoteException
public Uuid getReferentUuid()
ReferentUuid
Uuid
that has been assigned to the
resource this proxy represents.
getReferentUuid
in interface ReferentUuid
Uuid
associated with the
resource this proxy represents. Will not
return null
.public int hashCode()
hashCode
in class Object
public boolean equals(Object obj)
equals
in class Object
public String toString()
toString
in class Object
private void writeObject(ObjectOutputStream out) throws IOException
IOException
private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException
IOException
ClassNotFoundException
private void readObjectNoData() throws ObjectStreamException
ObjectStreamException
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |