Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.arjuna.ats.txoj
Class Lock

    java.lang.Object
      com.arjuna.ats.arjuna.StateManager
          com.arjuna.ats.txoj.Lock

public class Lock
extends StateManager

Instances of this class (or derived user classes) are used when trying to set a lock. The default implementation provides a single-write/multiple-reader policy. However, by overridding the appropriate methods, other, type-specific concurrency control locks can be implemented.

Since:
  JTS 1.0.
Version:
  $Id: Lock.java 2342 2006-03-30 13:06:17Z $
Author:
  Mark Little (mark@arjuna.com)

Field Summary

Fields inherited from class com.arjuna.ats.arjuna.StateManager
`modifyingActions, objectName, objectUid, smAttributes, usingActions`

Constructor Summary
`Lock()` Create a new lock.
`Lock(int lm)` Create a new Lock object and initialise it.
`Lock(Uid storeUid)` This is used when re-initialising a Lock after retrieval from the object store.

Method Summary
`void` | `changeHierarchy(ActionHierarchy newOwner)` Change the transaction hierarchy associated with the lock to that provided.
`boolean` | `conflictsWith(Lock otherLock)` Implementation of Lock conflict check.
`boolean` | `equals(Lock otherLock)` Are the two locks equal?
`boolean` | `equals(java.lang.Object otherLock)` Overrides Object.equals()
`void` | `finalize()` General clean up as Lock is deleted.
`ActionHierarchy` | `getAllOwners()`
`Uid` | `getCurrentOwner()`
`int` | `getCurrentStatus()`
`protected Lock` | `getLink()` Get the next lock in the chain.
`int` | `getLockMode()`
`boolean` | `modifiesObject()` Does this lock imply a modification of the object it is applied to? For example, a READ lock would return false, but a WRITE lock would return true.
`void` | `print(java.io.PrintWriter strm)` functions inherited from StateManager
`void` | `propagate()` Propagate the lock.
`boolean` | `restore_state(InputObjectState os, int ot)` Carefully restore the state of a Lock.
`boolean` | `save_state(OutputObjectState os, int ot)` Save the state of a lock object.
`protected void` | `setLink(Lock pointTo)` Set the next lock in the chain.
`java.lang.String` | `toString()` Overrides Object.toString()
`java.lang.String` | `type()` Overrides StateManager.type()

Methods inherited from class com.arjuna.ats.arjuna.StateManager
`activate, activate, attributes, cleanup, deactivate, deactivate, deactivate, destroy, disable, forgetAction, get_uid, getMutex, getStore, getStoreRoot, loadObjectState, lockMutex, modified, ObjectType, packHeader, persist, rememberAction, setStatus, setupStore, setupStore, status, terminate, tryLockMutex, unlockMutex, unpackHeader`

Methods inherited from class java.lang.Object
`clone, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### Lock

    public Lock()

  Create a new lock.

### Lock

    public Lock(int lm)

  Create a new Lock object and initialise it. Mode is based upon argument. The value of BasicAction.Current determines the values of the remainder of the fields. If there is no action running the owner field is set to be the application uid created when the application starts.

### Lock

    public Lock(Uid storeUid)

  This is used when re-initialising a Lock after retrieval from the object store.

Method Detail

### finalize

    public void finalize()
                  throws java.lang.Throwable

  General clean up as Lock is deleted.

  Overrides:
    `finalize` in class `StateManager`
  Throws:
    `java.lang.Throwable`

### getLockMode

    public final int getLockMode()

  Returns:
    the mode this lock is currently in, e.g., `LockMode.READ`.

### getCurrentOwner

    public final Uid getCurrentOwner()

  Returns:
    the identity of the lock's current owner (the transaction id).

### getAllOwners

    public final ActionHierarchy getAllOwners()

  Returns:
    the transaction hierarchy associated with this lock.

### getCurrentStatus

    public final int getCurrentStatus()

  Returns:
    the lock's current status.

### changeHierarchy

    public final void changeHierarchy(ActionHierarchy newOwner)

  Change the transaction hierarchy associated with the lock to that provided.

### propagate

    public final void propagate()

  Propagate the lock.

### modifiesObject

    public boolean modifiesObject()

  Does this lock imply a modification of the object it is applied to? For example, a READ lock would return false, but a WRITE lock would return true.

  Returns:
    `true` if this lock implies the object's state will be modified, `false` otherwise.

### conflictsWith

    public boolean conflictsWith(Lock otherLock)

  Implementation of Lock conflict check. Returns TRUE if there is conflict FALSE otherwise. Does not take account of relationship in the atomic action hierarchy since this is a function of LockManager.

  Returns:
    `true` if this lock conflicts with the parameter, `false` otherwise.

### equals

    public boolean equals(java.lang.Object otherLock)

  Overrides Object.equals()

### equals

    public boolean equals(Lock otherLock)

  Are the two locks equal?

  Returns:
    `true` if the locks are equal, `false` otherwise.

### toString

    public java.lang.String toString()

  Overrides Object.toString()

### print

    public void print(java.io.PrintWriter strm)

  functions inherited from StateManager

  Overrides:
    `print` in class `StateManager`

### restore_state

    public boolean restore_state(InputObjectState os,
                                 int ot)

  Carefully restore the state of a Lock.

  Overrides:
    `restore_state` in class `StateManager`
  Returns:
    `true` if successful, `false` otherwise.

### save_state

    public boolean save_state(OutputObjectState os,
                              int ot)

  Save the state of a lock object.

  Overrides:
    `save_state` in class `StateManager`
  Returns:
    `true` if successful, `false` otherwise.

### type

    public java.lang.String type()

  Overrides StateManager.type()

  Overrides:
    `type` in class `StateManager`

### getLink

    protected Lock getLink()

  Get the next lock in the chain.

### setLink

    protected void setLink(Lock pointTo)

  Set the next lock in the chain.

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD