org.seasar.jca.work
クラス WorkWrapper

java.lang.Object
  上位を拡張 org.seasar.jca.work.WorkWrapper
すべての実装されたインタフェース:
Runnable

public class WorkWrapper
extends Object
implements Runnable

WorkExecutorServiceで実行するためにRunnableインタフェースを 実装したラッパークラスです.

作成者:
koichik

フィールドの概要
protected  long acceptedTime
          Workを受け付けた時間
protected static ThreadLocal<Work> currentWork
          現在のスレッドで実行中のWork
protected  WorkException exception
          Workの実行中に発生した例外
protected  ExecutionContext execContext
          Workの実行コンテキスト
protected  CountDownLatch latch
          Workの実行と同期するためのラッチ
protected  boolean started
          Workの実行が開始していればtrue
protected  long startTimeout
          Workを受け付けてからのタイムアウト時間 (ミリ秒単位)
protected  Work work
          実行するWork
protected  WorkListener workListener
          Workの実行イベントを受け取るリスナ
protected  WorkManagerImpl workManager
          Workを受け付けたワークマネージャ
 
コンストラクタの概要
WorkWrapper(WorkManagerImpl workManager, Work work, int latchCount)
          インスタンスを構築します.
WorkWrapper(WorkManagerImpl workManager, Work work, long startTimeout, ExecutionContext execContext, WorkListener workListener, int latchCount)
          インスタンスを構築します.
 
メソッドの概要
protected  void complete()
          Workの実行を完了します.
protected  void doWork()
          Workを実行します.
 long execute(Executor executor)
          Executor上でWorkを実行します.
protected  void fireWorkAcceptedEvent()
          Workが受け付けられたことを通知します.
protected  void fireWorkCompletedEvent()
          Workの実行が完了したことを通知します.
protected  void fireWorkRejectedEvent()
          Workの実行が破棄されたことを通知します.
protected  void fireWorkStartedEvent()
          Workの実行が開始されることを通知します.
static Work getCurrentWork()
          現在のスレッドで実行中のWorkを返します.
protected  boolean isTimedout()
          Workが受け付けられてからの経過時間がタイムアウト時間を超えている場合はtrueを返します.
 void release()
          Workを解放します.
 void run()
           
protected  boolean start()
          Workの実行を開始します.
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

currentWork

protected static ThreadLocal<Work> currentWork
現在のスレッドで実行中のWork


workManager

protected WorkManagerImpl workManager
Workを受け付けたワークマネージャ


work

protected Work work
実行するWork


startTimeout

protected long startTimeout
Workを受け付けてからのタイムアウト時間 (ミリ秒単位)


execContext

protected ExecutionContext execContext
Workの実行コンテキスト


workListener

protected WorkListener workListener
Workの実行イベントを受け取るリスナ


latch

protected CountDownLatch latch
Workの実行と同期するためのラッチ


acceptedTime

protected long acceptedTime
Workを受け付けた時間


started

protected boolean started
Workの実行が開始していればtrue


exception

protected WorkException exception
Workの実行中に発生した例外

コンストラクタの詳細

WorkWrapper

public WorkWrapper(WorkManagerImpl workManager,
                   Work work,
                   int latchCount)
インスタンスを構築します.

パラメータ:
workManager - ワークマネージャ
work - Work
latchCount - Workの実行が完了するまで同期するラッチの初期値

WorkWrapper

public WorkWrapper(WorkManagerImpl workManager,
                   Work work,
                   long startTimeout,
                   ExecutionContext execContext,
                   WorkListener workListener,
                   int latchCount)
インスタンスを構築します.

パラメータ:
workManager - ワークマネージャ
work - Work
startTimeout - Workを受け付けてからのタイムアウト時間 (ミリ秒単位)
execContext - Workの実行コンテキスト
workListener - Workの実行イベントを受け取るリスナ
latchCount - Workの実行と同期するラッチの初期値
メソッドの詳細

getCurrentWork

public static Work getCurrentWork()
現在のスレッドで実行中のWorkを返します.

戻り値:
現在のスレッドで実行中のWork

execute

public long execute(Executor executor)
             throws InterruptedException
Executor上でWorkを実行します.

パラメータ:
executor - Executor
戻り値:
Workを受け付けてから実行完了までの経過時間 (ミリ秒単位)
例外:
InterruptedException - Workと同期中に割り込みが発生した場合

release

public void release()
Workを解放します.


run

public void run()
定義:
インタフェース Runnable 内の run

start

protected boolean start()
Workの実行を開始します.

実行開始前にタイムアウト時間が経過していた場合はfalseを返します.

戻り値:
Workの実行を開始した場合はtrue

isTimedout

protected boolean isTimedout()
Workが受け付けられてからの経過時間がタイムアウト時間を超えている場合はtrueを返します.

戻り値:
Workが受け付けられてからの経過時間がタイムアウト時間を超えている場合はtrue

doWork

protected void doWork()
Workを実行します.


complete

protected void complete()
Workの実行を完了します.


fireWorkAcceptedEvent

protected void fireWorkAcceptedEvent()
Workが受け付けられたことを通知します.


fireWorkRejectedEvent

protected void fireWorkRejectedEvent()
Workの実行が破棄されたことを通知します.


fireWorkStartedEvent

protected void fireWorkStartedEvent()
Workの実行が開始されることを通知します.


fireWorkCompletedEvent

protected void fireWorkCompletedEvent()
Workの実行が完了したことを通知します.



Copyright © 2005-2010 The Seasar Foundation. All Rights Reserved.