public class TimestampLockingPolicy extends VersionLockingPolicy
Purpose: Used to allow a single version timestamp to be used for optimistic locking.
| Modifier and Type | Field and Description |
|---|---|
static int |
LOCAL_TIME |
static int |
SERVER_TIME |
IN_CACHE, IN_OBJECT| Constructor and Description |
|---|
TimestampLockingPolicy()
PUBLIC: Create a new TimestampLockingPolicy.
|
TimestampLockingPolicy(org.eclipse.persistence.internal.helper.DatabaseField field)
INTERNAL: Create a new TimestampLockingPolicy.
|
TimestampLockingPolicy(java.lang.String fieldName)
PUBLIC: Create a new TimestampLockingPolicy.
|
| Modifier and Type | Method and Description |
|---|---|
int |
compareWriteLockValues(java.lang.Object value1, java.lang.Object value2)
INTERNAL: This method compares two writeLockValues.
|
java.lang.Object |
getBaseValue()
INTERNAL: This is the base value that is older than all other values, it is used in the place of null in some situations.
|
java.lang.Object |
getNewLockValue(ModifyQuery query)
INTERNAL: Returns the new Timestamp value.
|
java.lang.Object |
getValueToPutInCache(org.eclipse.persistence.internal.sessions.AbstractRecord row, org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Return the value that should be stored in the identity map.
|
int |
getVersionDifference(java.lang.Object currentValue, java.lang.Object domainObject, java.lang.Object primaryKeys, org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Return the number of versions different between these objects.
|
Expression |
getWriteLockUpdateExpression(ExpressionBuilder builder, org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Return an expression that updates the write lock
|
java.lang.Object |
getWriteLockValue(java.lang.Object domainObject, java.lang.Object primaryKey, org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: This method will return the optimistic lock value for the object.
|
boolean |
isNewerVersion(org.eclipse.persistence.internal.sessions.AbstractRecord databaseRow, java.lang.Object domainObject, java.lang.Object primaryKey, org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Compares the value from the row and from the object (or cache).
|
boolean |
isNewerVersion(java.lang.Object firstLockFieldValue, java.lang.Object secondWriteLockFieldValue)
INTERNAL: Compares two values.
|
boolean |
isNewerVersion(java.lang.Object currentValue, java.lang.Object domainObject, java.lang.Object primaryKey, org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Compares the value with the value from the object (or cache).
|
void |
setUsesServerTime(boolean usesServerTime)
PUBLIC: Set if policy uses server time.
|
void |
useLocalTime()
PUBLIC: set this policy to get the time from the local machine.
|
void |
useServerTime()
PUBLIC: set this policy to get the time from the server.
|
boolean |
usesLocalTime()
PUBLIC: Return true if policy uses local time.
|
boolean |
usesServerTime()
PUBLIC: Return true if policy uses server time.
|
addLockFieldsToUpdateRow, addLockValuesToTranslationRow, buildDeleteExpression, buildUpdateExpression, clone, getLockOnChangeMode, getVersionMapping, getWriteLockField, getWriteLockFieldName, initialize, initializeProperties, isCascaded, isStoredInCache, isStoredInObject, mergeIntoParentCache, mergeIntoParentCache, setDescriptor, setIsCascaded, setIsStoredInCache, setLockOnChangeMode, setupWriteFieldsForInsert, setWriteLockField, setWriteLockFieldName, shouldUpdateVersionOnMappingChange, shouldUpdateVersionOnOwnedMappingChange, storeInCache, storeInObject, supportsWriteLockValuesComparison, updateObjectWithWriteValue, updateRowAndObjectForUpdate, validateDelete, validateUpdate, writeLockValueIntoRowpublic static final int SERVER_TIME
public static final int LOCAL_TIME
public TimestampLockingPolicy()
public TimestampLockingPolicy(java.lang.String fieldName)
fieldName - the field where the write lock value will be stored.public TimestampLockingPolicy(org.eclipse.persistence.internal.helper.DatabaseField field)
field - the field where the write lock value will be stored.
public int compareWriteLockValues(java.lang.Object value1,
java.lang.Object value2)
compareWriteLockValues in interface org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicycompareWriteLockValues in class VersionLockingPolicypublic java.lang.Object getBaseValue()
getBaseValue in interface org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicygetBaseValue in class VersionLockingPolicypublic java.lang.Object getNewLockValue(ModifyQuery query)
getNewLockValue in class VersionLockingPolicy
public java.lang.Object getValueToPutInCache(org.eclipse.persistence.internal.sessions.AbstractRecord row,
org.eclipse.persistence.internal.sessions.AbstractSession session)
getValueToPutInCache in interface org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicygetValueToPutInCache in class VersionLockingPolicy
public int getVersionDifference(java.lang.Object currentValue,
java.lang.Object domainObject,
java.lang.Object primaryKeys,
org.eclipse.persistence.internal.sessions.AbstractSession session)
getVersionDifference in interface org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicygetVersionDifference in class VersionLockingPolicycurrentValue - the new lock valuedomainObject - the object containing the version to be compared toprimaryKeys - a vector containing the primary keys of the domainObjectsession - the session to be used with the comparison
public java.lang.Object getWriteLockValue(java.lang.Object domainObject,
java.lang.Object primaryKey,
org.eclipse.persistence.internal.sessions.AbstractSession session)
getWriteLockValue in interface org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicygetWriteLockValue in class VersionLockingPolicypublic Expression getWriteLockUpdateExpression(ExpressionBuilder builder, org.eclipse.persistence.internal.sessions.AbstractSession session)
getWriteLockUpdateExpression in interface org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicygetWriteLockUpdateExpression in class VersionLockingPolicy
public boolean isNewerVersion(java.lang.Object currentValue,
java.lang.Object domainObject,
java.lang.Object primaryKey,
org.eclipse.persistence.internal.sessions.AbstractSession session)
isNewerVersion in interface org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicyisNewerVersion in class VersionLockingPolicy
public boolean isNewerVersion(org.eclipse.persistence.internal.sessions.AbstractRecord databaseRow,
java.lang.Object domainObject,
java.lang.Object primaryKey,
org.eclipse.persistence.internal.sessions.AbstractSession session)
isNewerVersion in interface org.eclipse.persistence.internal.descriptors.OptimisticLockingPolicyisNewerVersion in class VersionLockingPolicy
public boolean isNewerVersion(java.lang.Object firstLockFieldValue,
java.lang.Object secondWriteLockFieldValue)
isNewerVersion in class VersionLockingPolicypublic void setUsesServerTime(boolean usesServerTime)
public void useLocalTime()
public void useServerTime()
public boolean usesLocalTime()
public boolean usesServerTime()