Package org.springframework.security.acls.model

# Interface ObjectIdentity

All Superinterfaces:
  `Serializable`

All Known Implementing Classes:
  `ObjectIdentityImpl`

public interface ObjectIdentity extends Serializable
Represents the identity of an individual domain object instance.

As implementations of `ObjectIdentity` are used as the key to represent domain objects in the ACL subsystem, it is essential that implementations provide methods so that object-equality rather than reference-equality can be relied upon reliably. In other words, the ACL subsystem can consider two `ObjectIdentity`s equal if `identity1.equals(identity2)`, rather than reference-equality of `identity1==identity2`.

## Method Summary

Modifier and Type
Method
Description
`boolean`
`equals(Object obj)`
`Serializable`
`getIdentifier()`
Obtains the actual identifier.
`String`
`getType()`
Obtains the "type" metadata for the domain object.
`int`
`hashCode()`

## Method Details

### equals

boolean equals(Object obj)

Overrides:
  `equals` in class `Object`
Parameters:
  `obj` - to be compared
Returns:
  `true` if the objects are equal, `false` otherwise
See Also:
  - `Object.equals(Object)`

### getIdentifier

Serializable getIdentifier()
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.

Returns:
  the identifier (unique within this `type`; never `null`)

### getType

String getType()
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.

Returns:
  the "type" of the domain object (never `null`).

### hashCode

int hashCode()

Overrides:
  `hashCode` in class `Object`
Returns:
  a hash code representation of the `ObjectIdentity`
See Also:
  - `Object.hashCode()`