org.ashikunep.irenka.dom
インタフェース CtElement

すべてのスーパーインタフェース:
ClientStorageContainer
既知のサブインタフェースの一覧:
BuildEvent, CtAnnotation<R>, CtAnnotationElement<R>, CtAnnotationInstance<A>, CtAnnotationInstanceElement<T>, CtArray<C>, CtArrayAccess<C>, CtArrayLength, CtAssert, CtAssignable<T>, CtAssignment<L,R>, CtBlock, CtBoundedType<T>, CtBreak, CtCase<S>, CtCast<T>, CtCatch<T>, CtClass<R>, CtClassLiteral<T>, CtComment, CtCompilationUnit, CtConditional<T>, CtConstructor<T>, CtConstructorInvocation<T>, CtContinue, CtDeclaredType<R>, CtDo, CtDocArrayType, CtDocBasicType, CtDocBlock, CtDocField, CtDocFragment, CtDocMember, CtDocMethod, CtDocMethodParameter, CtDocName, CtDocNamedType, CtDocQualifiedName, CtDocSimpleName, CtDocText, CtDocType, CtEmptyStatement, CtEnum<R>, CtEnumConstant<R>, CtEvent, CtExpression<T>, CtExpressionStatement<T>, CtField<R>, CtFor, CtForEach, CtGenericReference, CtIf, CtImport, CtInfix<T>, CtInitializableVariable<R>, CtInitializer, CtInstanceof, CtInterface<R>, CtIntersectionType<T>, CtInvocable<R>, CtInvocation<T>, CtJavadoc, CtJump, CtLabel, CtList<E>, CtLiteral<T>, CtLocalVariable<T>, CtLoop, CtMember, CtMethod<R>, CtMethodInvocation<T>, CtModifier, CtModifierOrAnnotation, CtNamedReference, CtNamedType<T>, CtNamespace, CtNewArray<C>, CtNewInstance<T>, CtPackage, CtParameter<T>, CtReference, CtReturn<T>, CtStatement, CtSuper<S>, CtSwitch<S>, CtSynchronized, CtThis<S>, CtThrow, CtTry, CtType<R>, CtTypedReference<T>, CtTypeParameter<R>, CtUnary<T>, CtValue<T>, CtVariable<R>, CtVariableAccess<T>, CtWhile, CtWildcard<T>, HackEvent

@Abstract
public interface CtElement
extends ClientStorageContainer

Irenka DOM Nodeが持つべきインターフェース。 このインターフェースの実装は、下記の2つのメソッドを下記のように実装しなければならない(MUST)。

  public int hashCode() {
     return CtElementIdentity.hashCode(this);
 }

 public boolean equals(Object obj) {
     if (this == obj) {
         return true;
     }
     if (!(obj instanceof CtElement)) {
         return false;
     }
     CtElement that = (CtElement) obj;
     return CtElementIdentity.equals(this, that);
 }
 

バージョン:
$Date: 2008-02-12 12:35:47 +0900 (火, 12 2月 2008) $
作成者:
Suguru ARAKAWA (Gluegent, Inc.)

メソッドの概要
 void accept(CtElementScanner scanner)
          スキャナを受け入れる。
<R> R
accept(CtElementVisitor<R> visitor)
          ビジタを受け入れる。
 CtElement copy()
          この要素のDeep Copyを返す。
 CtElement copy(CopyMonitor context)
          この要素のDeep Copyを返す。
 boolean equals(Object obj)
          この要素が引数に指定された要素と同値である場合にのみtrueを返す。
 boolean exists()
          この要素が実際にソースコード上に現れる可能性がある場合のみtrueを返す。
 CtElement freezeChildren()
          この要素の子情報を変更不可能にする。
 CtElement freezeParent()
          この要素の親情報を変更不可能にする。
 Object getChild(ChildLocation location)
          指定した位置に配置された子要素を返す。
 CtCompilationUnit getCompilationUnit()
          この要素が属するコンパイル単位を返す。
 CtFile getCorrespondedFile()
          この要素を表記したリソースを返す。
 ElementKind getElementKind()
          この要素の種類を返す。
 GenericContext getGenericContext()
          この要素に影響しうる総称化コンテキストを返す。
 CtLocation getLocation()
          この要素が占めるソースコード内での位置を返す。
 ChildLocation getLocationInParent()
          この要素の親要素から見た位置を返す。
 CtElement getParent()
          この要素の親要素を返す。
 Object getProperty(Navigation navi)
          Navigationによって特定されるプロパティを返す。
 int hashCode()
          この要素のハッシュ値を返す。
 boolean isChildrenFrozen()
          この要素がfreezeChildren()によって変更不可能となっている場合のみtrueを返す。
 boolean isModified()
          この要素が生成より書き換えられている場合のみtrueを返す。
 boolean isParentFrozen()
          この要素がfreezeParent()によって変更不可能となっている場合のみtrueを返す。
 boolean isSynthetic()
          コンパイラにより自動合成された要素である場合のみtrueを返す。
 Object setChild(ChildLocation location, Object newChild)
          指定した位置に配置された子要素を新しい値に設定する。
 CtLocation setLocation(CtLocation location)
          この要素が占めるソースコード内での位置を設定する。
 void setParent(CtElement newParent, ChildLocation newLocation)
          この要素の親要素と、親要素から見た位置を設定する。
 CtElement substitute(CtElement replacement)
          この要素が存在する位置を別の要素で置き換える。
 
インタフェース org.ashikunep.irenka.util.ClientStorageContainer から継承されたメソッド
getClientStorage, putClientStorage
 

メソッドの詳細

getElementKind

ElementKind getElementKind()
この要素の種類を返す。

戻り値:
この要素の種類

getParent

CtElement getParent()
この要素の親要素を返す。

戻り値:
親要素、存在しない場合はnull

getLocationInParent

ChildLocation getLocationInParent()
この要素の親要素から見た位置を返す。

戻り値:
この要素の親要素から見た位置、親が存在しない場合はnull

setParent

void setParent(CtElement newParent,
               ChildLocation newLocation)
この要素の親要素と、親要素から見た位置を設定する。

パラメータ:
newParent - 設定する親要素
newLocation - 設定する位置
例外:
NullPointerException - 引数にnullが含まれていた場合

getProperty

Object getProperty(Navigation navi)
Navigationによって特定されるプロパティを返す。 Navigation#getKind()の返す値によって型が決定し、次の型になる。

パラメータ:
navi - プロパティの位置を示すオブジェクト
戻り値:
プロパティ
例外:
NullPointerException - 引数にnullが含まれていた場合
IllegalArgumentException - 引数がこの要素と無関係な位置を示す場合

getChild

Object getChild(ChildLocation location)
指定した位置に配置された子要素を返す。

パラメータ:
location - 位置を示すオブジェクト
戻り値:
指定した位置に配置された子要素
例外:
NullPointerException - 引数にnullが含まれていた場合
IllegalArgumentException - 引数がこの要素と無関係な位置を示す場合

setChild

Object setChild(ChildLocation location,
                Object newChild)
指定した位置に配置された子要素を新しい値に設定する。

パラメータ:
location - 位置を示すオブジェクト
newChild - 設定する子要素
戻り値:
設定された子要素 (newChildと異なる場合がある)
例外:
NullPointerException - 引数にnullが含まれていた場合
IllegalArgumentException - 引数がこの要素と無関係な位置を示す場合、 またはnewChildが子要素として適していない場合

substitute

CtElement substitute(CtElement replacement)
この要素が存在する位置を別の要素で置き換える。

パラメータ:
replacement - 置き換える要素
戻り値:
置き換え後の要素
例外:
NullPointerException - 引数にnullが含まれていた場合
UnsupportedOperationException - 置き換え可能でない属性を持つ要素を置き換えた場合

copy

CtElement copy()
この要素のDeep Copyを返す。 コピーは親要素を持たない。

戻り値:
この要素のDeep Copy

copy

CtElement copy(CopyMonitor context)
この要素のDeep Copyを返す。 コピーは親要素を持たない。

パラメータ:
context - コピー中に持ち歩くコンテキストオブジェクト
戻り値:
この要素のDeep Copy

exists

boolean exists()
この要素が実際にソースコード上に現れる可能性がある場合のみtrueを返す。

戻り値:
実際にソースコード上に現れる可能性がある場合のみtrue

getLocation

CtLocation getLocation()
この要素が占めるソースコード内での位置を返す。 未定義の場合はnullを返す。

戻り値:
この要素が占めるソースコード内での位置、未定義の場合はnull

getCompilationUnit

CtCompilationUnit getCompilationUnit()
この要素が属するコンパイル単位を返す。 コンパイル単位は宣言型、パッケージのマスタ参照のみ直接保持する。 直接コンパイル単位を保持していない場合、親をたどってコンパイル単位直接保持する要素を検出して返す。 宣言型のスレーブ参照に対してこのメソッドを呼び出した場合、そのスレーブ参照を保持するプログラムに関連するコンパイル単位が返される。

戻り値:
この要素が属するコンパイル単位、存在しない場合はnull

getCorrespondedFile

CtFile getCorrespondedFile()
この要素を表記したリソースを返す。

戻り値:
この要素を表記したリソース、直接生成された場合はnull

setLocation

CtLocation setLocation(CtLocation location)
この要素が占めるソースコード内での位置を設定する。

パラメータ:
location - 設定する位置
戻り値:
実際に追加された位置

freezeParent

CtElement freezeParent()
この要素の親情報を変更不可能にする。

戻り値:
自分自身

freezeChildren

CtElement freezeChildren()
この要素の子情報を変更不可能にする。

戻り値:
自分自身

isParentFrozen

boolean isParentFrozen()
この要素がfreezeParent()によって変更不可能となっている場合のみtrueを返す。

戻り値:
freezeParent()によって変更不可能となっている場合のみtrue

isChildrenFrozen

boolean isChildrenFrozen()
この要素がfreezeChildren()によって変更不可能となっている場合のみtrueを返す。

戻り値:
freezeChildren()によって変更不可能となっている場合のみtrue

isSynthetic

boolean isSynthetic()
コンパイラにより自動合成された要素である場合のみtrueを返す。

戻り値:
コンパイラにより自動合成された要素である場合のみtrue

isModified

boolean isModified()
この要素が生成より書き換えられている場合のみtrueを返す。

戻り値:
この要素が生成より書き換えられている場合のみtrue

getGenericContext

GenericContext getGenericContext()
この要素に影響しうる総称化コンテキストを返す。

戻り値:
この要素に影響しうる総称化コンテキスト

accept

<R> R accept(CtElementVisitor<R> visitor)
ビジタを受け入れる。

型パラメータ:
R - ビジタの戻り値型
パラメータ:
visitor - 受け入れるビジタ
戻り値:
ビジタの実行結果

accept

void accept(CtElementScanner scanner)
スキャナを受け入れる。

パラメータ:
scanner - 受け入れるスキャナ

hashCode

int hashCode()
この要素のハッシュ値を返す。 一般的なハッシュ値の規約に従い、a.equals(b)が成立する場合に、 a.hashCode() == b.hashCode()も成立する。

オーバーライド:
クラス Object 内の hashCode
戻り値:
この要素のハッシュ値

equals

boolean equals(Object obj)
この要素が引数に指定された要素と同値である場合にのみtrueを返す。 CtElementの「同値」とは、比較先と次の各要素が再帰的に同値であることと等しい。 つまり、次の要素については考慮しない。

オーバーライド:
クラス Object 内の equals
パラメータ:
obj - 比較対象の要素
戻り値:
引数に指定された要素と同値である場合にのみtrue


Copyright 2007 the Seasar Foundation and the Others.