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:
    Serialized Form
    • Constructor Detail

      • 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 Detail

      • 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
        NotActiveException - if the object is not in its initial state, and therefore cannot be deserialized into
      • 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