Package javax.jdo.identity
Class SingleFieldIdentity
- java.lang.Object
-
- javax.jdo.identity.SingleFieldIdentity
-
- All Implemented Interfaces:
java.io.Externalizable
,java.io.Serializable
,java.lang.Comparable
- Direct Known Subclasses:
ByteIdentity
,CharIdentity
,IntIdentity
,LongIdentity
,ObjectIdentity
,ShortIdentity
,StringIdentity
public abstract class SingleFieldIdentity extends java.lang.Object implements java.io.Externalizable, java.lang.Comparable
This class is the abstract base class for all single field identity classes. A common case of application identity uses exactly one persistent field in the class to represent identity. In this case, the application can use a standard JDO class instead of creating a new user-defined class for the purpose.- Version:
- 2.0
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected int
hashCode
The hashCode.protected java.lang.Object
keyAsObject
The key as an Object.protected static I18NHelper
msg
The Internationalization message helper.private java.lang.Class
targetClass
The class of the target object.private java.lang.String
targetClassName
The name of the class of the target object.
-
Constructor Summary
Constructors Modifier Constructor Description SingleFieldIdentity()
Constructor only for Externalizable.protected
SingleFieldIdentity(java.lang.Class pcClass)
Constructor with target class.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
assertKeyNotNull(java.lang.Object key)
Assert that the key is not null.protected int
compare(SingleFieldIdentity o)
Determine the ordering of identity objects.protected java.lang.Object
createKeyAsObject()
Create the key as an Object.boolean
equals(java.lang.Object obj)
Check the class and class name and object type.java.lang.Object
getKeyAsObject()
Return the key as an Object.java.lang.Class
getTargetClass()
Return the target class.java.lang.String
getTargetClassName()
Return the target class name.protected int
hashClassName()
Return the hash code of the class name.int
hashCode()
Return the cached hash code.void
readExternal(java.io.ObjectInput in)
Read from the input stream.protected void
setKeyAsObject(java.lang.Object key)
Set the given key as the key for this instance.void
writeExternal(java.io.ObjectOutput out)
Write to the output stream.
-
-
-
Field Detail
-
msg
protected static I18NHelper msg
The Internationalization message helper.
-
targetClass
private transient java.lang.Class targetClass
The class of the target object.
-
targetClassName
private java.lang.String targetClassName
The name of the class of the target object.
-
hashCode
protected int hashCode
The hashCode.
-
keyAsObject
protected java.lang.Object keyAsObject
The key as an Object.
-
-
Method Detail
-
setKeyAsObject
protected void setKeyAsObject(java.lang.Object key)
Set the given key as the key for this instance. Compute the hash code for the instance.- Since:
- 2.0
-
assertKeyNotNull
protected void assertKeyNotNull(java.lang.Object key)
Assert that the key is not null. Throw a JDONullIdentityException if the given key is null.- Since:
- 2.0
-
getTargetClass
public java.lang.Class getTargetClass()
Return the target class.- Returns:
- the target class.
- Since:
- 2.0
-
getTargetClassName
public java.lang.String getTargetClassName()
Return the target class name.- Returns:
- the target class name.
- Since:
- 2.0
-
getKeyAsObject
public java.lang.Object getKeyAsObject()
Return the key as an Object. The method is synchronized to avoid race conditions in multi-threaded environments.- Returns:
- the key as an Object.
- Since:
- 2.0
-
createKeyAsObject
protected java.lang.Object createKeyAsObject()
Create the key as an Object.- Returns:
- the key as an Object;
- Since:
- 2.0
-
equals
public boolean equals(java.lang.Object obj)
Check the class and class name and object type. If restored from serialization, class will be null so compare class name.- Overrides:
equals
in classjava.lang.Object
- Parameters:
obj
- the other object- Returns:
- true if the class or class name is the same
-
hashClassName
protected int hashClassName()
Return the hash code of the class name.- Returns:
- the hash code of the class name
- Since:
- 2.0
-
hashCode
public int hashCode()
Return the cached hash code.- Overrides:
hashCode
in classjava.lang.Object
- Returns:
- the cached hash code.
-
writeExternal
public void writeExternal(java.io.ObjectOutput out) throws java.io.IOException
Write to the output stream.- Specified by:
writeExternal
in interfacejava.io.Externalizable
- Parameters:
out
- the stream- Throws:
java.io.IOException
-
readExternal
public void readExternal(java.io.ObjectInput in) throws java.io.IOException, java.lang.ClassNotFoundException
Read from the input stream. Creates a new instance with the target class name set- Specified by:
readExternal
in interfacejava.io.Externalizable
- Throws:
java.io.IOException
java.lang.ClassNotFoundException
-
compare
protected int compare(SingleFieldIdentity o)
Determine the ordering of identity objects. Only the class name is compared. This method is only used by subclasses.- Parameters:
o
- Other identity- Returns:
- The relative ordering between the objects
- Since:
- 2.2
-
-