Class CompositeKey<P,S>

Type Parameters:
P - the type of the primary component
S - the type of the secondary component
All Implemented Interfaces:
Associated<P>, ExternalizableLite, PortableObject, KeyAssociation<P>, Serializable

public class CompositeKey<P,S> extends ExternalizableHelper implements KeyAssociation<P>, ExternalizableLite, PortableObject
Key class that consists of a primary and secondary component. Two instances of CompositeKey are considered to be equal iff both the primary and secondary components of the two instances are considered equal. Additionally, the hash code of a CompositeKey takes into the consideration the hash codes of its two components. Finally, the CompositeKey class implements KeyAssociation by returning the primary component.
Author:
jh 2008.12.11
See Also:
  • Constructor Details

    • CompositeKey

      public CompositeKey()
      Default constructor.
    • CompositeKey

      public CompositeKey(P primary, S secondary)
      Create a new CompositeKey that consists of the given primary and secondary components.
      Parameters:
      primary - the primary key component; must not be null. This is also the host key returned by the KeyAssociation implementation
      secondary - the secondary key component; must not be null
  • Method Details

    • getAssociatedKey

      public P getAssociatedKey()
      Determine the host key (or base) object to which this object is associated.

      Note: It's expected that the returned object is suitable to be used as an immutable identity (e.g. a key in a Map).
      Note 2: Circular associations are not permitted.

      Specified by:
      getAssociatedKey in interface Associated<P>
      Returns:
      the host key that for this object, or null if this object has no association
    • readExternal

      public void readExternal(DataInput in) throws IOException
      Restore the contents of this object by loading the object's state from the passed DataInput object.
      Specified by:
      readExternal in interface ExternalizableLite
      Parameters:
      in - the DataInput stream to read data from in order to restore the state of this object
      Throws:
      IOException - if an I/O exception occurs
    • writeExternal

      public void writeExternal(DataOutput out) throws IOException
      Save the contents of this object by storing the object's state into the passed DataOutput object.
      Specified by:
      writeExternal in interface ExternalizableLite
      Parameters:
      out - the DataOutput stream to write the state of this object to
      Throws:
      IOException - if an I/O exception occurs
    • readExternal

      public void readExternal(PofReader in) throws IOException
      Restore the contents of a user type instance by reading its state using the specified PofReader object.
      Specified by:
      readExternal in interface PortableObject
      Parameters:
      in - the PofReader from which to read the object's state
      Throws:
      IOException - if an I/O error occurs
    • writeExternal

      public void writeExternal(PofWriter out) throws IOException
      Save the contents of a POF user type instance by writing its state using the specified PofWriter object.
      Specified by:
      writeExternal in interface PortableObject
      Parameters:
      out - the PofWriter to which to write the object's state
      Throws:
      IOException - if an I/O error occurs
    • hashCode

      public int hashCode()
      Returns a hash code value for this object.
      Overrides:
      hashCode in class Object
      Returns:
      a hash code value for this object.
    • equals

      public boolean equals(Object o)
      Indicates whether some other object is "equal to" this one.
      Overrides:
      equals in class Object
      Parameters:
      o - the reference object with which to compare.
      Returns:
      true if this object is the same as the obj argument; false otherwise.
    • toString

      public String toString()
      Returns a string representation of the object.
      Overrides:
      toString in class Object
      Returns:
      a string representation of the object.
    • getPrimaryKey

      public P getPrimaryKey()
      Return the primary key component.
      Returns:
      the primary key component
    • getSecondaryKey

      public S getSecondaryKey()
      Return the secondary key component.
      Returns:
      the secondary key component