APIdia Launch Partner
Top Description Fields Constructors Methods
java.rmi.server

public final Class ObjID

extends Object
implements Serializable
Class Inheritance
All Implemented Interfaces
java.io.Serializable
Imports
java.io.DataInput, .DataOutput, .IOException, .ObjectInput, .ObjectOutput, .Serializable, java.security.SecureRandom, java.util.concurrent.atomic.AtomicLong

An ObjID is 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 an ObjID is unique over time with respect to the host it is generated on. The ObjID(int) constructor can be used to create a "well-known" object identifier. The scope of a well-known ObjID depends on the RMI runtime it is exported to.

An ObjID instance contains an object number (of type long) and an address space identifier (of type UID). In a unique ObjID, the address space identifier is unique with respect to a given host over time. In a well-known ObjID, the address space identifier is equivalent to one returned by invoking the UID#UID(short) constructor with the value zero.

If the system property java.rmi.server.randomIDs is defined to equal the string "true" (case insensitive), then the ObjID() constructor will use a cryptographically strong random number generator to choose the object number of the returned ObjID.

Authors
Ann Wollrath, Peter Jones
Since
1.1

Field Summary

Modifier and TypeField and Description
public static final int
ACTIVATOR_ID

Object number for well-known ObjID of the activator.

public static final int
DGC_ID

Object number for well-known ObjID of the distributed garbage collector.

private static final UID
private static final AtomicLong
private final long
public static final int
REGISTRY_ID

Object number for well-known ObjID of the registry.

private static final SecureRandom
private static final long
serialVersionUID

indicate compatibility with JDK 1.1.x version of class

private final UID

Constructor Summary

AccessConstructor and Description
public
ObjID()

Generates a unique object identifier.

public
ObjID(int
object number for well-known object identifier
objNum
)

Creates a "well-known" object identifier.

private
ObjID(long objNum, UID space)

Constructs an object identifier given data read from a stream.

Method Summary

Modifier and TypeMethod and Description
public boolean

Returns:

true if the given object is equivalent to this one, and false otherwise
equals
(Object
the object to compare this ObjID to
obj
)

Overrides java.lang.Object.equals.

Compares the specified object with this ObjID for equality.

public int

Returns:

the hash code value for this object identifier
hashCode
()

Overrides java.lang.Object.hashCode.

Returns the hash code value for this object identifier, the object number.

public static ObjID

Returns:

unmarshalled ObjID instance
read
(ObjectInput
the ObjectInput instance to read ObjID from
in
)

Constructs and returns a new ObjID instance by unmarshalling a binary representation from an ObjectInput instance.

public String

Returns:

a string representation of this object identifier
toString
()

Overrides java.lang.Object.toString.

Returns a string representation of this object identifier.

private static boolean
public void
write(ObjectOutput
the ObjectOutput instance to write this ObjID to
out
)

Marshals a binary representation of this ObjID to an ObjectOutput instance.

Inherited from java.lang.Object:
clonefinalizegetClassnotifynotifyAllwaitwaitwait

Field Detail

ACTIVATOR_IDback to summary
public static final int ACTIVATOR_ID

Object number for well-known ObjID of the activator.

DGC_IDback to summary
public static final int DGC_ID

Object number for well-known ObjID of the distributed garbage collector.

mySpaceback to summary
private static final UID mySpace
nextObjNumback to summary
private static final AtomicLong nextObjNum
objNumback to summary
private final long objNum
See Also
hashCode
REGISTRY_IDback to summary
public static final int REGISTRY_ID

Object number for well-known ObjID of the registry.

secureRandomback to summary
private static final SecureRandom secureRandom
serialVersionUIDback to summary
private static final long serialVersionUID

indicate compatibility with JDK 1.1.x version of class

spaceback to summary
private final UID space

Constructor Detail

ObjIDback to summary
public ObjID()

Generates a unique object identifier.

If the system property java.rmi.server.randomIDs is 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 returned ObjID.

ObjIDback to summary
public ObjID(int objNum)

Creates a "well-known" object identifier.

An ObjID created via this constructor will not clash with any ObjIDs generated via the no-arg constructor.

Parameters
objNum:int

object number for well-known object identifier

ObjIDback to summary
private ObjID(long objNum, UID space)

Constructs an object identifier given data read from a stream.

Method Detail

equalsback to summary
public boolean equals(Object obj)

Overrides java.lang.Object.equals.

Compares the specified object with this ObjID for equality. This method returns true if and only if the specified object is an ObjID instance with the same object number and address space identifier as this one.

Parameters
obj:Object

the object to compare this ObjID to

Returns:boolean

true if the given object is equivalent to this one, and false otherwise

hashCodeback to summary
public int hashCode()

Overrides java.lang.Object.hashCode.

Returns the hash code value for this object identifier, the object number.

Returns:int

the hash code value for this object identifier

Annotations
@Override
readback to summary
public static ObjID read(ObjectInput in) throws IOException

Constructs and returns a new ObjID instance by unmarshalling a binary representation from an ObjectInput instance.

Specifically, this method first invokes the given stream's ObjectInput#readLong() method to read an object number, then it invokes UID#read(DataInput) with the stream to read an address space identifier, and then it creates and returns a new ObjID instance that contains the object number and address space identifier that were read from the stream.

Parameters
in:ObjectInput

the ObjectInput instance to read ObjID from

Returns:ObjID

unmarshalled ObjID instance

Exceptions
IOException:
if an I/O error occurs while performing this operation
toStringback to summary
public String toString()

Overrides java.lang.Object.toString.

Returns a string representation of this object identifier.

Returns:String

a string representation of this object identifier

useRandomIDsback to summary
private static boolean useRandomIDs()
writeback to summary
public void write(ObjectOutput out) throws IOException

Marshals a binary representation of this ObjID to an ObjectOutput instance.

Specifically, this method first invokes the given stream's ObjectOutput#writeLong(long) method with this object identifier's object number, and then it writes its address space identifier by invoking its UID#write(DataOutput) method with the stream.

Parameters
out:ObjectOutput

the ObjectOutput instance to write this ObjID to

Exceptions
IOException:
if an I/O error occurs while performing this operation