- java.lang.Object
-
- java.rmi.server.ObjID
-
- All Implemented Interfaces:
Serializable
public final class ObjID extends Object implements Serializable
AnObjIDis used to identify a remote object exported to an RMI runtime. When a remote object is exported, it is assigned an object identifier either implicitly or explicitly, depending on the API used to export.The
ObjID()constructor can be used to generate a unique object identifier. Such anObjIDis unique over time with respect to the host it is generated on. TheObjID(int)constructor can be used to create a "well-known" object identifier. The scope of a well-knownObjIDdepends on the RMI runtime it is exported to.An
ObjIDinstance contains an object number (of typelong) and an address space identifier (of typeUID). In a uniqueObjID, the address space identifier is unique with respect to a given host over time. In a well-knownObjID, the address space identifier is equivalent to one returned by invoking theUID(short)constructor with the value zero.If the system property
java.rmi.server.randomIDsis defined to equal the string"true"(case insensitive), then theObjID()constructor will use a cryptographically strong random number generator to choose the object number of the returnedObjID.- Since:
- 1.1
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static intACTIVATOR_IDObject number for well-knownObjIDof the activator.static intDGC_IDObject number for well-knownObjIDof the distributed garbage collector.static intREGISTRY_IDObject number for well-knownObjIDof the registry.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanequals(Object obj)Compares the specified object with thisObjIDfor equality.inthashCode()Returns the hash code value for this object identifier, the object number.static ObjIDread(ObjectInput in)Constructs and returns a newObjIDinstance by unmarshalling a binary representation from anObjectInputinstance.StringtoString()Returns a string representation of this object identifier.voidwrite(ObjectOutput out)Marshals a binary representation of thisObjIDto anObjectOutputinstance.
-
-
-
Field Detail
-
REGISTRY_ID
public static final int REGISTRY_ID
Object number for well-knownObjIDof the registry.- See Also:
- Constant Field Values
-
ACTIVATOR_ID
public static final int ACTIVATOR_ID
Object number for well-knownObjIDof the activator.- See Also:
- Constant Field Values
-
DGC_ID
public static final int DGC_ID
Object number for well-knownObjIDof the distributed garbage collector.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
ObjID
public ObjID()
Generates a unique object identifier.If the system property
java.rmi.server.randomIDsis defined to equal the string"true"(case insensitive), then this constructor will use a cryptographically strong random number generator to choose the object number of the returnedObjID.
-
ObjID
public ObjID(int objNum)
Creates a "well-known" object identifier.An
ObjIDcreated via this constructor will not clash with anyObjIDs generated via the no-arg constructor.- Parameters:
objNum- object number for well-known object identifier
-
-
Method Detail
-
write
public void write(ObjectOutput out) throws IOException
Marshals a binary representation of thisObjIDto anObjectOutputinstance.Specifically, this method first invokes the given stream's
DataOutput.writeLong(long)method with this object identifier's object number, and then it writes its address space identifier by invoking itsUID.write(DataOutput)method with the stream.- Parameters:
out- theObjectOutputinstance to write thisObjIDto- Throws:
IOException- if an I/O error occurs while performing this operation
-
read
public static ObjID read(ObjectInput in) throws IOException
Constructs and returns a newObjIDinstance by unmarshalling a binary representation from anObjectInputinstance.Specifically, this method first invokes the given stream's
DataInput.readLong()method to read an object number, then it invokesUID.read(DataInput)with the stream to read an address space identifier, and then it creates and returns a newObjIDinstance that contains the object number and address space identifier that were read from the stream.- Parameters:
in- theObjectInputinstance to readObjIDfrom- Returns:
- unmarshalled
ObjIDinstance - Throws:
IOException- if an I/O error occurs while performing this operation
-
hashCode
public int hashCode()
Returns the hash code value for this object identifier, the object number.- Overrides:
hashCodein classObject- Returns:
- the hash code value for this object identifier
- See Also:
Object.equals(java.lang.Object)
-
equals
public boolean equals(Object obj)
Compares the specified object with thisObjIDfor equality. This method returnstrueif and only if the specified object is anObjIDinstance with the same object number and address space identifier as this one.- Overrides:
equalsin classObject- Parameters:
obj- the object to compare thisObjIDto- Returns:
trueif the given object is equivalent to this one, andfalseotherwise- See Also:
Object.hashCode()
-
-