Package org.apache.cayenne
Class HybridDataObject
java.lang.Object
org.apache.cayenne.PersistentObject
org.apache.cayenne.BaseDataObject
org.apache.cayenne.HybridDataObject
- All Implemented Interfaces:
Serializable
,DataObject
,Persistent
,Validating
This data object like
CayenneDataObject
uses Map
to store generic attributes,
only difference is that this Map will be created lazily at first write, thus reducing memory penalty if possible.
This class can be used as superclass for objects that have attributes created at runtime.
If generic runtime attributes will be used always it may be a good idea to use CayenneDataObject
instead.
If you don't create attributes at runtime it is better to use BaseDataObject
class.
Map creation is not thread safe, as DataObject in general not thread safe by it's own.
- Since:
- 4.1
- See Also:
-
Field Summary
Fields inherited from class org.apache.cayenne.BaseDataObject
snapshotVersion
Fields inherited from class org.apache.cayenne.PersistentObject
objectContext, objectId, persistenceState
Fields inherited from interface org.apache.cayenne.DataObject
DEFAULT_VERSION
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
appendProperties
(StringBuffer buffer) readPropertyDirectly
(String propName) Returns mapped property value as curently stored in the DataObject.protected void
void
writePropertyDirectly
(String propName, Object val) Modifies a value of a named property without altering the object state in any way, and without triggering any database operations.protected void
Methods inherited from class org.apache.cayenne.BaseDataObject
addToManyTarget, beforePropertyRead, beforePropertyWrite, getSnapshotVersion, readNestedProperty, readProperty, readSerialized, removeToManyTarget, setObjectContext, setPersistenceState, setReverseRelationship, setSnapshotVersion, setToManyTarget, setToOneTarget, toString, toStringBuffer, unsetReverseRelationship, validateForDelete, validateForInsert, validateForSave, validateForUpdate, willConnect, writeProperty, writeSerialized
Methods inherited from class org.apache.cayenne.PersistentObject
getMapKey, getObjectContext, getObjectId, getPersistenceState, setObjectId
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.apache.cayenne.Persistent
getObjectContext, getObjectId, getPersistenceState, setObjectId
-
Field Details
-
values
-
-
Constructor Details
-
HybridDataObject
public HybridDataObject()
-
-
Method Details
-
readPropertyDirectly
Description copied from interface:DataObject
Returns mapped property value as curently stored in the DataObject. Returned value maybe a fault or a real value. This method will not attempt to resolve faults, or to read unmapped properties.- Specified by:
readPropertyDirectly
in interfaceDataObject
- Overrides:
readPropertyDirectly
in classBaseDataObject
-
writePropertyDirectly
Description copied from interface:DataObject
Modifies a value of a named property without altering the object state in any way, and without triggering any database operations. This method is intended mostly for internal use by Cayenne framework, and shouldn't be called from the application code.- Specified by:
writePropertyDirectly
in interfaceDataObject
- Overrides:
writePropertyDirectly
in classBaseDataObject
-
appendProperties
- Overrides:
appendProperties
in classBaseDataObject
-
readState
- Overrides:
readState
in classBaseDataObject
- Throws:
IOException
ClassNotFoundException
-
writeState
- Overrides:
writeState
in classBaseDataObject
- Throws:
IOException
-