Package org.datanucleus.cache
Class CachedPC
java.lang.Object
org.datanucleus.cache.CachedPC
- All Implemented Interfaces:
Serializable
,Comparable<CachedPC>
An object that is stored in the Level2 Cache keyed by the identity of the persistable object.
Comprises a map of the field values keyed by the absolute field number in the class, the loaded fields array, and the version of the object that is represented with these values.
- Where the field is a relation field (PC, Map, Collection, array) we store the id of any referenced persistable object. This is used when regenerating the object, and recreating its relations. Note that the "id" is the DatastoreId or SingleFieldId etc where applicable otherwise is CachedId (ensuring that the class of the related object is stored).
- Where the field contains an embedded/serialised persistable object, we store a nested CachedPC object representing that object (since it doesn't exist in its own right).
- See Also:
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Class
Class of the object being cached.Values for the fields, keyed by the absolute field number.private Object
Identity of the object being cached.private boolean[]
The loaded fields array.private static final long
private Object
Version of the cached object (if any) - Long, Timestamp etc. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionint
getCopy()
getFieldValue
(Integer fieldNumber) getId()
int[]
boolean[]
Accessor for the loaded fields of this object.void
setFieldValue
(Integer fieldNumber, Object value) void
setLoadedField
(int fieldNumber, boolean loaded) void
setVersion
(Object ver) toString()
Method to return a sting form of the cached object.Method to return a string form of the cached object.
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
cls
Class of the object being cached. -
id
Identity of the object being cached. This is to allow recreation of the object when using uniqueKey lookup. This will be null if embedded/serialised. -
fieldValues
Values for the fields, keyed by the absolute field number. -
version
Version of the cached object (if any) - Long, Timestamp etc. -
loadedFields
private boolean[] loadedFieldsThe loaded fields array. TODO Note that this could be interpreted from the keys of fieldValues.
-
-
Constructor Details
-
CachedPC
Constructor.- Parameters:
cls
- The class of the objectloadedFields
- The loaded fieldsvers
- Version of the object (optional)id
- Identity of the object
-
-
Method Details
-
getObjectClass
-
getId
-
setFieldValue
-
getFieldValue
-
setVersion
-
getVersion
-
getLoadedFields
public boolean[] getLoadedFields()Accessor for the loaded fields of this object. Use setLoadedField() if you want to update a flag.- Returns:
- The loaded fields flags
-
getLoadedFieldNumbers
public int[] getLoadedFieldNumbers() -
setLoadedField
public void setLoadedField(int fieldNumber, boolean loaded) -
getCopy
-
compareTo
- Specified by:
compareTo
in interfaceComparable<CachedPC>
-
toString
Method to return a sting form of the cached object. Returns something likeCachedPC : cls=mydomain.MyClass version=1 loadedFlags=[YY]
-
toString
Method to return a string form of the cached object. Returns something likeCachedPC : cls=mydomain.MyClass version=1 loadedFlags=[YY] numValues=2 field=0 value=101 type=class java.lang.Long field=1 value=Home type=class java.lang.String
when debug is enabled, and omits the "field=..." parts when not using debug.- Parameters:
indent
- Indent for this CachedPCdebug
- Whether to include the field values in the return- Returns:
- The string form
-