Package org.datanucleus.identity
Class SingleFieldId<T,S extends SingleFieldId>
- java.lang.Object
-
- org.datanucleus.identity.SingleFieldId<T,S>
-
- All Implemented Interfaces:
java.io.Externalizable,java.io.Serializable,java.lang.Comparable<S>
public abstract class SingleFieldId<T,S extends SingleFieldId> extends java.lang.Object implements java.io.Externalizable, java.lang.Comparable<S>This class is the abstract base class for all single field identity classes. TODO All subclasses should implement the same rules as applies to all identity classes, namely String constructor taking output of toString(), etc.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected inthashCodeprotected static java.lang.StringSTRING_DELIMITERprotected java.lang.StringtargetClassNameThe name of the class of the target persistable object.
-
Constructor Summary
Constructors Modifier Constructor Description SingleFieldId()protectedSingleFieldId(java.lang.Class<?> pcClass)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected voidassertKeyNotNull(java.lang.Object key)Assert that the key is not null.protected intcompare(S o)Determine the ordering of identity objects.booleanequals(java.lang.Object obj)abstract TgetKeyAsObject()Accessor for the keyjava.lang.StringgetTargetClassName()Accessor for the target class nameinthashCode()protected abstract booleankeyEquals(S other)voidreadExternal(java.io.ObjectInput in)Read from the input stream.voidwriteExternal(java.io.ObjectOutput out)Write to the output stream.
-
-
-
Field Detail
-
STRING_DELIMITER
protected static final java.lang.String STRING_DELIMITER
- See Also:
- Constant Field Values
-
targetClassName
protected java.lang.String targetClassName
The name of the class of the target persistable object.
-
hashCode
protected int hashCode
-
-
Method Detail
-
assertKeyNotNull
protected void assertKeyNotNull(java.lang.Object key)
Assert that the key is not null. Throw a NucleusUserException if the given key is null.- Parameters:
key- The key
-
getTargetClassName
public java.lang.String getTargetClassName()
Accessor for the target class name- Returns:
- Class name for the object represented by this id
-
getKeyAsObject
public abstract T getKeyAsObject()
Accessor for the key- Returns:
- The key
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equalsin classjava.lang.Object
-
keyEquals
protected abstract boolean keyEquals(S other)
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
writeExternal
public void writeExternal(java.io.ObjectOutput out) throws java.io.IOExceptionWrite to the output stream.- Specified by:
writeExternalin 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.ClassNotFoundExceptionRead from the input stream. Creates a new instance with the target class name set- Specified by:
readExternalin interfacejava.io.Externalizable- Parameters:
in- Input object- Throws:
java.io.IOExceptionjava.lang.ClassNotFoundException
-
compare
protected int compare(S 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
-
-