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

## 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, Interpreter(Context役)。

作成者:
  nakamura

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

メソッドの概要
`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)

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

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