Class ObjectIdentityImpl

  • All Implemented Interfaces:
    java.io.Serializable, ObjectIdentity

    public class ObjectIdentityImpl
    extends java.lang.Object
    implements ObjectIdentity
    Simple implementation of ObjectIdentity.

    Uses Strings to store the identity of the domain object instance. Also offers a constructor that uses reflection to build the identity information.

    See Also:
    Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      ObjectIdentityImpl​(java.lang.Class<?> javaType, java.io.Serializable identifier)
      Constructor which uses the name of the supplied class as the type property.
      ObjectIdentityImpl​(java.lang.Object object)
      Creates the ObjectIdentityImpl based on the passed object instance.
      ObjectIdentityImpl​(java.lang.String type, java.io.Serializable identifier)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean equals​(java.lang.Object obj)
      Important so caching operates properly.
      java.io.Serializable getIdentifier()
      Obtains the actual identifier.
      java.lang.String getType()
      Obtains the "type" metadata for the domain object.
      int hashCode()
      Important so caching operates properly.
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • ObjectIdentityImpl

        public ObjectIdentityImpl​(java.lang.String type,
                                  java.io.Serializable identifier)
      • ObjectIdentityImpl

        public ObjectIdentityImpl​(java.lang.Class<?> javaType,
                                  java.io.Serializable identifier)
        Constructor which uses the name of the supplied class as the type property.
      • ObjectIdentityImpl

        public ObjectIdentityImpl​(java.lang.Object object)
                           throws IdentityUnavailableException
        Creates the ObjectIdentityImpl based on the passed object instance. The passed object must provide a getId() method, otherwise an exception will be thrown.

        The class name of the object passed will be considered the type, so if more control is required, a different constructor should be used.

        Parameters:
        object - the domain object instance to create an identity for.
        Throws:
        IdentityUnavailableException - if identity could not be extracted
    • Method Detail

      • equals

        public boolean equals​(java.lang.Object obj)
        Important so caching operates properly.

        Considers an object of the same class equal if it has the same classname and id properties.

        Numeric identities (Integer and Long values) are considered equal if they are numerically equal. Other serializable types are evaluated using a simple equality.

        Specified by:
        equals in interface ObjectIdentity
        Overrides:
        equals in class java.lang.Object
        Parameters:
        obj - object to compare
        Returns:
        true if the presented object matches this object
        See Also:
        Object.equals(Object)
      • getIdentifier

        public java.io.Serializable getIdentifier()
        Description copied from interface: ObjectIdentity
        Obtains the actual identifier. This identifier must not be reused to represent other domain objects with the same javaType.

        Because ACLs are largely immutable, it is strongly recommended to use a synthetic identifier (such as a database sequence number for the primary key). Do not use an identifier with business meaning, as that business meaning may change in the future such change will cascade to the ACL subsystem data.

        Specified by:
        getIdentifier in interface ObjectIdentity
        Returns:
        the identifier (unique within this type; never null)
      • getType

        public java.lang.String getType()
        Description copied from interface: ObjectIdentity
        Obtains the "type" metadata for the domain object. This will often be a Java type name (an interface or a class) – traditionally it is the name of the domain object implementation class.
        Specified by:
        getType in interface ObjectIdentity
        Returns:
        the "type" of the domain object (never null).
      • hashCode

        public int hashCode()
        Important so caching operates properly.
        Specified by:
        hashCode in interface ObjectIdentity
        Overrides:
        hashCode in class java.lang.Object
        Returns:
        the hash
        See Also:
        Object.hashCode()
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object