Woolpack API

woolpack.acquirable
クラス AcquirableUtils

java.lang.Object
  上位を拡張 woolpack.acquirable.AcquirableUtils

public final class AcquirableUtils
extends java.lang.Object

実行権制御のユーティリティです。

作成者:
nakamura

フィールドの概要
static Acquirable<java.lang.RuntimeException> ANY
          無制限に実行権を与える実行権マネージャです。
static Acquirable<java.lang.RuntimeException> INTERRUPT
          常に実行権を与えず、実行したスレッドに対しThread.interrupt()を実行する実行権マネージャです。
static Acquirable<java.lang.InterruptedException> INTERRUPTED_EXCEPTION
          常に実行権を与えず、 実行したスレッドに対しThread.interrupt()を実行し、 InterruptedExceptionを原因として持つ IllegalStateExceptionを投げる実行権マネージャです。
static Acquirable<java.lang.RuntimeException> NONE
          常に実行権を与えない実行権マネージャです。
 
メソッドの概要
static
<C,R,E extends java.lang.Exception>
Fn<C,R,E>
acquire(Fn<? super C,? extends Acquirable<? extends E>,? extends E> acquireGetter, Fn<? super C,? extends R,? extends E> trueFn, Fn<? super C,? extends R,? extends E> falseFn)
          取得したAcquirableで実行権を制御する関数を生成します。
static
<E extends java.lang.Exception>
Acquirable<E>
chain(java.util.List<? extends Acquirable<? extends E>> list)
          コンストラクタ引数で指定されたAcquirableを順に Acquirable.acquire()する実行権マネージャを生成します。
static Acquirable<java.lang.RuntimeException> doLock(java.util.concurrent.locks.Lock lock)
          Acquirable.acquire()Lock.lock()を実行し、 Acquirable.release()Lock.unlock() を実行する実行権マネージャを生成します。
static Acquirable<java.lang.InterruptedException> doSemaphore(java.util.concurrent.Semaphore semaphore)
          Acquirable.acquire()Semaphore.acquire()を実行し、 Acquirable.release()Semaphore.release()を実行する実行権マネージャを生成します。
static
<E extends java.lang.Exception>
Fn<java.lang.Object,? extends Acquirable<java.lang.InterruptedException>,E>
doSemaphoreFactory(int permit, boolean fair)
          Acquirable.acquire()Semaphore.acquire()を実行し、 Acquirable.release()Semaphore.release()を実行する実行権マネージャ のファクトリを生成します。
static Acquirable<java.lang.RuntimeException> tryLock(java.util.concurrent.locks.Lock lock)
          Acquirable.acquire()Lock.tryLock()を実行し、 Acquirable.release()Lock.unlock()を実行する実行権マネージャを生成します。
static Acquirable<java.lang.RuntimeException> trySemaphore(java.util.concurrent.Semaphore semaphore)
          Acquirable.acquire()Semaphore.tryAcquire()を実行し、 Acquirable.release()Semaphore.release()を実行する実行権マネージャを生成します。
static
<E extends java.lang.Exception>
Fn<java.lang.Object,? extends Acquirable<E>,E>
trySemaphoreFactory(int permit, boolean fair)
          Acquirable.acquire()Semaphore.tryAcquire()を実行し、 Acquirable.release()Semaphore.release()を実行する実行権マネージャ のファクトリを生成します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

ANY

public static final Acquirable<java.lang.RuntimeException> ANY
無制限に実行権を与える実行権マネージャです。
適用しているデザインパターン:Null Object。


NONE

public static final Acquirable<java.lang.RuntimeException> NONE
常に実行権を与えない実行権マネージャです。
適用しているデザインパターン:Null Object。


INTERRUPT

public static final Acquirable<java.lang.RuntimeException> INTERRUPT
常に実行権を与えず、実行したスレッドに対しThread.interrupt()を実行する実行権マネージャです。
適用しているデザインパターン:Null Object。


INTERRUPTED_EXCEPTION

public static final Acquirable<java.lang.InterruptedException> INTERRUPTED_EXCEPTION
常に実行権を与えず、 実行したスレッドに対しThread.interrupt()を実行し、 InterruptedExceptionを原因として持つ IllegalStateExceptionを投げる実行権マネージャです。
適用しているデザインパターン:Null Object。

メソッドの詳細

acquire

public static <C,R,E extends java.lang.Exception> Fn<C,R,E> acquire(Fn<? super C,? extends Acquirable<? extends E>,? extends E> acquireGetter,
                                                                    Fn<? super C,? extends R,? extends E> trueFn,
                                                                    Fn<? super C,? extends R,? extends E> falseFn)
取得したAcquirableで実行権を制御する関数を生成します。
適用しているデザインパターン:trueFnへ委譲する処理のBalking。

型パラメータ:
C -
R -
E -
パラメータ:
acquireGetter - 実行権マネージャのファクトリ。
trueFn - 実行権の取得に成功したかAcquirableが存在しない場合の委譲先。
falseFn - 実行権の取得に失敗した場合の委譲先。
戻り値:
関数。
関連項目:
AcquireFn

doLock

public static Acquirable<java.lang.RuntimeException> doLock(java.util.concurrent.locks.Lock lock)
Acquirable.acquire()Lock.lock()を実行し、 Acquirable.release()Lock.unlock() を実行する実行権マネージャを生成します。
適用しているデザインパターン:LockのAdapter。

パラメータ:
lock - ロッククラス。
戻り値:
実行権マネージャ。
関連項目:
DoLock

doSemaphore

public static Acquirable<java.lang.InterruptedException> doSemaphore(java.util.concurrent.Semaphore semaphore)
Acquirable.acquire()Semaphore.acquire()を実行し、 Acquirable.release()Semaphore.release()を実行する実行権マネージャを生成します。
適用しているデザインパターン:SemaphoreのAdapter。

パラメータ:
semaphore - セマフォ。
戻り値:
実行権マネージャ。
関連項目:
DoSemaphore

tryLock

public static Acquirable<java.lang.RuntimeException> tryLock(java.util.concurrent.locks.Lock lock)
Acquirable.acquire()Lock.tryLock()を実行し、 Acquirable.release()Lock.unlock()を実行する実行権マネージャを生成します。
適用しているデザインパターン:LockのAdapter。

パラメータ:
lock - ロッククラス。
戻り値:
実行権マネージャ。
関連項目:
TryLock

trySemaphore

public static Acquirable<java.lang.RuntimeException> trySemaphore(java.util.concurrent.Semaphore semaphore)
Acquirable.acquire()Semaphore.tryAcquire()を実行し、 Acquirable.release()Semaphore.release()を実行する実行権マネージャを生成します。
適用しているデザインパターン:SemaphoreのAdapter。

パラメータ:
semaphore - セマフォ。
戻り値:
実行権マネージャ。
関連項目:
TrySemaphore

chain

public static <E extends java.lang.Exception> Acquirable<E> chain(java.util.List<? extends Acquirable<? extends E>> list)
コンストラクタ引数で指定されたAcquirableを順に Acquirable.acquire()する実行権マネージャを生成します。 Acquirable.acquire()による実行権の取得に失敗した場合、 既に実行権を取得したAcquirable を逆順にAcquirable.release()します。
適用しているデザインパターン:AcquirableのComposite。

型パラメータ:
E -
パラメータ:
list - 実行権マネージャの配列。
戻り値:
関数。
関連項目:
AcquirableChain

doSemaphoreFactory

public static <E extends java.lang.Exception> Fn<java.lang.Object,? extends Acquirable<java.lang.InterruptedException>,E> doSemaphoreFactory(int permit,
                                                                                                                                             boolean fair)
Acquirable.acquire()Semaphore.acquire()を実行し、 Acquirable.release()Semaphore.release()を実行する実行権マネージャ のファクトリを生成します。
適用しているデザインパターン:AcquirableのAbstract Factory。

型パラメータ:
E -
パラメータ:
permit - 初期パーミット数。
fair - フェアなセマフォを作成する場合は true。
戻り値:
関数。
関連項目:
DoSemaphoreFactory

trySemaphoreFactory

public static <E extends java.lang.Exception> Fn<java.lang.Object,? extends Acquirable<E>,E> trySemaphoreFactory(int permit,
                                                                                                                 boolean fair)
Acquirable.acquire()Semaphore.tryAcquire()を実行し、 Acquirable.release()Semaphore.release()を実行する実行権マネージャ のファクトリを生成します。
適用しているデザインパターン:AcquirableのAbstract Factory。

型パラメータ:
E -
パラメータ:
permit - 初期パーミット数。
fair - フェアなセマフォを作成する場合は true。
戻り値:
関数。
関連項目:
TrySemaphoreFactory

Woolpack API

Copyright (C) 2006-2007 Takahiro Nakamura. All rights reserved.