Class ObjID

java.lang.Object
java.rmi.server.ObjID
All Implemented Interfaces:
Serializable

public final class ObjID extends Object implements Serializable
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(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.

Since:
1.1
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    Object number for well-known ObjID of the activator.
    static final int
    Object number for well-known ObjID of the distributed garbage collector.
    static final int
    Object number for well-known ObjID of the registry.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Generates a unique object identifier.
    ObjID(int objNum)
    Creates a "well-known" object identifier.
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    Compares the specified object with this ObjID for equality.
    int
    Returns the hash code value for this object identifier, the object number.
    static ObjID
    Constructs and returns a new ObjID instance by unmarshalling a binary representation from an ObjectInput instance.
    Returns a string representation of this object identifier.
    void
    Marshals a binary representation of this ObjID to an ObjectOutput instance.

    Methods inherited from class Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    Modifier and Type
    Method
    Description
    protected Object
    Creates and returns a copy of this object.
    protected void
    Deprecated, for removal: This API element is subject to removal in a future version.
    Finalization is deprecated and subject to removal in a future release.
    final Class<?>
    Returns the runtime class of this Object.
    final void
    Wakes up a single thread that is waiting on this object's monitor.
    final void
    Wakes up all threads that are waiting on this object's monitor.
    final void
    Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
    final void
    wait(long timeoutMillis)
    Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
    final void
    wait(long timeoutMillis, int nanos)
    Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  • Field Details

    • REGISTRY_ID

      public static final int REGISTRY_ID
      Object number for well-known ObjID of the registry.
      See Also:
    • ACTIVATOR_ID

      public static final int ACTIVATOR_ID
      Object number for well-known ObjID of the activator.
      See Also:
    • DGC_ID

      public static final int DGC_ID
      Object number for well-known ObjID of the distributed garbage collector.
      See Also:
  • Constructor Details

    • ObjID

      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.

    • ObjID

      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 - object number for well-known object identifier
  • Method Details

    • write

      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 DataOutput.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 - the ObjectOutput instance to write this ObjID to
      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 new ObjID instance by unmarshalling a binary representation from an ObjectInput instance.

      Specifically, this method first invokes the given stream's DataInput.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 - the ObjectInput instance to read ObjID from
      Returns:
      unmarshalled ObjID instance
      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:
      hashCode in class Object
      Returns:
      the hash code value for this object identifier
      See Also:
    • equals

      public boolean equals(Object obj)
      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.
      Overrides:
      equals in class Object
      Parameters:
      obj - the object to compare this ObjID to
      Returns:
      true if the given object is equivalent to this one, and false otherwise
      See Also:
    • toString

      public String toString()
      Returns a string representation of this object identifier.
      Overrides:
      toString in class Object
      Returns:
      a string representation of this object identifier