public class S_LockObject extends S_TieSystemObject
S_LibraryObject.MapInfo
CASCADE_OP_COPY_PUBLICOBJECT_TO_CATEGORY, CASCADE_OP_COPY_PUBLICOBJECT_TO_RIGHT_RELATIONSHIP, CASCADE_OP_DELETE_FAMILY_TO_VERSIONSERIES, CASCADE_OP_DELETE_PUBLICOBJECT_TO_LEFT_RELATIONSHIP, CASCADE_OP_DELETE_PUBLICOBJECT_TO_RIGHT_RELATIONSHIP, CASCADE_OP_DELETE_PUBLICOBJECT_TO_VERSIONDESCRIPTION, CASCADE_OP_DELETE_RELATIONSHIP_TO_LEFT_PUBLICOBJECT, CASCADE_OP_DELETE_RELATIONSHIP_TO_RIGHT_PUBLICOBJECT, CASCADE_OP_DELETE_VERSIONDESCRIPTION_TO_PUBLICOBJECT, CASCADE_OP_DELETE_VERSIONDESCRIPTION_TO_VERSIONSERIES, CASCADE_OP_DELETE_VERSIONSERIES_TO_FAMILY, CASCADE_OP_DELETE_VERSIONSERIES_TO_VERSIONDESCRIPTION, CASCADE_OP_FREE_CATEGORY_TO_PUBLICOBJECT, CASCADE_OP_FREE_CATEGORY_TO_SCHEMAOBJECT, CASCADE_OP_FREE_CATEGORY_TO_SYSTEMOBJECT, CASCADE_OP_FREE_FAMILY_TO_VERSIONSERIES, CASCADE_OP_FREE_PUBLICOBJECT_TO_CATEGORY, CASCADE_OP_FREE_PUBLICOBJECT_TO_LEFT_RELATIONSHIP, CASCADE_OP_FREE_PUBLICOBJECT_TO_RIGHT_RELATIONSHIP, CASCADE_OP_FREE_PUBLICOBJECT_TO_VERSIONDESCRIPTION, CASCADE_OP_FREE_RELATIONSHIP_TO_LEFT_PUBLICOBJECT, CASCADE_OP_FREE_RELATIONSHIP_TO_RIGHT_PUBLICOBJECT, CASCADE_OP_FREE_SCHEMAOBJECT_TO_CATEGORY, CASCADE_OP_FREE_SYSTEMOBJECT_TO_CATEGORY, CASCADE_OP_FREE_VERSIONDESCRIPTION_TO_PUBLICOBJECT, CASCADE_OP_FREE_VERSIONDESCRIPTION_TO_VERSIONSERIES, CASCADE_OP_FREE_VERSIONSERIES_TO_FAMILY, CASCADE_OP_FREE_VERSIONSERIES_TO_VERSIONDESCRIPTION, CASCADE_OP_UNDEFINED, CASCADE_OP_UNDELETE_FAMILY_TO_VERSIONSERIES, CASCADE_OP_UNDELETE_PUBLICOBJECT_TO_LEFT_RELATIONSHIP, CASCADE_OP_UNDELETE_PUBLICOBJECT_TO_RIGHT_RELATIONSHIP, CASCADE_OP_UNDELETE_PUBLICOBJECT_TO_VERSIONDESCRIPTION, CASCADE_OP_UNDELETE_RELATIONSHIP_TO_LEFT_PUBLICOBJECT, CASCADE_OP_UNDELETE_RELATIONSHIP_TO_RIGHT_PUBLICOBJECT, CASCADE_OP_UNDELETE_VERSIONDESCRIPTION_TO_PUBLICOBJECT, CASCADE_OP_UNDELETE_VERSIONDESCRIPTION_TO_VERSIONSERIES, CASCADE_OP_UNDELETE_VERSIONSERIES_TO_FAMILY, CASCADE_OP_UNDELETE_VERSIONSERIES_TO_VERSIONDESCRIPTION, CASCADE_OP_UPDATE_CATEGORY_TO_PUBLICOBJECT, CASCADE_OP_UPDATE_CATEGORY_TO_SCHEMAOBJECT, CASCADE_OP_UPDATE_CATEGORY_TO_SYSTEMOBJECT, CASCADE_OP_UPDATE_PUBLICOBJECT_TO_CATEGORY, CASCADE_OP_UPDATE_SCHEMAOBJECT_TO_CATEGORY, CASCADE_OP_UPDATE_SYSTEMOBJECT_TO_CATEGORY, DEFAULT_RENDERER, m_ClassId, m_Id, m_Session
Constructor and Description |
---|
S_LockObject(S_LibrarySession session,
Long classId)
Constructs a S_LockObject object.
|
S_LockObject(S_LibrarySession session,
S_LibraryObjectData data)
Constructs a S_LockObject object - standard variant.
|
Modifier and Type | Method and Description |
---|---|
int |
clearReferringPublicObjects()
Release references to an expired LockObject.
|
protected static S_LibraryObjectDefinition |
createDefaultDefinition(S_LibrarySession sess)
Creates a default lockobject definition for locking operations.
|
protected void |
deriveDefinition(S_LibraryObjectDefinition def)
Add to the S_LibraryObjectDefinition
for this class.
|
protected void |
extendedPreFree(OperationState opState,
S_LibraryObjectDefinition def)
operations to be performed before freeing
an object.
|
protected void |
extendedPreInsert(OperationState opState,
S_LibraryObjectDefinition sdef)
Performs pre-insert validation.
|
long |
getLockedForSessionId()
Returns the session id of the session holding this SessionLock
or 0 if the LockState of this object is not LOCKSTATE_SESSIONLOCK.
|
protected Vector |
getReferringPublicObjects(SortSpecification sort)
Gets the PublicObjects that refer to this LockObject
|
protected void |
handleLockPolicy(S_PublicObject po,
S_LibraryObjectDefinition def,
String operationType)
handleLockPolicy - handle any Policy actions associated
with locking, unlocking , modifying a locked PublicObject.
|
protected void |
invokeDefaultMethodForPolicyOperation(S_PublicObject po,
S_LibraryObjectDefinition def,
String opType)
If there is no policy for the operation type, invoke the methods
directly which mimic the classic behavior
|
boolean |
isLockedForSession()
Returns true if the LockState of this object is LOCKSTATE_SESSIONLOCK
If the PublicObject that points to this LockObject has a session
lock, this will return true.
|
boolean |
isLockedForSessionByCurrentSession()
Returns true if the PublicObject that refers to this LockObject has
a session lock, and it is held by the invoking session.
|
protected boolean |
isShared()
Returns true if this LockObject is referenced by
multiple PublicObjects
|
boolean |
isTimeLockedByCurrentSessionUser()
Returns true if there is a TIMED USER LOCK on this object and it is
held by the currently logged in user of the current session.
|
boolean |
isUserLockedByCurrentSessionUser()
Returns true if the LockState of this object is LOCKSTATE_USERLOCK and it is
held by the currently logged in user of the current session.
|
protected void |
postSessionLockedEvent(S_PublicObject po)
If we session locked, we will post an event on behalf of the PO that
got session locked
FIXME: Verify if this code is really needed
|
protected void |
postSessionLockFreedEvent(S_PublicObject po)
If we freed a session lock, we will post an event on behalf of the PO that
freed the session lock
FIXME: Verify if this code is really needed
|
protected void |
postSessionLockReleasedEvent(S_PublicObject po)
If we released a session lock, we will post an event on behalf of the PO that
released the session lock
FIXME: Verify if this code is really needed
|
String |
toString()
Return information regarding the LockState and LockHolder
|
protected static S_LockObject[] |
vectorToSLockObjectArray(S_LibrarySession sess,
Vector vector) |
void |
verifyCanDeleteLockedPublicObject(S_PublicObject po)
Checks if the object lock state is one of the deletable states.
|
void |
verifyCanLockPublicObject(S_PublicObject spo)
Checks the current lock state.
|
void |
verifyCanModifyLockedPublicObject(S_PublicObject po)
Checks the current lock state.
|
void |
verifyCanModifyLockedPublicObjectIfAdmin(S_PublicObject po) |
void |
verifyCanUnlockPublicObject(S_PublicObject spo)
Checks if the current session can unlock the object.
|
void |
verifyCanUpdateLockObject(S_PublicObject spo)
Checks if this lockobject can be modified
The rules for modifying a lock object are as follows
For non admin users, Hard lock and Soft lock
can be modified only if you have Lock access on the PublicObject
that references this lock.
|
addCategory, cascadeFree, createCategories, extendedPostInsert, extendedPostUpdate, extendedPreUpdate, getCategories, getCategories, getCategories, handleCascade, removeCategories, updateCategories, verifyCanCreate, verifyCanFree, verifyCanUpdate
added, applyValueDefault, associatedPostFree, associatedPostInsert, associatedPreInsert, canPurge, cascadeCopy, cascadeUpdate, checkRequiredForInsert, checkSettable, clearArrayTypeAttributeValues, clearMapTypeAttributeValues, clonePublicObjectAttribute, constructIdArray, constructIdArray, copy, copy, copyVectorToLibraryObjectArray, createDefaultPolicyPropertyBundle, createDefaultPropertyBundle, createDefaultPropertyBundle, createInstance, deleteRows, deriveOwnerUniqueName, deriveOwnerUniqueName, deriveUppercasedAttribute, determineClassDomain, determinePolicy, determinePolicy, determineValueDefault, determineValueDomain, dispose, DYNInvalidateState, DYNLockRows, equals, equals, executePolicyOperation, extendedPostFree, extendedPreCopy, findPolicyFromPropertyBundleAv, free, free, getAttribute, getAttributeByUpperCaseName, getAuditCertificateName, getAuditDomainContext, getAuditEventFolderContext, getClassData, getClassId, getClassName, getClassObject, getContentStorageManager, getData, getDefinition, getEffectivePolicyActionContexts, getEffectivePolicyListElements, getEventualAttributeByUpperCaseName, getId, getLibraryConnection, getName, getObjectReferenceAttribute, getPropertyBundle, getPropertyValue, getResourceString, getResourceString, getService, getSession, getSessionInterface, getTraceLogger, handleEvent, hashCode, hasNameAttribute, insertReferenceAttributes, insertRow, insertRows, invalidateState, invokeOperation, invokePolicyMethod, isAuditCertificateSecured, isBroadcastCreateEventEnabled, isInstanceOf, isPersistent, issueCascade, isTraced, lockRows, postEvent, postEvent, postFree, postInsert, postUpdate, preFree, preInsert, preUpdate, privilegedUpdate, removed, renderAsReader, renderAsStream, setAttribute, setAttribute, setAttributes, trace, update, updateRows, validateStringArray, verifyCanGetContent, verifyCanSetContent, verifyCanSetPolicy, verifyPersistent, verifyWriteableTransactionInProgress
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
getAttributeByUpperCaseName, getClassId, getId, getSessionInterface
getTraceLogger, isTraced, trace
public S_LockObject(S_LibrarySession session, S_LibraryObjectData data) throws IfsException
session
- current LibrarySessiondata
- data componentIfsException
- if the operation failspublic S_LockObject(S_LibrarySession session, Long classId) throws IfsException
session
- current LibrarySessionclassId
- class idIfsException
- if the operation failsprotected void deriveDefinition(S_LibraryObjectDefinition def) throws IfsException
deriveDefinition
in class S_SystemObject
def
- the S_LibraryObjectDefinition that contains
the definition of the target object.IfsException
- if operation fails.protected void extendedPreInsert(OperationState opState, S_LibraryObjectDefinition sdef) throws IfsException
extendedPreInsert
in class S_SystemObject
opState
- operation statesdef
- the definition of the object
being createdIfsException
- if operation failsprotected void extendedPreFree(OperationState opState, S_LibraryObjectDefinition def) throws IfsException
extendedPreFree
in class S_LibraryObject
opState
- current operation statedef
- current object definitionIfsException
- if operation fails.public boolean isLockedForSession() throws IfsException
IfsException
- if operation fails.public long getLockedForSessionId() throws IfsException
IfsException
- if operation fails.public boolean isLockedForSessionByCurrentSession() throws IfsException
IfsException
- if operation fails.public boolean isUserLockedByCurrentSessionUser() throws IfsException
IfsException
- if operation fails.public boolean isTimeLockedByCurrentSessionUser() throws IfsException
IfsException
- if operation fails.protected void handleLockPolicy(S_PublicObject po, S_LibraryObjectDefinition def, String operationType) throws IfsException
po
- the PublicObject that invoked thisdef
- the definition for the publicobject that is being updatedoperationType
- the operation type for the policyIfsException
- if the operation failsprotected void invokeDefaultMethodForPolicyOperation(S_PublicObject po, S_LibraryObjectDefinition def, String opType) throws IfsException
IfsException
public void verifyCanLockPublicObject(S_PublicObject spo) throws IfsException
spo
- the PublicObject that refers to usIfsException
- If the lock is in one of the above states.public void verifyCanUnlockPublicObject(S_PublicObject spo) throws IfsException
spo
- that refers to this PublicObjectIfsException
- If the unlock operation cannot be done.public void verifyCanModifyLockedPublicObject(S_PublicObject po) throws IfsException
IfsException
- If the lock is in one of the above states.
FIXME we pass in the po since all other policy operations take the po as an argpublic void verifyCanModifyLockedPublicObjectIfAdmin(S_PublicObject po) throws IfsException
IfsException
- If the lock is in one of the above states.
FIXME we pass in the po since all other policy operations take the po as an argpublic void verifyCanDeleteLockedPublicObject(S_PublicObject po) throws IfsException
IfsException
- If the object cannot be deleted because of it's lock.
FIXME we pass in the po since all other policy operations take the po as an argpublic void verifyCanUpdateLockObject(S_PublicObject spo) throws IfsException
spo
- that refers to this PublicObjectIfsException
- If the modify operation cannot be done.protected void postSessionLockedEvent(S_PublicObject po) throws IfsException
po
- , the PublicObject that refers to this lockobjectIfsException
- If the object cannot be deleted because of it's lock.protected void postSessionLockReleasedEvent(S_PublicObject po) throws IfsException
po
- , the PublicObject that refers to this lockobjectIfsException
- If the object cannot be deleted because of it's lock.protected void postSessionLockFreedEvent(S_PublicObject po) throws IfsException
po
- , the PublicObject that refers to this lockobjectIfsException
- If the object cannot be deleted because of it's lock.protected static S_LibraryObjectDefinition createDefaultDefinition(S_LibrarySession sess) throws IfsException
sess
- server side representation of current sessionIfsException
- if the operation failsprotected Vector getReferringPublicObjects(SortSpecification sort) throws IfsException
sort
- SortSpecification to be usedIfsException
- if the operation failsprotected boolean isShared() throws IfsException
IfsException
- if the operation failspublic int clearReferringPublicObjects() throws IfsException
IfsException
- if the operation failspublic String toString()
toString
in class S_LibraryObject
protected static S_LockObject[] vectorToSLockObjectArray(S_LibrarySession sess, Vector vector) throws IfsException
IfsException
Copyright © 2023. All rights reserved.