wt.access
Class AccessControlSurrogate

java.lang.Object
  extended bywt.access.AccessControlSurrogate
All Implemented Interfaces:
AccessControlled, AccessControlList, AdHocControlled, DomainAdministered, Externalizable, IBAHolder, LifeCycleManaged, NetFactor, ObjectMappable, Ownable, Persistable, Serializable, TeamManaged, Typed

public class AccessControlSurrogate
extends Object
implements AdHocControlled, AccessControlled, DomainAdministered, Ownable, LifeCycleManaged, ObjectMappable, Typed, Externalizable

The AccessControlSurrogate is a stand-in for query items when access control is applied. It contains attributes identical to those of the class that it is representing. An AccessControlSurrogate contains all possible attributes necessary for making the access control decision.

Use the newAccessControlSurrogate static factory method(s), not the AccessControlSurrogate constructor, to construct instances of this class. Instances must be constructed using the static factory(s), in order to ensure proper initialization of the instance.



Supported API: false

Extendable: false

See Also:
Serialized Form

Field Summary
private static String CLASSNAME
           
private  AdminDomainRef domainRef
           
private  AclEntrySet entrySet
           
static long EXTERNALIZATION_VERSION_UID
           
private  boolean inheritedDomain
           
protected static long OLD_FORMAT_VERSION_UID
           
private  Ownership ownership
           
private static String RESOURCE
           
(package private) static long serialVersionUID
           
private  LifeCycleState state
           
static String TARGET_CLASS_NAME
          Label for the attribute.
private static int TARGET_CLASS_NAME_UPPER_LIMIT
           
private  String targetClassName
           
private  TeamReference teamId
           
private  TeamTemplateReference teamTemplateId
           
private  AttributeContainer theAttributeContainer
           
private  PersistInfo thePersistInfo
           
private  TypeDefinitionReference typeDefinitionReference
           
 
Fields inherited from interface wt.access.AdHocControlled
ENTRY_SET
 
Fields inherited from interface wt.fc.Persistable
IDENTITY, PERSIST_INFO, TYPE
 
Fields inherited from interface wt.admin.DomainAdministered
DOMAIN_REF, INHERITED_DOMAIN
 
Fields inherited from interface wt.ownership.Ownable
OWNERSHIP
 
Fields inherited from interface wt.lifecycle.LifeCycleManaged
LIFE_CYCLE_AT_GATE, LIFE_CYCLE_BASIC, LIFE_CYCLE_NAME, LIFE_CYCLE_STATE, LIFE_CYCLE_TEMPLATE, STATE
 
Fields inherited from interface wt.team.TeamManaged
TEAM_ID, TEAM_IDENTITY, TEAM_NAME, TEAM_TEMPLATE_ID, TEAM_TEMPLATE_IDENTITY, TEAM_TEMPLATE_NAME
 
Fields inherited from interface wt.type.Typed
TYPE_DEFINITION_REFERENCE
 
Fields inherited from interface wt.iba.value.IBAHolder
ATTRIBUTE_CONTAINER
 
Constructor Summary
AccessControlSurrogate()
           
 
Method Summary
 void checkAttributes()
          Validate the values of this Persistable object's attributes.
 boolean equals(Object obj)
          Indicates whether the given object is equal to this object from a persistence perspective, by comparing the two objects ObjectIdentifiers.
 AttributeContainer getAttributeContainer()
          Gets the object for the association that plays role: ATTRIBUTE_CONTAINER.
 ClassInfo getClassInfo()
          Returns the ClassInfo object for this class.
 String getConceptualClassname()
          Deprecated.  
 AdminDomainRef getDomainRef()
          Gets the object for the association that plays role: DOMAIN_REF.
 AclEntrySet getEntrySet()
          Gets the value of the attribute: ENTRY_SET.
 String getIdentity()
          Deprecated. Replaced by IdentityFactory.getDispayIdentifier(object) to return a localizable equivalent of getIdentity(). To return a localizable value which includes the object type, use IdentityFactory.getDisplayIdentity(object). Other alternatives are ((WTObject)obj).getDisplayIdentifier() and ((WTObject)obj).getDisplayIdentity().
 String getLifeCycleName()
          Gets the value of the attribute: LIFE_CYCLE_NAME.
 State getLifeCycleState()
          Gets the value of the attribute: LIFE_CYCLE_STATE.
 LifeCycleTemplateReference getLifeCycleTemplate()
          Gets the value of the attribute: LIFE_CYCLE_TEMPLATE.
 Ownership getOwnership()
          Gets the object for the association that plays role: OWNERSHIP.
 PersistInfo getPersistInfo()
          Gets the object for the association that plays role: PERSIST_INFO.
 LifeCycleState getState()
          Gets the object for the association that plays role: STATE.
 String getTargetClassName()
          Gets the value of the attribute: TARGET_CLASS_NAME.
 TeamReference getTeamId()
          Gets the object for the association that plays role: TEAM_ID.
 String getTeamIdentity()
          Gets the value of the attribute: TEAM_IDENTITY.
 String getTeamName()
          Gets the value of the attribute: TEAM_NAME.
 TeamTemplateReference getTeamTemplateId()
          Gets the object for the association that plays role: TEAM_TEMPLATE_ID.
 String getTeamTemplateIdentity()
          Gets the value of the attribute: TEAM_TEMPLATE_IDENTITY.
 String getTeamTemplateName()
          Gets the value of the attribute: TEAM_TEMPLATE_NAME.
 String getType()
          Deprecated. Replaced by IdentityFactory.getDispayType(object) to return a localizable equivalent of getType(). Another alternative is ((WTObject)obj).getDisplayType().
 TypeDefinitionReference getTypeDefinitionReference()
          Gets the object for the association that plays role: TYPE_DEFINITION_REFERENCE.
 int hashCode()
          Returns a hash code for this object based upon its ObjectIdentifier.
protected  void initialize()
          Supports initialization, following construction of an instance.
 boolean isInheritedDomain()
          Gets the value of the attribute: INHERITED_DOMAIN.
 boolean isLifeCycleAtGate()
          Gets the value of the attribute: LIFE_CYCLE_AT_GATE.
 boolean isLifeCycleBasic()
          Gets the value of the attribute: LIFE_CYCLE_BASIC.
static AccessControlSurrogate newAccessControlSurrogate()
          Default factory for the class.
 void readExternal(ObjectInput input)
          Reads the non-transient fields of this class from an external source.
 void readExternal(PersistentRetrieveIfc input)
          Used by Persistent Data Service to populate the persistent attributes of this class from a persistent store.
private  boolean readOldVersion(ObjectInput input, long readSerialVersionUID, boolean passThrough, boolean superDone)
          Reads the non-transient fields of this class from an external source, which is not the current version.
protected  boolean readVersion(AccessControlSurrogate thisObject, ObjectInput input, long readSerialVersionUID, boolean passThrough, boolean superDone)
          Reads the non-transient fields of this class from an external source.
 void setAttributeContainer(AttributeContainer a_AttributeContainer)
          Sets the object for the association that plays role: ATTRIBUTE_CONTAINER.
 void setDomainRef(AdminDomainRef a_DomainRef)
          Sets the object for the association that plays role: DOMAIN_REF.
 void setEntrySet(AclEntrySet a_EntrySet)
          Sets the value of the attribute: ENTRY_SET.
 void setInheritedDomain(boolean a_InheritedDomain)
          Sets the value of the attribute: INHERITED_DOMAIN.
 void setOwnership(Ownership a_Ownership)
          Sets the object for the association that plays role: OWNERSHIP.
 void setPersistInfo(PersistInfo a_PersistInfo)
          Sets the object for the association that plays role: PERSIST_INFO.
 void setState(LifeCycleState a_State)
          Sets the object for the association that plays role: STATE.
 void setTargetClassName(String a_TargetClassName)
          Sets the value of the attribute: TARGET_CLASS_NAME.
 void setTeamId(TeamReference a_TeamId)
          Sets the object for the association that plays role: TEAM_ID.
 void setTeamTemplateId(TeamTemplateReference a_TeamTemplateId)
          Sets the object for the association that plays role: TEAM_TEMPLATE_ID.
 void setTypeDefinitionReference(TypeDefinitionReference a_TypeDefinitionReference)
          Sets the object for the association that plays role: TYPE_DEFINITION_REFERENCE.
private  void stateValidate(LifeCycleState a_State)
           
private  void targetClassNameValidate(String a_TargetClassName)
           
private  void teamIdValidate(TeamReference a_TeamId)
           
private  void teamTemplateIdValidate(TeamTemplateReference a_TeamTemplateId)
           
 String toString()
          Returns the conceptual (modeled) name for the class.
private  void typeDefinitionReferenceValidate(TypeDefinitionReference a_TypeDefinitionReference)
           
 void writeExternal(ObjectOutput output)
          Writes the non-transient fields of this class to an external source.
 void writeExternal(PersistentStoreIfc output)
          Used by Persistent Data Service to obtain the values of the persistent attributes of this class, so they can be written to a persistent store.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

RESOURCE

private static final String RESOURCE
See Also:
Constant Field Values

CLASSNAME

private static final String CLASSNAME

TARGET_CLASS_NAME

public static final String TARGET_CLASS_NAME
Label for the attribute.

Supported API: false

See Also:
Constant Field Values

TARGET_CLASS_NAME_UPPER_LIMIT

private static int TARGET_CLASS_NAME_UPPER_LIMIT

targetClassName

private String targetClassName

entrySet

private AclEntrySet entrySet

thePersistInfo

private PersistInfo thePersistInfo

inheritedDomain

private boolean inheritedDomain

domainRef

private AdminDomainRef domainRef

ownership

private Ownership ownership

state

private LifeCycleState state

teamTemplateId

private TeamTemplateReference teamTemplateId

teamId

private TeamReference teamId

typeDefinitionReference

private TypeDefinitionReference typeDefinitionReference

theAttributeContainer

private AttributeContainer theAttributeContainer

serialVersionUID

static final long serialVersionUID
See Also:
Constant Field Values

EXTERNALIZATION_VERSION_UID

public static final long EXTERNALIZATION_VERSION_UID
See Also:
Constant Field Values

OLD_FORMAT_VERSION_UID

protected static final long OLD_FORMAT_VERSION_UID
See Also:
Constant Field Values
Constructor Detail

AccessControlSurrogate

public AccessControlSurrogate()
Method Detail

writeExternal

public void writeExternal(ObjectOutput output)
                   throws IOException
Writes the non-transient fields of this class to an external source.

Supported API: false

Specified by:
writeExternal in interface Externalizable
Parameters:
output -
Throws:
IOException

readExternal

public void readExternal(ObjectInput input)
                  throws IOException,
                         ClassNotFoundException
Reads the non-transient fields of this class from an external source.

Supported API: false

Specified by:
readExternal in interface Externalizable
Parameters:
input -
Throws:
IOException
ClassNotFoundException

readVersion

protected boolean readVersion(AccessControlSurrogate thisObject,
                              ObjectInput input,
                              long readSerialVersionUID,
                              boolean passThrough,
                              boolean superDone)
                       throws IOException,
                              ClassNotFoundException
Reads the non-transient fields of this class from an external source.

Supported API: false

Parameters:
thisObject -
input -
readSerialVersionUID -
passThrough -
superDone -
Returns:
boolean
Throws:
IOException
ClassNotFoundException

readOldVersion

private boolean readOldVersion(ObjectInput input,
                               long readSerialVersionUID,
                               boolean passThrough,
                               boolean superDone)
                        throws IOException,
                               ClassNotFoundException
Reads the non-transient fields of this class from an external source, which is not the current version.

Parameters:
input -
readSerialVersionUID -
passThrough -
superDone -
Returns:
boolean
Throws:
IOException
ClassNotFoundException

writeExternal

public void writeExternal(PersistentStoreIfc output)
                   throws SQLException,
                          DatastoreException
Used by Persistent Data Service to obtain the values of the persistent attributes of this class, so they can be written to a persistent store.

(Not intended for general use.)

Supported API: false

Specified by:
writeExternal in interface ObjectMappable
Parameters:
output -
Throws:
SQLException
DatastoreException

readExternal

public void readExternal(PersistentRetrieveIfc input)
                  throws SQLException,
                         DatastoreException
Used by Persistent Data Service to populate the persistent attributes of this class from a persistent store.

(Not intended for general use.)

Supported API: false

Specified by:
readExternal in interface ObjectMappable
Parameters:
input -
Throws:
SQLException
DatastoreException

getConceptualClassname

public String getConceptualClassname()
Deprecated.  

Returns the conceptual (modeled) name for the class.

Supported API: false

Specified by:
getConceptualClassname in interface NetFactor
Returns:
String

toString

public String toString()
Returns the conceptual (modeled) name for the class.

Supported API: false

Returns:
String

getClassInfo

public ClassInfo getClassInfo()
                       throws WTIntrospectionException
Returns the ClassInfo object for this class.

Supported API: false

Specified by:
getClassInfo in interface NetFactor
Returns:
ClassInfo
Throws:
WTIntrospectionException

getTargetClassName

public String getTargetClassName()
Gets the value of the attribute: TARGET_CLASS_NAME.

Supported API: false

Returns:
String

setTargetClassName

public void setTargetClassName(String a_TargetClassName)
                        throws WTPropertyVetoException
Sets the value of the attribute: TARGET_CLASS_NAME.

Supported API: false

Parameters:
a_TargetClassName -
Throws:
WTPropertyVetoException

targetClassNameValidate

private void targetClassNameValidate(String a_TargetClassName)
                              throws WTPropertyVetoException
Parameters:
a_TargetClassName -
Throws:
WTPropertyVetoException

newAccessControlSurrogate

public static AccessControlSurrogate newAccessControlSurrogate()
                                                        throws WTException
Default factory for the class.

Supported API: false

Returns:
AccessControlSurrogate
Throws:
WTException

initialize

protected void initialize()
                   throws WTException
Supports initialization, following construction of an instance. Invoked by "new" factory having the same signature.

Supported API: false

Throws:
WTException

getEntrySet

public AclEntrySet getEntrySet()
Gets the value of the attribute: ENTRY_SET.

Supported API: false

Specified by:
getEntrySet in interface AdHocControlled
Returns:
AclEntrySet

setEntrySet

public void setEntrySet(AclEntrySet a_EntrySet)
Sets the value of the attribute: ENTRY_SET.

Supported API: false

Specified by:
setEntrySet in interface AdHocControlled
Parameters:
a_EntrySet -

getIdentity

public String getIdentity()
Deprecated. Replaced by IdentityFactory.getDispayIdentifier(object) to return a localizable equivalent of getIdentity(). To return a localizable value which includes the object type, use IdentityFactory.getDisplayIdentity(object). Other alternatives are ((WTObject)obj).getDisplayIdentifier() and ((WTObject)obj).getDisplayIdentity().

Gets the value of the attribute: IDENTITY. Supplies the identity of the object for business purposes. The identity is composed of name, number or possibly other attributes. The identity does not include the type of the object.

Supported API: false

Specified by:
getIdentity in interface Persistable
Returns:
String

getType

public String getType()
Deprecated. Replaced by IdentityFactory.getDispayType(object) to return a localizable equivalent of getType(). Another alternative is ((WTObject)obj).getDisplayType().

Gets the value of the attribute: TYPE. Identifies the type of the object for business purposes. This is typically the class name of the object but may be derived from some other attribute of the object.

Supported API: false

Specified by:
getType in interface Persistable
Returns:
String

checkAttributes

public void checkAttributes()
                     throws InvalidAttributeException
Validate the values of this Persistable object's attributes.

Supported API: false

Specified by:
checkAttributes in interface Persistable
Throws:
InvalidAttributeException

getPersistInfo

public PersistInfo getPersistInfo()
Gets the object for the association that plays role: PERSIST_INFO.

Supported API: false

Specified by:
getPersistInfo in interface Persistable
Returns:
PersistInfo

setPersistInfo

public void setPersistInfo(PersistInfo a_PersistInfo)
Sets the object for the association that plays role: PERSIST_INFO.

Supported API: false

Specified by:
setPersistInfo in interface Persistable
Parameters:
a_PersistInfo -

isInheritedDomain

public boolean isInheritedDomain()
Gets the value of the attribute: INHERITED_DOMAIN. A boolean indicating whether the administrative domain is inherited. If the value is true, the domain is inherited from a parent object.

Supported API: false

Specified by:
isInheritedDomain in interface DomainAdministered
Returns:
boolean

setInheritedDomain

public void setInheritedDomain(boolean a_InheritedDomain)
                        throws WTPropertyVetoException
Sets the value of the attribute: INHERITED_DOMAIN. A boolean indicating whether the administrative domain is inherited. If the value is true, the domain is inherited from a parent object.

Supported API: false

Specified by:
setInheritedDomain in interface DomainAdministered
Parameters:
a_InheritedDomain -
Throws:
WTPropertyVetoException

getDomainRef

public AdminDomainRef getDomainRef()
Gets the object for the association that plays role: DOMAIN_REF.

Supported API: false

Specified by:
getDomainRef in interface DomainAdministered
Returns:
AdminDomainRef

setDomainRef

public void setDomainRef(AdminDomainRef a_DomainRef)
Sets the object for the association that plays role: DOMAIN_REF.

Supported API: false

Specified by:
setDomainRef in interface DomainAdministered
Parameters:
a_DomainRef -

getOwnership

public Ownership getOwnership()
Gets the object for the association that plays role: OWNERSHIP. The persistent state for an Ownable object is maintained via the Ownership object. Access to information for the Ownership object should be done via methods on the OwnershipHelper.

Supported API: false

Specified by:
getOwnership in interface Ownable
Returns:
Ownership

setOwnership

public void setOwnership(Ownership a_Ownership)
Sets the object for the association that plays role: OWNERSHIP. The persistent state for an Ownable object is maintained via the Ownership object. Access to information for the Ownership object should be done via methods on the OwnershipHelper.

Supported API: false

Specified by:
setOwnership in interface Ownable
Parameters:
a_Ownership -

getLifeCycleName

public String getLifeCycleName()
Gets the value of the attribute: LIFE_CYCLE_NAME. the Name of the LifeCycle template (a derived attribute)

Supported API: false

Specified by:
getLifeCycleName in interface LifeCycleManaged
Returns:
String

getLifeCycleState

public State getLifeCycleState()
Gets the value of the attribute: LIFE_CYCLE_STATE. the current State of the LifeCycleManaged object (a derived attribute)

Supported API: false

Specified by:
getLifeCycleState in interface LifeCycleManaged
Returns:
State

isLifeCycleAtGate

public boolean isLifeCycleAtGate()
Gets the value of the attribute: LIFE_CYCLE_AT_GATE. the current AtGate flag on the LifeCycleManaged object (a derived attribute)

Supported API: false

Specified by:
isLifeCycleAtGate in interface LifeCycleManaged
Returns:
boolean

getLifeCycleTemplate

public LifeCycleTemplateReference getLifeCycleTemplate()
Gets the value of the attribute: LIFE_CYCLE_TEMPLATE. the LifeCycleTemplate of the LifeCycleManaged object (a derived attribute)

Supported API: false

Specified by:
getLifeCycleTemplate in interface LifeCycleManaged
Returns:
LifeCycleTemplateReference

isLifeCycleBasic

public boolean isLifeCycleBasic()
Gets the value of the attribute: LIFE_CYCLE_BASIC. This attribute is used to specify if the lifecycle template is basic (no roles, ad hoc access, workflows or criteria) or advanced (may contain roles, ad hoc access, access, workfow and criteria).

Supported API: false

Specified by:
isLifeCycleBasic in interface LifeCycleManaged
Returns:
boolean

getState

public LifeCycleState getState()
Gets the object for the association that plays role: STATE.

Supported API: false

Specified by:
getState in interface LifeCycleManaged
Returns:
LifeCycleState

setState

public void setState(LifeCycleState a_State)
              throws WTPropertyVetoException
Sets the object for the association that plays role: STATE.

Supported API: false

Specified by:
setState in interface LifeCycleManaged
Parameters:
a_State -
Throws:
WTPropertyVetoException

stateValidate

private void stateValidate(LifeCycleState a_State)
                    throws WTPropertyVetoException
Parameters:
a_State -
Throws:
WTPropertyVetoException

getTeamName

public String getTeamName()
Gets the value of the attribute: TEAM_NAME. The name of the team(a derived attribute)

Supported API: false

Specified by:
getTeamName in interface TeamManaged
Returns:
String

getTeamIdentity

public String getTeamIdentity()
Gets the value of the attribute: TEAM_IDENTITY. The identity of the team (a derived attribute)

Supported API: false

Specified by:
getTeamIdentity in interface TeamManaged
Returns:
String

getTeamTemplateName

public String getTeamTemplateName()
Gets the value of the attribute: TEAM_TEMPLATE_NAME. The name of the teamTemplate(a derived attribute)

Supported API: false

Specified by:
getTeamTemplateName in interface TeamManaged
Returns:
String

getTeamTemplateIdentity

public String getTeamTemplateIdentity()
Gets the value of the attribute: TEAM_TEMPLATE_IDENTITY. The identity of the TeamTemplate (a derived attribute)

Supported API: false

Specified by:
getTeamTemplateIdentity in interface TeamManaged
Returns:
String

getTeamTemplateId

public TeamTemplateReference getTeamTemplateId()
Gets the object for the association that plays role: TEAM_TEMPLATE_ID.

Supported API: false

Specified by:
getTeamTemplateId in interface TeamManaged
Returns:
TeamTemplateReference

setTeamTemplateId

public void setTeamTemplateId(TeamTemplateReference a_TeamTemplateId)
                       throws WTPropertyVetoException
Sets the object for the association that plays role: TEAM_TEMPLATE_ID.

Supported API: false

Specified by:
setTeamTemplateId in interface TeamManaged
Parameters:
a_TeamTemplateId -
Throws:
WTPropertyVetoException

teamTemplateIdValidate

private void teamTemplateIdValidate(TeamTemplateReference a_TeamTemplateId)
                             throws WTPropertyVetoException
Parameters:
a_TeamTemplateId -
Throws:
WTPropertyVetoException

getTeamId

public TeamReference getTeamId()
Gets the object for the association that plays role: TEAM_ID.

Supported API: false

Specified by:
getTeamId in interface TeamManaged
Returns:
TeamReference

setTeamId

public void setTeamId(TeamReference a_TeamId)
               throws WTPropertyVetoException
Sets the object for the association that plays role: TEAM_ID.

Supported API: false

Specified by:
setTeamId in interface TeamManaged
Parameters:
a_TeamId -
Throws:
WTPropertyVetoException

teamIdValidate

private void teamIdValidate(TeamReference a_TeamId)
                     throws WTPropertyVetoException
Parameters:
a_TeamId -
Throws:
WTPropertyVetoException

getTypeDefinitionReference

public TypeDefinitionReference getTypeDefinitionReference()
Gets the object for the association that plays role: TYPE_DEFINITION_REFERENCE.

Supported API: false

Specified by:
getTypeDefinitionReference in interface Typed
Returns:
TypeDefinitionReference

setTypeDefinitionReference

public void setTypeDefinitionReference(TypeDefinitionReference a_TypeDefinitionReference)
                                throws WTPropertyVetoException
Sets the object for the association that plays role: TYPE_DEFINITION_REFERENCE.

Supported API: false

Specified by:
setTypeDefinitionReference in interface Typed
Parameters:
a_TypeDefinitionReference -
Throws:
WTPropertyVetoException

typeDefinitionReferenceValidate

private void typeDefinitionReferenceValidate(TypeDefinitionReference a_TypeDefinitionReference)
                                      throws WTPropertyVetoException
Parameters:
a_TypeDefinitionReference -
Throws:
WTPropertyVetoException

getAttributeContainer

public AttributeContainer getAttributeContainer()
Gets the object for the association that plays role: ATTRIBUTE_CONTAINER.

Supported API: false

Specified by:
getAttributeContainer in interface IBAHolder
Returns:
AttributeContainer

setAttributeContainer

public void setAttributeContainer(AttributeContainer a_AttributeContainer)
Sets the object for the association that plays role: ATTRIBUTE_CONTAINER.

Supported API: false

Specified by:
setAttributeContainer in interface IBAHolder
Parameters:
a_AttributeContainer -

equals

public boolean equals(Object obj)
Indicates whether the given object is equal to this object from a persistence perspective, by comparing the two objects ObjectIdentifiers. Changed or stale copies are still considered equal by this method. Delegates to PersistenceHelper.equals(Persistable,Object).

Warning: Certain core Windchill operations may depend upon equals being ObjectIdentifier-based. Changes to the default implementation should be done with care, if at all.

Supported API: false

Parameters:
obj -
Returns:
boolean

hashCode

public int hashCode()
Returns a hash code for this object based upon its ObjectIdentifier. Delegates to PersistenceHelper.hashCode(Persistable).

Warning: Certain core Windchill operations may depend upon hashCode being ObjectIdentifier-based. Changes to the default implementation should be done with care, if at all.

Supported API: false

Returns:
int