wt.locks
Class Lock

java.lang.Object
  extended bywt.locks.Lock
All Implemented Interfaces:
Externalizable, NetFactor, ObjectMappable, Serializable

public final class Lock
extends Object
implements ObjectMappable, Externalizable

Provides an abstraction of the locking mechanism, and holds state as a cookie for client-side operations. The business object is seized when being locked, and it is released when being unlocked.

Use the newLock static factory method(s), not the Lock constructor, to construct instances of this class. Instances must be constructed using the static factory(s), in order to ensure proper initialization of the instance.



Supported API: false

Extendable: false

See Also:
Serialized Form

Field Summary
private static String CLASSNAME
           
private  Timestamp date
           
static String DATE
          Label for the attribute; The date when a lock had been placed on an object.
static long EXTERNALIZATION_VERSION_UID
           
private  WTPrincipalReference locker
           
static String LOCKER
          Label for the attribute; The reference to a persisted principal who placed the lock on the object.
private  String note
           
static String NOTE
          Label for the attribute; The note explaining why the object was locked.
private static int NOTE_UPPER_LIMIT
           
protected static long OLD_FORMAT_VERSION_UID
           
private static String RESOURCE
           
(package private) static long serialVersionUID
           
 
Constructor Summary
Lock()
           
 
Method Summary
 ClassInfo getClassInfo()
          Returns the ClassInfo object for this class.
 String getConceptualClassname()
          Deprecated.  
 Timestamp getDate()
          Gets the value of the attribute: DATE.
 WTPrincipalReference getLocker()
          Gets the object for the association that plays role: LOCKER.
 String getNote()
          Gets the value of the attribute: NOTE.
protected  void initialize()
          Supports initialization, following construction of an instance.
 boolean isSeized()
          Tests if the object is has a lock placed on it.
private  void lockerValidate(WTPrincipalReference a_Locker)
           
static Lock newLock()
          Default factory for the class.
private  void noteValidate(String a_Note)
           
 void readExternal(ObjectInput input)
          Reads the non-transient fields of this class from an external source.
 void readExternal(PersistentRetrieveIfc input)
          Used by Persistent Data Service to populate the persistent attributes of this class from a persistent store.
private  boolean readOldVersion(ObjectInput input, long readSerialVersionUID, boolean passThrough, boolean superDone)
          Reads the non-transient fields of this class from an external source, which is not the current version.
protected  boolean readVersion(Lock thisObject, ObjectInput input, long readSerialVersionUID, boolean passThrough, boolean superDone)
          Reads the non-transient fields of this class from an external source.
 void release()
          Low-level mechanism that releases a lock on an object.
 void seize(WTPrincipalReference locker, String note)
          Low-level mechanism that places a lock on an object.
protected  void setDate(Timestamp a_Date)
          Sets the value of the attribute: DATE.
protected  void setLocker(WTPrincipalReference a_Locker)
          Sets the object for the association that plays role: LOCKER.
protected  void setNote(String a_Note)
          Sets the value of the attribute: NOTE.
 String toString()
          Returns the conceptual (modeled) name for the class.
 void writeExternal(ObjectOutput output)
          Writes the non-transient fields of this class to an external source.
 void writeExternal(PersistentStoreIfc output)
          Used by Persistent Data Service to obtain the values of the persistent attributes of this class, so they can be written to a persistent store.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

RESOURCE

private static final String RESOURCE
See Also:
Constant Field Values

CLASSNAME

private static final String CLASSNAME

DATE

public static final String DATE
Label for the attribute; The date when a lock had been placed on an object.

Supported API: false

See Also:
Constant Field Values

date

private Timestamp date

NOTE

public static final String NOTE
Label for the attribute; The note explaining why the object was locked.

Supported API: false

See Also:
Constant Field Values

NOTE_UPPER_LIMIT

private static int NOTE_UPPER_LIMIT

note

private String note

LOCKER

public static final String LOCKER
Label for the attribute; The reference to a persisted principal who placed the lock on the object.

Supported API: false

See Also:
Constant Field Values

locker

private WTPrincipalReference locker

serialVersionUID

static final long serialVersionUID
See Also:
Constant Field Values

EXTERNALIZATION_VERSION_UID

public static final long EXTERNALIZATION_VERSION_UID
See Also:
Constant Field Values

OLD_FORMAT_VERSION_UID

protected static final long OLD_FORMAT_VERSION_UID
See Also:
Constant Field Values
Constructor Detail

Lock

public Lock()
Method Detail

writeExternal

public void writeExternal(ObjectOutput output)
                   throws IOException
Writes the non-transient fields of this class to an external source.

Supported API: false

Specified by:
writeExternal in interface Externalizable
Parameters:
output -
Throws:
IOException

readExternal

public void readExternal(ObjectInput input)
                  throws IOException,
                         ClassNotFoundException
Reads the non-transient fields of this class from an external source.

Supported API: false

Specified by:
readExternal in interface Externalizable
Parameters:
input -
Throws:
IOException
ClassNotFoundException

readVersion

protected boolean readVersion(Lock thisObject,
                              ObjectInput input,
                              long readSerialVersionUID,
                              boolean passThrough,
                              boolean superDone)
                       throws IOException,
                              ClassNotFoundException
Reads the non-transient fields of this class from an external source.

Supported API: false

Parameters:
thisObject -
input -
readSerialVersionUID -
passThrough -
superDone -
Returns:
boolean
Throws:
IOException
ClassNotFoundException

readOldVersion

private boolean readOldVersion(ObjectInput input,
                               long readSerialVersionUID,
                               boolean passThrough,
                               boolean superDone)
                        throws IOException,
                               ClassNotFoundException
Reads the non-transient fields of this class from an external source, which is not the current version.

Parameters:
input -
readSerialVersionUID -
passThrough -
superDone -
Returns:
boolean
Throws:
IOException
ClassNotFoundException

writeExternal

public void writeExternal(PersistentStoreIfc output)
                   throws SQLException,
                          DatastoreException
Used by Persistent Data Service to obtain the values of the persistent attributes of this class, so they can be written to a persistent store.

(Not intended for general use.)

Supported API: false

Specified by:
writeExternal in interface ObjectMappable
Parameters:
output -
Throws:
SQLException
DatastoreException

readExternal

public void readExternal(PersistentRetrieveIfc input)
                  throws SQLException,
                         DatastoreException
Used by Persistent Data Service to populate the persistent attributes of this class from a persistent store.

(Not intended for general use.)

Supported API: false

Specified by:
readExternal in interface ObjectMappable
Parameters:
input -
Throws:
SQLException
DatastoreException

getConceptualClassname

public String getConceptualClassname()
Deprecated.  

Returns the conceptual (modeled) name for the class.

Supported API: false

Specified by:
getConceptualClassname in interface NetFactor
Returns:
String

toString

public String toString()
Returns the conceptual (modeled) name for the class.

Supported API: false

Returns:
String

getClassInfo

public ClassInfo getClassInfo()
                       throws WTIntrospectionException
Returns the ClassInfo object for this class.

Supported API: false

Specified by:
getClassInfo in interface NetFactor
Returns:
ClassInfo
Throws:
WTIntrospectionException

getDate

public Timestamp getDate()
Gets the value of the attribute: DATE. The date when a lock had been placed on an object.

Supported API: false

Returns:
Timestamp

setDate

protected void setDate(Timestamp a_Date)
                throws WTPropertyVetoException
Sets the value of the attribute: DATE. The date when a lock had been placed on an object.

Supported API: false

Parameters:
a_Date -
Throws:
WTPropertyVetoException

getNote

public String getNote()
Gets the value of the attribute: NOTE. The note explaining why the object was locked.

Supported API: false

Returns:
String

setNote

protected void setNote(String a_Note)
                throws WTPropertyVetoException
Sets the value of the attribute: NOTE. The note explaining why the object was locked.

Supported API: false

Parameters:
a_Note -
Throws:
WTPropertyVetoException

noteValidate

private void noteValidate(String a_Note)
                   throws WTPropertyVetoException
Parameters:
a_Note -
Throws:
WTPropertyVetoException

getLocker

public WTPrincipalReference getLocker()
Gets the object for the association that plays role: LOCKER. The reference to a persisted principal who placed the lock on the object.

Supported API: false

Returns:
WTPrincipalReference

setLocker

protected void setLocker(WTPrincipalReference a_Locker)
                  throws WTPropertyVetoException
Sets the object for the association that plays role: LOCKER. The reference to a persisted principal who placed the lock on the object.

Supported API: false

Parameters:
a_Locker -
Throws:
WTPropertyVetoException

lockerValidate

private void lockerValidate(WTPrincipalReference a_Locker)
                     throws WTPropertyVetoException
Parameters:
a_Locker -
Throws:
WTPropertyVetoException

seize

public void seize(WTPrincipalReference locker,
                  String note)
           throws WTException,
                  LockException,
                  WTPropertyVetoException
Low-level mechanism that places a lock on an object.

Supported API: false

Parameters:
locker -
note -
Throws:
WTException
LockException
WTPropertyVetoException

release

public void release()
             throws WTException,
                    LockException,
                    WTPropertyVetoException
Low-level mechanism that releases a lock on an object.

Supported API: false

Throws:
WTException
LockException
WTPropertyVetoException

isSeized

public boolean isSeized()
Tests if the object is has a lock placed on it.

Supported API: false

Returns:
boolean

newLock

public static Lock newLock()
                    throws WTException
Default factory for the class.

Supported API: false

Returns:
Lock
Throws:
WTException

initialize

protected void initialize()
                   throws WTException
Supports initialization, following construction of an instance. Invoked by "new" factory having the same signature.

Supported API: false

Throws:
WTException