概要 | パッケージ | クラス | 使用 | 階層ツリー | 非推奨 API | 索引 | ヘルプ
| Woolpack API
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

## woolpack.visitor
クラス Visitor<S>

    java.lang.Object
      woolpack.visitor.Visitor<S>

型パラメータ:
  `S` - サブコンテキスト。

    public class Visitor<S>

extends java.lang.Object

インタープリタ デザインパターンの Expression 役と Context 役との間をダブルディスパッチする方式で定義した Visitor デザインパターンの Visitor 役です。 `visit(Object)`メソッドは まず引数の element をキーとして委譲先を検索します。 最初にマッチした場合は委譲して処理を終了します。 次に引数の element のクラス名の代入可能性で委譲先を検索します。 最初にマッチした場合は委譲して処理を終了します。 いずれもマッチしない場合はなにもしないで処理を終了します。 このクラスは LSP(The Liskov Substitution Principle) を満たしません。
適用しているデザインパターン：Visitor, Interpreter(Context役)。

作成者:
  nakamura

コンストラクタの概要
`Visitor()`

メソッドの概要
`java.lang.Object` | `getElement()`
`java.util.Map<java.lang.Object,? extends Fn<? super Visitor<S>,java.lang.Void>>` | `getMap()`
`S` | `getSubContext()`
`void` | `setElement(java.lang.Object element)`
`void` | `setMap(java.util.Map<java.lang.Object,? extends Fn<? super Visitor<S>,java.lang.Void>> map)`
`void` | `setSubContext(S context)`
`void` | `visit()`
`void` | `visit(java.lang.Object element)`

クラス 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)

### visit

    public void visit()

### getSubContext

    public S getSubContext()

### setSubContext

    public void setSubContext(S context)

### getMap

    public java.util.Map<java.lang.Object,? extends Fn<? super Visitor<S>,java.lang.Void>> getMap()

### setMap

    public void setMap(java.util.Map<java.lang.Object,? extends Fn<? super Visitor<S>,java.lang.Void>> map)

  パラメータ:
    `map` - 変数またはそのクラスオブジェクトと委譲先の対応表。

### getElement

    public java.lang.Object getElement()

### setElement

    public void setElement(java.lang.Object element)

概要 | パッケージ | クラス | 使用 | 階層ツリー | 非推奨 API | 索引 | ヘルプ
| Woolpack API
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

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