クラス TopLevelClass.Default.Type

java.lang.Object
  上位を拡張 TopLevelClass.Default.Node
      上位を拡張 TopLevelClass.Default.Type
すべての実装されたインタフェース:
TopLevelClass.Node, TopLevelClass.Type
含まれているインタフェース:
TopLevelClass.Default

public static class TopLevelClass.Default.Type
extends TopLevelClass.Default.Node
implements TopLevelClass.Type

Type の実装。

このクラスは、TypeDefinition で定義される、$abstractではない非終端記号 Type に対して出力されます。また、このクラスを出力させる TypeDefinitionsupertypes に列挙される最初の TypeName に対しても同様のクラスが出力されます。

このクラスは、$abstractTypeDefinition に対しては abstract になります。そうでない場合、abstract ではなくなります。

このクラスは、supertypes が存在しない場合 TopLevelClass.Default.Node のサブクラスになります。そうでない場合、supertypes の最初の TypeName と同じ名前の TopLevelClass.Default のネストしたクラスのサブクラスになります。

導入されたバージョン:
notavaCC 1.0

フィールドの概要
 
インタフェース TopLevelClass.Type から継承されたフィールド
ID
 
コンストラクタの概要
TopLevelClass.Default.Type(TopLevelClass.NodeInitializationParameters parameters, boolean compact)
          parameters で与えられる子を持つようにノードを構築します。
TopLevelClass.Default.Type(TopLevelClass.Type source)
          source.getChildNodes()source.
 
メソッドの概要
 List/Node label()
          label でラベル付けされる子を返します。
 void replaceChild(TopLevelClass.Node oldChild, TopLevelClass.Node newChild)
          子のノード oldChildnewChild で置き換えます。
 
クラス TopLevelClass.Default.Node から継承されたメソッド
getChildNodes, toString
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
インタフェース TopLevelClass.Node から継承されたメソッド
getChildNodes
 

コンストラクタの詳細

TopLevelClass.Default.Type

public TopLevelClass.Default.Type(TopLevelClass.Type source)
source.getChildNodes()source.label() などによって与えられる子を持つようにノードを構築します。リストオブジェクトはコピーされます。

パラメータ:
source - ソース。

TopLevelClass.Default.Type

public TopLevelClass.Default.Type(TopLevelClass.NodeInitializationParameters parameters,
                                  boolean compact)
parameters で与えられる子を持つようにノードを構築します。

パラメータ:
parameters - 初期化パラメタ。
compact - true の場合、ラベル付けされていない子を除いてノードを作る。
メソッドの詳細

label

public List/Node label()
インタフェース TopLevelClass.Type の記述:
label でラベル付けされる子を返します。

ラベル付けされる子が高々1つしかない場合、このメソッドの戻り値の型は、ラベル付けされる子に共通の型で最も限定的なものになります。このとき、ラベル付けされる子が無ければ、戻り値は null になります。

ラベル付けされる子が複数になる可能性がある場合、このメソッドの戻り値の型は、ラベル付けされる子に共通の型で最も限定的なものの List になります。このとき、ラベル付けされる子が無ければ、戻り値は isEmpty もしくは長さ0の配列になります。

定義:
インタフェース TopLevelClass.Type 内の label
戻り値:
label でラベル付けされる子。

replaceChild

public void replaceChild(TopLevelClass.Node oldChild,
                         TopLevelClass.Node newChild)
クラス TopLevelClass.Default.Node の記述:
子のノード oldChildnewChild で置き換えます。

このメソッドは、 getChildNodes() の中の oldChildnewChild で置き換えます。 また、TopLevelClass.Type.label() によって返されるノードも置き換えます。

オーバーライド:
クラス TopLevelClass.Default.Node 内の replaceChild
パラメータ:
oldChild - 交換される子。
newChild - oldChild を置き換える新しい子。