|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectwoolpack.visitor.Visitor
public class Visitor
Visitor デザインパターンの Visitor 役。
オリジナルの Visitor デザインパターンでは Element 役実装毎に
Visitor 役インタフェースの visit メソッドを用意する(オーバロードする)ことを前提にしているが、
本設計では visit メソッドの内部で accept メソッドの役割(Acceptable
)を分岐する。
適用しているパターン:Visitor。
コンストラクタの概要 | |
---|---|
|
Visitor()
コンストラクタ。 |
protected |
Visitor(Visitor base)
浅いコピーコンストラクタ。 |
メソッドの概要 | |
---|---|
Visitor |
copy()
浅いコピーを行う。 |
java.lang.Object |
getContext()
コンテキストを返す。 |
java.util.Map<java.lang.Object,Acceptable> |
getMap()
委譲先 Acceptable を分岐する定義としての、
Element 役実装またはそのクラスオブジェクトとAcceptable のMap を返す。 |
void |
setContext(java.lang.Object context)
コンテキストを設定する。 |
void |
setMap(java.util.Map<java.lang.Object,Acceptable> map)
委譲先 Acceptable を分岐する定義としての、
Element 役実装(またはそのクラスオブジェクト)とAcceptable のMap を設定する。 |
void |
visit(java.lang.Object o)
利用クラスが直接呼び出すか、または Acceptable.accept(Visitor, Object) から呼び出される(called)。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
---|
public Visitor()
protected Visitor(Visitor base)
base
- コピー元。メソッドの詳細 |
---|
public void visit(java.lang.Object o)
Acceptable.accept(Visitor, Object)
から呼び出される(called)。
このメソッドはまず引数をキーとしてgetMap()
を検索する。
最初にマッチした場合は対応するAcceptable
に処理を委譲し処理を終了する。
次に引数のクラス名の代入可能性をgetMap()
からキーを順に取り出して検証する。
最初にマッチした場合は対応するAcceptable
に処理を委譲し処理を終了する。
いずれもマッチしない場合はなにもしないで処理を終了する。
o
- Element 役。
java.lang.NullPointerException
- map
が null の場合。public java.lang.Object getContext()
Acceptable.accept(Visitor, Object)
から呼び出されることを想定している。
public void setContext(java.lang.Object context)
Acceptable.accept(Visitor, Object)
で利用することを想定している。
context
- コンテキストを設定する。public java.util.Map<java.lang.Object,Acceptable> getMap()
Acceptable
を分岐する定義としての、
Element 役実装またはそのクラスオブジェクトとAcceptable
のMap
を返す。
Acceptable
のMap
。public void setMap(java.util.Map<java.lang.Object,Acceptable> map)
Acceptable
を分岐する定義としての、
Element 役実装(またはそのクラスオブジェクト)とAcceptable
のMap
を設定する。
map
- Element 役実装とAcceptable
のMap
。public Visitor copy()
Cloneable
は実装していない。
Visitor
。
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |