Woolpack API

woolpack.container
クラス ContainerContext<S>

java.lang.Object
  上位を拡張 woolpack.container.ContainerContext<S>
型パラメータ:
S - サブコンテキスト。

public class ContainerContext<S>
extends java.lang.Object

インタープリタ デザインパターンとダブルディスパッチを使用した、 オブジェクトの生成をフラット構造で定義するためコンテキストです。
適用しているデザインパターン:InterpreterのContext役、Double Dispatch。

作成者:
nakamura

フィールドの概要
static int DEFAULT_DEPTH
          ダブルディスパッチの深さ閾値のデフォルト値です。
 
コンストラクタの概要
ContainerContext()
           
 
メソッドの概要
 int getDepth()
           
 Fn<? super ContainerContext<S>,?,? extends java.lang.Exception> getFn()
           
 java.lang.Object getKey()
           
 S getSubContext()
           
 void setDepth(int depth)
           
 void setFn(Fn<? super ContainerContext<S>,?,? extends java.lang.Exception> fn)
           
 void setKey(java.lang.Object key)
           
 void setSubContext(S subContext)
           
 java.lang.Object visit(java.lang.Object key)
          引数のキーを一時的に設定して委譲し、 委譲先から復帰したときに呼び出し時の状態に初期化します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

DEFAULT_DEPTH

public static final int DEFAULT_DEPTH
ダブルディスパッチの深さ閾値のデフォルト値です。

関連項目:
定数フィールド値
コンストラクタの詳細

ContainerContext

public ContainerContext()
メソッドの詳細

visit

public java.lang.Object visit(java.lang.Object key)
                       throws java.lang.Exception
引数のキーを一時的に設定して委譲し、 委譲先から復帰したときに呼び出し時の状態に初期化します。

パラメータ:
key -
戻り値:
生成されたオブジェクト。
例外:
java.lang.IllegalStateException - ダブルディスパッチの深さが閾値を超えたか、またはキー参照の循環を検出した場合。
java.lang.Exception

getKey

public java.lang.Object getKey()

setKey

public void setKey(java.lang.Object key)

getFn

public Fn<? super ContainerContext<S>,?,? extends java.lang.Exception> getFn()

setFn

public void setFn(Fn<? super ContainerContext<S>,?,? extends java.lang.Exception> fn)

getSubContext

public S getSubContext()

setSubContext

public void setSubContext(S subContext)

getDepth

public int getDepth()

setDepth

public void setDepth(int depth)

Woolpack API

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