# Class BinaryRefAddr

java.lang.Object
javax.naming.RefAddr
javax.naming.BinaryRefAddr

All Implemented Interfaces:
  `Serializable`

public class BinaryRefAddr extends RefAddr
This class represents the binary form of the address of a communications end-point.

A BinaryRefAddr consists of a type that describes the communication mechanism and an opaque buffer containing the address description specific to that communication mechanism. The format and interpretation of the address type and the contents of the opaque buffer are based on the agreement of three parties: the client that uses the address, the object/server that can be reached using the address, and the administrator or program that creates the address.

An example of a binary reference address is an BER X.500 presentation address. Another example of a binary reference address is a serialized form of a service's object handle.

A binary reference address is immutable in the sense that its fields once created, cannot be replaced. However, it is possible to access the byte array used to hold the opaque buffer. Programs are strongly recommended against changing this byte array. Changes to this byte array need to be explicitly synchronized.

Since:
  1.3
See Also:
  - `RefAddr`
  - `StringRefAddr`
  - Serialized Form

- ## Field Summary

  ### Fields declared in class RefAddr

  `addrType`
  Modifier and Type
  Field
  Description
  `protected String`
  `addrType`
  Contains the type of this address.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `BinaryRefAddr(String addrType, byte[] src)`
  Constructs a new instance of BinaryRefAddr using its address type and a byte array for contents.
  `BinaryRefAddr(String addrType, byte[] src, int offset, int count)`
  Constructs a new instance of BinaryRefAddr using its address type and a region of a byte array for contents.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `equals(Object obj)`
  Determines whether obj is equal to this address.
  `Object`
  `getContent()`
  Retrieves the contents of this address as an Object.
  `int`
  `hashCode()`
  Computes the hash code of this address using its address type and contents.
  `String`
  `toString()`
  Generates the string representation of this address.

  ### Methods declared in class RefAddr

  `getType`
  Modifier and Type
  Method
  Description
  `String`
  `getType()`
  Retrieves the address type of this address.

  ### Methods declared in class Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `protected void`
  `finalize()`
  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<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `final void`
  `wait()`
  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.

- ## Constructor Details

  - ### BinaryRefAddr

    public BinaryRefAddr(String addrType, byte[] src)
    Constructs a new instance of BinaryRefAddr using its address type and a byte array for contents.
    Parameters:
      `addrType` - A non-null string describing the type of the address.
      `src` - The non-null contents of the address as a byte array. The contents of src is copied into the new BinaryRefAddr.

  - ### BinaryRefAddr

    public BinaryRefAddr(String addrType, byte[] src, int offset, int count)
    Constructs a new instance of BinaryRefAddr using its address type and a region of a byte array for contents.
    Parameters:
      `addrType` - A non-null string describing the type of the address.
      `src` - The non-null contents of the address as a byte array. The contents of src is copied into the new BinaryRefAddr.
      `offset` - The starting index in src to get the bytes. `0 <= offset <= src.length`.
      `count` - The number of bytes to extract from src. `0 <= count <= src.length-offset`.

- ## Method Details

  - ### getContent

    public Object getContent()
    Retrieves the contents of this address as an Object. The result is a byte array. Changes to this array will affect this BinaryRefAddr's contents. Programs are recommended against changing this array's contents and to lock the buffer if they need to change it.
    Specified by:
      `getContent` in class `RefAddr`
    Returns:
      The non-null buffer containing this address's contents.

  - ### equals

    public boolean equals(Object obj)
    Determines whether obj is equal to this address. It is equal if it contains the same address type and their contents are byte-wise equivalent.
    Overrides:
      `equals` in class `RefAddr`
    Parameters:
      `obj` - The possibly null object to check.
    Returns:
      true if the object is equal; false otherwise.
    See Also:
      - `RefAddr.getContent()`
      - `RefAddr.getType()`

  - ### hashCode

    public int hashCode()
    Computes the hash code of this address using its address type and contents. Two BinaryRefAddrs have the same hash code if they have the same address type and the same contents. It is also possible for different BinaryRefAddrs to have the same hash code.
    Overrides:
      `hashCode` in class `RefAddr`
    Returns:
      The hash code of this address as an int.
    See Also:
      - `Object.hashCode()`

  - ### toString

    public String toString()
    Generates the string representation of this address. The string consists of the address's type and contents with labels. The first 32 bytes of contents are displayed (in hexadecimal). If there are more than 32 bytes, "..." is used to indicate more. This string is meant to used for debugging purposes and not meant to be interpreted programmatically.
    Overrides:
      `toString` in class `RefAddr`
    Returns:
      The non-null string representation of this address.