パッケージ org.springframework.asm
クラス ClassVisitor
java.lang.ObjectSE
org.springframework.asm.ClassVisitor
Java クラスを訪問する訪問者。このクラスのメソッドは、
visit
[ visitSource
] [ visitModule
] [ visitNestHost
] [ visitOuterClass
](visitAnnotation
| visitTypeAnnotation
| visitAttribute
)*(visitNestMember
| [ * visitPermittedSubclass
] | visitInnerClass
| visitRecordComponent
| visitField
| visitMethod
)* visitEnd
の順序で呼び出す必要があります。- 作成者:
- Eric Bruneton
フィールドのサマリー
フィールド修飾子と型フィールド説明protected final int
このビジターによって実装された ASM API バージョン。protected ClassVisitor
このビジターがメソッド呼び出しを委譲する必要があるクラスビジター。コンストラクターの概要
コンストラクター修飾子コンストラクター説明protected
ClassVisitor
(int api) 新しいClassVisitor
を構築します。protected
ClassVisitor
(int api, ClassVisitor classVisitor) 新しいClassVisitor
を構築します。メソッドのサマリー
修飾子と型メソッド説明このビジターがメソッド呼び出しを委譲する必要があるクラスビジター。void
visit
(int version, int access, StringSE name, StringSE signature, StringSE superName, StringSE[] interfaces) クラスのヘッダーにアクセスします。visitAnnotation
(StringSE descriptor, boolean visible) クラスのアノテーションにアクセスします。void
visitAttribute
(Attribute attribute) クラスの非標準属性を訪問します。void
visitEnd()
クラスの最後を訪問します。visitField
(int access, StringSE name, StringSE descriptor, StringSE signature, ObjectSE value) クラスのフィールドを訪問します。void
visitInnerClass
(StringSE name, StringSE outerName, StringSE innerName, int access) 内部クラスに関する情報を訪問します。visitMethod
(int access, StringSE name, StringSE descriptor, StringSE signature, StringSE[] exceptions) クラスのメソッドを訪問します。visitModule
(StringSE name, int access, StringSE version) クラスに対応するモジュールにアクセスしてください。void
visitNestHost
(StringSE nestHost) クラスのネストホストクラスを訪問します。void
visitNestMember
(StringSE nestMember) 巣のメンバーを訪問します。void
visitOuterClass
(StringSE owner, StringSE name, StringSE descriptor) クラスの外側のクラスを訪問します。void
visitPermittedSubclass
(StringSE permittedSubclass) 許可されたサブクラスにアクセスします。visitRecordComponent
(StringSE name, StringSE descriptor, StringSE signature) クラスのレコードコンポーネントを訪問します。void
visitSource
(StringSE source, StringSE debug) クラスのソースを訪問します。visitTypeAnnotation
(int typeRef, TypePath typePath, StringSE descriptor, boolean visible) クラスシグネチャーの型のアノテーションにアクセスします。
フィールドの詳細
api
protected final int apiこの訪問者によって実装された ASMAPI バージョン。このフィールドの値は、Opcodes
でASM
の x の値のいずれかでなければなりません。cv
このビジターがメソッド呼び出しを委譲する必要があるクラスビジター。null の可能性があります。
コンストラクターの詳細
ClassVisitor
protected ClassVisitor(int api) 新しいClassVisitor
を構築します。- パラメーター:
api
- この訪問者によって実装された ASMAPI バージョン。Opcodes
でASM
の x の値のいずれかでなければなりません。
ClassVisitor
新しいClassVisitor
を構築します。- パラメーター:
api
- この訪問者によって実装された ASMAPI バージョン。Opcodes
でASM
の x の値のいずれかでなければなりません。classVisitor
- このビジターがメソッド呼び出しを委譲する必要があるクラスビジター。null の可能性があります。
メソッドの詳細
getDelegate
このビジターがメソッド呼び出しを委譲する必要があるクラスビジター。null の可能性があります。- 戻り値:
- このビジターがメソッド呼び出しを委譲する必要があるクラスビジター、または null。
visit
public void visit(int version, int access, StringSE name, StringSE signature, StringSE superName, StringSE[] interfaces) クラスのヘッダーにアクセスします。- パラメーター:
version
- クラスのバージョン。マイナーバージョンは上位 16 ビットに格納され、メジャーバージョンは下位 16 ビットに格納されます。access
- クラスのアクセスフラグ(Opcodes
を参照)。このパラメーターは、クラスが非推奨のOpcodes.ACC_DEPRECATED
であるかレコードOpcodes.ACC_RECORD
であるかも示します。name
- クラスの内部名(Type.getInternalName()
を参照)signature
- このクラスの署名。クラスが総称クラスではなく、総称クラスまたはインターフェースを継承または実装しない場合、null になることがあります。superName
- スーパークラスの内部名(Type.getInternalName()
を参照)インターフェースの場合、スーパークラスはObject
SE です。null の可能性がありますが、Object
SE クラスの場合のみです。interfaces
- クラスのインターフェースの内部名(Type.getInternalName()
を参照) null の可能性があります。
visitSource
クラスのソースを訪問します。- パラメーター:
source
- クラスのコンパイル元のソースファイルの名前。null の可能性があります。debug
- クラスのソース要素とコンパイル済み要素の間の対応を計算するための追加のデバッグ情報。null の可能性があります。
visitModule
クラスに対応するモジュールにアクセスしてください。- パラメーター:
name
- モジュールの完全修飾名(ドットを使用)。access
-ACC_OPEN
、ACC_SYNTHETIC
、ACC_MANDATED
の中で、モジュールアクセスフラグ。version
- モジュールのバージョン、または null。- 戻り値:
- モジュールの値を訪問する訪問者。この訪問者がこのモジュールの訪問に興味がない場合は null。
visitNestHost
クラスのネストホストクラスを訪問します。ネストは、プライベートメンバーへのアクセスを共有する同じパッケージのクラスのセットです。これらのクラスの 1 つは、ホストと呼ばれ、ネストの他のメンバーをリストします。次に、それらのメンバーは、ネストのホストにリンクする必要があります。このメソッドは、訪問したクラスがネストの非ホストメンバーである場合にのみ、一度だけ呼び出す必要があります。クラスは暗黙的に独自のネストであるため、訪問したクラス名を引数としてこのメソッドを呼び出すことは無効です。- パラメーター:
nestHost
- ネストのホストクラスの内部名 (Type.getInternalName()
を参照)。
visitOuterClass
クラスの外側のクラスにアクセスします。このメソッドは、このクラスがローカルクラスまたは匿名クラスである場合にのみ呼び出す必要があります。詳細については、JVMS 4.7.7 セクションを参照してください。- パラメーター:
owner
- クラスを囲むクラスの内部名 (Type.getInternalName()
を参照)。name
- クラスを含むメソッドの名前。クラスがそれを囲むクラスのメソッドまたはコンストラクターに囲まれていない場合は null (たとえば、インスタンス初期化子、静的初期化子、インスタンス変数初期化子、クラス変数初期化子に囲まれている場合)。descriptor
- クラスを含むメソッドの記述子。クラスがそれを囲むクラスのメソッドまたはコンストラクターに囲まれていない場合は null (たとえば、インスタンス初期化子、静的初期化子、インスタンス変数初期化子、クラス変数初期化子に囲まれている場合)。
visitAnnotation
クラスのアノテーションにアクセスします。- パラメーター:
descriptor
- アノテーションクラスのクラス記述子。visible
- 実行時にアノテーションが表示される場合は true。- 戻り値:
- アノテーションの値を訪問する訪問者、またはこの訪問者がこのアノテーションを訪問することに興味がない場合は null。
visitTypeAnnotation
public AnnotationVisitor visitTypeAnnotation(int typeRef, TypePath typePath, StringSE descriptor, boolean visible) クラスシグネチャーの型のアノテーションにアクセスします。- パラメーター:
typeRef
- アノテーション付きの型への参照。この型参照の種類は、TypeReference.CLASS_TYPE_PARAMETER
、TypeReference.CLASS_TYPE_PARAMETER_BOUND
またはTypeReference.CLASS_EXTENDS
でなければなりません。TypeReference
を参照してください。typePath
- 'typeRef' 内のアノテーション付き型引数、ワイルドカード境界、配列要素型、静的内部型へのパス。アノテーションが 'typeRef' 全体を対象とする場合は null になることがあります。descriptor
- アノテーションクラスのクラス記述子。visible
- 実行時にアノテーションが表示される場合は true。- 戻り値:
- アノテーションの値を訪問する訪問者、またはこの訪問者がこのアノテーションを訪問することに興味がない場合は null。
visitAttribute
クラスの非標準属性を訪問します。- パラメーター:
attribute
- 属性。
visitNestMember
巣のメンバーを訪問します。ネストは、プライベートメンバーへのアクセスを共有する同じパッケージのクラスのセットです。これらのクラスの 1 つは、ホストと呼ばれ、ネストの他のメンバーをリストします。次に、それらのメンバーは、ネストのホストにリンクする必要があります。このメソッドは、訪問したクラスがネストのホストである場合にのみ呼び出す必要があります。ネストホストは暗黙的にそれ自身のネストのメンバーであるため、訪問したクラス名を引数としてこのメソッドを呼び出すことは無効です。- パラメーター:
nestMember
- ネストメンバーの内部名 (Type.getInternalName()
を参照)。
visitPermittedSubclass
許可されたサブクラスにアクセスします。許可されたサブクラスは、現在のクラスで許可されているサブクラスの 1 つです。- パラメーター:
permittedSubclass
- 許可されたサブクラスの内部名 (Type.getInternalName()
を参照)。
visitInnerClass
内部クラスに関する情報にアクセスします。この内部クラスは、必ずしもアクセス対象のクラスのメンバーであるとは限りません。より正確には、このクラスによって参照され、パッケージメンバーではないすべてのクラスまたはインターフェース C は、このメソッドでアクセスする必要があります。このクラスは、ネストされたクラスまたはインターフェースメンバー、およびそれを囲むクラス (存在する場合) を参照する必要があります。詳細については、JVMS 4.7.6 セクションを参照してください。- パラメーター:
name
- C の内部名 (Type.getInternalName()
を参照)。outerName
- C がメンバーであるクラスまたはインターフェースの内部名 (Type.getInternalName()
を参照)。C がクラスまたはインターフェースのメンバーでない場合は null にする必要があります (たとえば、ローカルクラスまたは匿名クラスの場合)。innerName
- C の (単純な) 名前。匿名内部クラスの場合は null でなければなりません。access
- このクラスのコンパイル元のソースコードで最初に宣言された C のアクセスフラグ。
visitRecordComponent
public RecordComponentVisitor visitRecordComponent(StringSE name, StringSE descriptor, StringSE signature) クラスのレコードコンポーネントを訪問します。- パラメーター:
name
- レコードコンポーネント名。descriptor
- レコードコンポーネント記述子(Type
を参照)signature
- レコードコンポーネントの署名。レコードコンポーネント型がジェネリクス型を使用しない場合、null になることがあります。- 戻り値:
- このレコードコンポーネントのアノテーションと属性にアクセスする訪問者。このクラスの訪問者がこれらのアノテーションと属性にアクセスすることに関心がない場合は null。
visitField
public FieldVisitor visitField(int access, StringSE name, StringSE descriptor, StringSE signature, ObjectSE value) クラスのフィールドを訪問します。- パラメーター:
access
- フィールドのアクセスフラグ(Opcodes
を参照)このパラメーターは、フィールドが合成か非推奨か、あるいはその両方かを示します。name
- フィールドの名前。descriptor
- フィールドの記述子(Type
を参照)signature
- フィールドの署名。フィールドの型がジェネリクス型を使用しない場合、null になることがあります。value
- フィールドの初期値。このパラメーターは、フィールドに初期値がない場合は null になる可能性があり、Integer
SE、Float
SE、Long
SE、Double
SE、String
SE(それぞれint
、float
、long
またはString
フィールドの場合)でなければなりません。 このパラメーターは静的フィールドにのみ使用されます。非静的フィールドの場合、その値は無視されます。これは、コンストラクターまたはメソッドのバイトコード命令によって初期化する必要があります。- 戻り値:
- フィールドのアノテーションと属性にアクセスする訪問者。このクラスの訪問者がこれらのアノテーションと属性にアクセスすることに関心がない場合は null。
visitMethod
public MethodVisitor visitMethod(int access, StringSE name, StringSE descriptor, StringSE signature, StringSE[] exceptions) クラスのメソッドを訪問します。このメソッドは、呼び出されるたびに新しいMethodVisitor
インスタンス(または null)を返す必要があります。つまり、以前に返されたビジターを返しません。- パラメーター:
access
- メソッドのアクセスフラグ(Opcodes
を参照)このパラメーターは、メソッドが合成であるか、非推奨であるかを示します。name
- メソッドの名前。descriptor
- メソッドの記述子(Type
を参照)signature
- メソッドの署名。メソッドのパラメーター、戻り値の型、例外がジェネリクス型を使用しない場合、null になることがあります。exceptions
- メソッドの例外クラスの内部名(Type.getInternalName()
を参照) null の可能性があります。- 戻り値:
- メソッドのバイトコードを訪問するオブジェクト。このクラスビジターがこのメソッドのコードを訪問することに関心がない場合は null。
visitEnd
public void visitEnd()クラスの最後を訪問します。呼び出される最後のメソッドであるこのメソッドは、クラスのすべてのフィールドとメソッドが訪問されたことを訪問者に通知するために使用されます。