Package org.eclipse.net4j.util.concurrent

## Class RWLockManager<OBJECT,​CONTEXT>

- java.lang.Object
- - org.eclipse.net4j.util.event.Notifier
  - - org.eclipse.net4j.util.lifecycle.Lifecycle
    - - org.eclipse.net4j.util.concurrent.RWLockManager<OBJECT,​CONTEXT>

- All Implemented Interfaces:
    `IRWLockManager<OBJECT,​CONTEXT>`, `INotifier`, `INotifier.INotifier2`, `IDeactivateable`, `ILifecycle`, `ILifecycle.DeferrableActivation`

      @Deprecated
      public class RWLockManager<OBJECT,​CONTEXT>
      extends Lifecycle
      implements IRWLockManager<OBJECT,​CONTEXT>

  Deprecated.
  As of 3.2 use `RWOLockManager`.
  Support Multiple reads/no write and upgrade lock from read to write. Many context could request `write` lock at the same time. It will privileges first context that has already a `read` lock. If no one has any read lock, it's "first come first serve".
  Since:
    2.0
  Author:
    Simon McDuff

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `protected static interface` | `RWLockManager.LockEntry<OBJECT,​CONTEXT>` | Deprecated. Use `RWOLockManager`
    `protected static interface` | `RWLockManager.LockEntryHandler<OBJECT,​CONTEXT>` | Deprecated. Use `RWOLockManager`
    `protected static interface` | `RWLockManager.LockStrategy<OBJECT,​CONTEXT>` | Deprecated. Use `RWOLockManager`

    - ### Nested classes/interfaces inherited from interface org.eclipse.net4j.util.lifecycle.ILifecycle

      `ILifecycle.DeferrableActivation`

    - ### Nested classes/interfaces inherited from interface org.eclipse.net4j.util.event.INotifier

      `INotifier.INotifier2`

    - ### Nested classes/interfaces inherited from interface org.eclipse.net4j.util.concurrent.IRWLockManager

      `IRWLockManager.LockType`

  - ### Field Summary

    - ### Fields inherited from class org.eclipse.net4j.util.lifecycle.Lifecycle

      `USE_LABEL`

    - ### Fields inherited from interface org.eclipse.net4j.util.concurrent.IRWLockManager

      `NO_WAIT, WAIT`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `RWLockManager()` | Deprecated.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected void` | `changeContext​(CONTEXT oldContext, CONTEXT newContext)` | Deprecated.
    `protected RWLockManager.LockEntry<OBJECT,​CONTEXT>` | `getLockEntry​(OBJECT objectToLock)` | Deprecated.
    `protected RWLockManager.LockStrategy<OBJECT,​CONTEXT>` | `getLockingStrategy​(IRWLockManager.LockType type)` | Deprecated.
    `protected void` | `handleLockEntries​(CONTEXT context, RWLockManager.LockEntryHandler<OBJECT,​CONTEXT> handler)` | Deprecated.
    `boolean` | `hasLock​(IRWLockManager.LockType type, CONTEXT context, OBJECT objectToLock)` | Deprecated.
    `boolean` | `hasLockByOthers​(IRWLockManager.LockType type, CONTEXT context, OBJECT objectToLock)` | Deprecated.
    `void` | `lock​(IRWLockManager.LockType type, CONTEXT context, java.util.Collection<? extends OBJECT> objectsToLock, long timeout)` | Deprecated.
    `void` | `lock​(IRWLockManager.LockType type, CONTEXT context, OBJECT objectToLock, long timeout)` | Deprecated.
    `void` | `unlock​(CONTEXT context)` | Deprecated. Attempts to release all locks(read and write) for a given context.
    `void` | `unlock​(IRWLockManager.LockType type, CONTEXT context, java.util.Collection<? extends OBJECT> objectsToUnlock)` | Deprecated. Attempts to release for a given locktype, context and objects.

    - ### Methods inherited from class org.eclipse.net4j.util.lifecycle.Lifecycle

      `activate, checkActive, checkArg, checkArg, checkInactive, checkNull, checkState, checkState, deactivate, deferredActivate, doActivate, doAfterActivate, doBeforeActivate, doBeforeDeactivate, doDeactivate, dump, getLifecycleState, isActive, isDeferredActivation, toString`

    - ### Methods inherited from class org.eclipse.net4j.util.event.Notifier

      `addListener, addUniqueListener, fireEvent, fireEvent, fireEvent, fireThrowable, firstListenerAdded, getListeners, getNotificationService, hasListener, hasListeners, lastListenerRemoved, listenerAdded, listenerRemoved, removeListener`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface org.eclipse.net4j.util.event.INotifier

      `addListener, getListeners, hasListeners, removeListener`

- - ### Constructor Detail

    - #### RWLockManager

          public RWLockManager()

      Deprecated.

  - ### Method Detail

    - #### lock

          public void lock​(IRWLockManager.LockType type,
                           CONTEXT context,
                           java.util.Collection<? extends OBJECT> objectsToLock,
                           long timeout)
                    throws java.lang.InterruptedException

      Deprecated.
      Specified by:
        `lock` in interface `IRWLockManager<OBJECT,​CONTEXT>`
      Throws:
        `java.lang.InterruptedException`
      Since:
        3.0

    - #### lock

          public void lock​(IRWLockManager.LockType type,
                           CONTEXT context,
                           OBJECT objectToLock,
                           long timeout)
                    throws java.lang.InterruptedException

      Deprecated.
      Specified by:
        `lock` in interface `IRWLockManager<OBJECT,​CONTEXT>`
      Throws:
        `java.lang.InterruptedException`
      Since:
        3.0

    - #### unlock

          public void unlock​(IRWLockManager.LockType type,
                             CONTEXT context,
                             java.util.Collection<? extends OBJECT> objectsToUnlock)

      Deprecated.
      Attempts to release for a given locktype, context and objects.
      Specified by:
        `unlock` in interface `IRWLockManager<OBJECT,​CONTEXT>`
      Throws:
        `java.lang.IllegalMonitorStateException` - Unlocking objects without lock.
      Since:
        3.0

    - #### unlock

          public void unlock​(CONTEXT context)

      Deprecated.
      Attempts to release all locks(read and write) for a given context.
      Specified by:
        `unlock` in interface `IRWLockManager<OBJECT,​CONTEXT>`

    - #### hasLock

          public boolean hasLock​(IRWLockManager.LockType type,
                                 CONTEXT context,
                                 OBJECT objectToLock)

      Deprecated.
      Specified by:
        `hasLock` in interface `IRWLockManager<OBJECT,​CONTEXT>`
      Since:
        3.0

    - #### hasLockByOthers

          public boolean hasLockByOthers​(IRWLockManager.LockType type,
                                         CONTEXT context,
                                         OBJECT objectToLock)

      Deprecated.
      Specified by:
        `hasLockByOthers` in interface `IRWLockManager<OBJECT,​CONTEXT>`
      Since:
        3.0

    - #### handleLockEntries

          protected void handleLockEntries​(CONTEXT context,
                                           RWLockManager.LockEntryHandler<OBJECT,​CONTEXT> handler)

      Deprecated.
      Since:
        3.1

    - #### getLockEntry

          protected RWLockManager.LockEntry<OBJECT,​CONTEXT> getLockEntry​(OBJECT objectToLock)

      Deprecated.
      Since:
        3.1

    - #### getLockingStrategy

          protected RWLockManager.LockStrategy<OBJECT,​CONTEXT> getLockingStrategy​(IRWLockManager.LockType type)

      Deprecated.
      Since:
        3.1

    - #### changeContext

          protected void changeContext​(CONTEXT oldContext,
                                       CONTEXT newContext)

      Deprecated.
      Since:
        3.1