public abstract class ClassVisitor extends ObjectSE
visit
[ visitSource
] [ visitModule
] [ visitNestHost
] [ visitOuterClass
](visitAnnotation
| visitTypeAnnotation
| visitAttribute
)*(visitNestMember
| [ * visitPermittedSubclass
] | visitInnerClass
| visitRecordComponent
| visitField
| visitMethod
)* visitEnd
の順序で呼び出す必要があります。修飾子と型 | フィールドと説明 |
---|---|
protected int | api このビジターによって実装された ASM API バージョン。 |
protected ClassVisitor | cv このビジターがメソッド呼び出しを委譲する必要があるクラスビジター。 |
コンストラクターと説明 |
---|
ClassVisitor(int api) 新しい ClassVisitor を構築します。 |
ClassVisitor(int api, ClassVisitor classVisitor) 新しい ClassVisitor を構築します。 |
修飾子と型 | メソッドと説明 |
---|---|
void | visit(int version, int access, StringSE name, StringSE signature, StringSE superName, StringSE[] interfaces) クラスのヘッダーにアクセスします。 |
AnnotationVisitor | visitAnnotation(StringSE descriptor, boolean visible) クラスのアノテーションにアクセスします。 |
void | visitAttribute(Attribute attribute) クラスの非標準属性を訪問します。 |
void | visitEnd() クラスの最後を訪問します。 |
FieldVisitor | visitField(int access, StringSE name, StringSE descriptor, StringSE signature, ObjectSE value) クラスのフィールドを訪問します。 |
void | visitInnerClass(StringSE name, StringSE outerName, StringSE innerName, int access) 内部クラスに関する情報を訪問します。 |
MethodVisitor | visitMethod(int access, StringSE name, StringSE descriptor, StringSE signature, StringSE[] exceptions) クラスのメソッドを訪問します。 |
ModuleVisitor | 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) 許可されたサブクラスにアクセスします。 |
RecordComponentVisitor | visitRecordComponent(StringSE name, StringSE descriptor, StringSE signature) クラスのレコードコンポーネントを訪問します。 |
void | visitSource(StringSE source, StringSE debug) クラスのソースを訪問します。 |
AnnotationVisitor | visitTypeAnnotation(int typeRef, TypePath typePath, StringSE descriptor, boolean visible) クラスシグネチャーの型のアノテーションにアクセスします。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
protected final int api
Opcodes
で ASM
の x の値のいずれかでなければなりません。protected ClassVisitor cv
public ClassVisitor(int api)
ClassVisitor
を構築します。api
- この訪問者によって実装された ASMAPI バージョン。Opcodes
で ASM
の x の値のいずれかでなければなりません。public ClassVisitor(int api, ClassVisitor classVisitor)
ClassVisitor
を構築します。api
- この訪問者によって実装された ASMAPI バージョン。Opcodes
で ASM
の x の値のいずれかでなければなりません。classVisitor
- このビジターがメソッド呼び出しを委譲する必要があるクラスビジター。null の可能性があります。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 の可能性があります。public void visitSource(StringSE source, StringSE debug)
source
- クラスのコンパイル元のソースファイルの名前。null の可能性があります。debug
- クラスのソース要素とコンパイル済み要素の間の対応を計算するための追加のデバッグ情報。null の可能性があります。public ModuleVisitor visitModule(StringSE name, int access, StringSE version)
name
- モジュールの完全修飾名(ドットを使用)。access
- ACC_OPEN
、ACC_SYNTHETIC
、ACC_MANDATED
の中で、モジュールアクセスフラグ。version
- モジュールのバージョン、または null。public void visitNestHost(StringSE nestHost)
nestHost
- ネストのホストクラスの内部名。public void visitOuterClass(StringSE owner, StringSE name, StringSE descriptor)
owner
- クラスを囲むクラスの内部名。name
- クラスを含むメソッドの名前、またはクラスがそのクラスのメソッドで囲まれていない場合は nulldescriptor
- クラスを含むメソッドの記述子、またはクラスがその包含クラスのメソッドで囲まれていない場合は nullpublic AnnotationVisitor visitAnnotation(StringSE descriptor, boolean visible)
descriptor
- アノテーションクラスのクラス記述子。visible
- 実行時にアノテーションが表示される場合は true。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。public void visitAttribute(Attribute attribute)
attribute
- 属性。public void visitNestMember(StringSE nestMember)
nestMember
- ネストメンバーの内部名。public void visitPermittedSubclass(StringSE permittedSubclass)
permittedSubclass
- 許可されたサブクラスの内部名。public void visitInnerClass(StringSE name, StringSE outerName, StringSE innerName, int access)
name
- 内部クラスの内部名(Type.getInternalName()
を参照)outerName
- 内部クラスが属するクラスの内部名(Type.getInternalName()
を参照)メンバークラスではない場合は null になります。innerName
- 包含クラス内の内部クラスの(単純な)名前匿名の内部クラスの場合は null になります。access
- 外側のクラスで最初に宣言された内部クラスのアクセスフラグ。public RecordComponentVisitor visitRecordComponent(StringSE name, StringSE descriptor, StringSE signature)
name
- レコードコンポーネント名。descriptor
- レコードコンポーネント記述子(Type
を参照)signature
- レコードコンポーネントの署名。レコードコンポーネント型がジェネリクス型を使用しない場合、null になることがあります。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
フィールドの場合)でなければなりません。 このパラメーターは静的フィールドにのみ使用されます。非静的フィールドの場合、その値は無視されます。これは、コンストラクターまたはメソッドのバイトコード命令によって初期化する必要があります。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 の可能性があります。public void visitEnd()