woolpack.visitor
クラス Visitor<S,E extends java.lang.Exception>
java.lang.Object
woolpack.visitor.Visitor<S,E>
- 型パラメータ:
S
- サブコンテキスト。E
- 例外。
public class Visitor<S,E extends java.lang.Exception>
- extends java.lang.Object
インタープリタ デザインパターンの Expression 役と Context 役との間をダブルディスパッチする方式で定義した
Visitor デザインパターンの Visitor 役です。
visit(Object)
メソッドは
まず引数の element をキーとして委譲先を検索します。
最初にマッチした場合は委譲して処理を終了します。
次に引数の element のクラス名の代入可能性で委譲先を検索します。
最初にマッチした場合は委譲して処理を終了します。
いずれもマッチしない場合はなにもしないで処理を終了します。
このクラスは LSP(The Liskov Substitution Principle) を満たしません。
適用しているデザインパターン:VisitorのVisitor役, InterpreterのContext役。
- 作成者:
- nakamura
メソッドの概要 |
java.lang.Object |
getElement()
|
java.util.Map<java.lang.Object,? extends Fn<? super Visitor<S,E>,java.lang.Void,? extends E>> |
getMap()
|
S |
getSubContext()
|
void |
setElement(java.lang.Object element)
|
void |
setMap(java.util.Map<java.lang.Object,? extends Fn<? super Visitor<S,E>,java.lang.Void,? extends E>> map)
|
void |
setSubContext(S context)
|
void |
visit()
|
void |
visit(java.lang.Object element)
|
void |
visit(java.lang.Object element,
Fn<? super Visitor<S,E>,java.lang.Void,? extends E> acceptor)
setElement(Object) を一時的に設定して委譲し、
委譲先から復帰したときに呼び出し時の状態に初期化します。 |
クラス java.lang.Object から継承されたメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Visitor
public Visitor()
visit
public void visit(java.lang.Object element)
throws E extends java.lang.Exception
- 例外:
E extends java.lang.Exception
visit
public void visit(java.lang.Object element,
Fn<? super Visitor<S,E>,java.lang.Void,? extends E> acceptor)
throws E extends java.lang.Exception
setElement(Object)
を一時的に設定して委譲し、
委譲先から復帰したときに呼び出し時の状態に初期化します。
- パラメータ:
element
- 一時的に置き換えるエレメント。acceptor
- 委譲先。
- 例外:
E extends java.lang.Exception
visit
public void visit()
throws E extends java.lang.Exception
- 例外:
E extends java.lang.Exception
getSubContext
public S getSubContext()
setSubContext
public void setSubContext(S context)
getMap
public java.util.Map<java.lang.Object,? extends Fn<? super Visitor<S,E>,java.lang.Void,? extends E>> getMap()
setMap
public void setMap(java.util.Map<java.lang.Object,? extends Fn<? super Visitor<S,E>,java.lang.Void,? extends E>> map)
- パラメータ:
map
- 変数またはそのクラスオブジェクトと委譲先の対応表。
getElement
public java.lang.Object getElement()
setElement
public void setElement(java.lang.Object element)
Copyright (C) 2006-2007 Takahiro Nakamura. All rights reserved.