パッケージ org.springframework.asm

クラス ClassVisitor

java.lang.ObjectSE
org.springframework.asm.ClassVisitor
既知の直属サブクラス
ClassTransformerClassVisitorTeeClassWriterDebuggingClassWriter

public abstract class ClassVisitor extends ObjectSE
Java クラスを訪問する訪問者。このクラスのメソッドは、visit [ visitSource ] [ visitModule ] [ visitNestHost ] [  visitOuterClass ](visitAnnotation | visitTypeAnnotation |  visitAttribute)*(visitNestMember | [ * visitPermittedSubclass ] |  visitInnerClass | visitRecordComponent | visitField | visitMethod)* visitEnd の順序で呼び出す必要があります。
作成者:
Eric Bruneton
  • フィールドの詳細

    • api

      protected final int api
      この訪問者によって実装された ASMAPI バージョン。このフィールドの値は、Opcodes で ASM の x の値のいずれかでなければなりません。
    • cv

      protected ClassVisitor cv
      このビジターがメソッド呼び出しを委譲する必要があるクラスビジター。null の可能性があります。
  • コンストラクターの詳細

    • ClassVisitor

      protected ClassVisitor(int api)
      新しい ClassVisitor を構築します。
      パラメーター:
      api - この訪問者によって実装された ASMAPI バージョン。Opcodes で  ASM の x の値のいずれかでなければなりません。
    • ClassVisitor

      protected ClassVisitor(int api, ClassVisitor classVisitor)
      新しい ClassVisitor を構築します。
      パラメーター:
      api - この訪問者によって実装された ASMAPI バージョン。Opcodes で  ASM の x の値のいずれかでなければなりません。
      classVisitor - このビジターがメソッド呼び出しを委譲する必要があるクラスビジター。null の可能性があります。
  • メソッドの詳細

    • getDelegate

      public ClassVisitor 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() を参照)インターフェースの場合、スーパークラスは ObjectSE です。null の可能性がありますが、ObjectSE クラスの場合のみです。
      interfaces - クラスのインターフェースの内部名(Type.getInternalName() を参照) null の可能性があります。
    • visitSource

      public void visitSource(StringSE source, StringSE debug)
      クラスのソースを訪問します。
      パラメーター:
      source - クラスのコンパイル元のソースファイルの名前。null の可能性があります。
      debug - クラスのソース要素とコンパイル済み要素の間の対応を計算するための追加のデバッグ情報。null の可能性があります。
    • visitModule

      public ModuleVisitor visitModule(StringSE name, int access, StringSE version)
      クラスに対応するモジュールにアクセスしてください。
      パラメーター:
      name - モジュールの完全修飾名(ドットを使用)。
      access - ACC_OPENACC_SYNTHETIC ACC_MANDATED の中で、モジュールアクセスフラグ。
      version - モジュールのバージョン、または null。
      戻り値:
      モジュールの値を訪問する訪問者。この訪問者がこのモジュールの訪問に興味がない場合は null。
    • visitNestHost

      public void visitNestHost(StringSE nestHost)
      クラスのネストホストクラスを訪問します。ネストは、プライベートメンバーへのアクセスを共有する同じパッケージのクラスのセットです。これらのクラスの 1 つは、ホストと呼ばれ、ネストの他のメンバーをリストします。次に、それらのメンバーは、ネストのホストにリンクする必要があります。このメソッドは、訪問したクラスがネストの非ホストメンバーである場合にのみ、一度だけ呼び出す必要があります。クラスは暗黙的に独自のネストであるため、訪問したクラス名を引数としてこのメソッドを呼び出すことは無効です。
      パラメーター:
      nestHost - ネストのホストクラスの内部名 ( Type.getInternalName() を参照)。
    • visitOuterClass

      public void visitOuterClass(StringSE owner, StringSE name, StringSE descriptor)
      クラスの外側のクラスにアクセスします。このメソッドは、このクラスがローカルクラスまたは匿名クラスである場合にのみ呼び出す必要があります。詳細については、JVMS 4.7.7 セクションを参照してください。
      パラメーター:
      owner - クラスを囲むクラスの内部名 ( Type.getInternalName() を参照)。
      name - クラスを含むメソッドの名前、またはクラスがそれを囲むクラスのメソッドまたはコンストラクターで囲まれていない場合 (たとえば、インスタンス初期化子、静的初期化子、インスタンス変数初期化子、クラス変数初期化子で囲まれている場合) は null .
      descriptor - クラスを含むメソッドの記述子、またはクラスがそれを囲むクラスのメソッドまたはコンストラクターで囲まれていない場合 (たとえば、インスタンス初期化子、静的初期化子、インスタンス変数初期化子、クラス変数初期化子で囲まれている場合) は null .
    • visitAnnotation

      public AnnotationVisitor visitAnnotation(StringSE descriptor, boolean visible)
      クラスのアノテーションにアクセスします。
      パラメーター:
      descriptor - アノテーションクラスのクラス記述子。
      visible - 実行時にアノテーションが表示される場合は true。
      戻り値:
      アノテーション値を訪問する訪問者。この訪問者がこのアノテーションの訪問に興味がない場合は null。
    • visitTypeAnnotation

      public AnnotationVisitor visitTypeAnnotation(int typeRef, TypePath typePath, StringSE descriptor, boolean visible)
      クラスシグネチャーの型のアノテーションにアクセスします。
      パラメーター:
      typeRef - アノテーション付きの型への参照。この型参照の種類は、TypeReference.CLASS_TYPE_PARAMETERTypeReference.CLASS_TYPE_PARAMETER_BOUND または TypeReference.CLASS_EXTENDS でなければなりません。TypeReference を参照してください。
      typePath - 'typeRef' 内のアノテーション付き型引数、ワイルドカード境界、配列要素型、静的内部型へのパス。アノテーションが 'typeRef' 全体を対象とする場合は null になることがあります。
      descriptor - アノテーションクラスのクラス記述子。
      visible - 実行時にアノテーションが表示される場合は true。
      戻り値:
      アノテーション値を訪問する訪問者。この訪問者がこのアノテーションの訪問に興味がない場合は null。
    • visitAttribute

      public void visitAttribute(Attribute attribute)
      クラスの非標準属性を訪問します。
      パラメーター:
      attribute - 属性。
    • visitNestMember

      public void visitNestMember(StringSE nestMember)
      巣のメンバーを訪問します。ネストは、プライベートメンバーへのアクセスを共有する同じパッケージのクラスのセットです。これらのクラスの 1 つは、ホストと呼ばれ、ネストの他のメンバーをリストします。次に、それらのメンバーは、ネストのホストにリンクする必要があります。このメソッドは、訪問したクラスがネストのホストである場合にのみ呼び出す必要があります。ネストホストは暗黙的にそれ自身のネストのメンバーであるため、訪問したクラス名を引数としてこのメソッドを呼び出すことは無効です。
      パラメーター:
      nestMember - ネストメンバーの内部名 ( Type.getInternalName() を参照)。
    • visitPermittedSubclass

      public void visitPermittedSubclass(StringSE permittedSubclass)
      許可されたサブクラスにアクセスします。許可されたサブクラスは、現在のクラスで許可されているサブクラスの 1 つです。
      パラメーター:
      permittedSubclass - 許可されたサブクラスの内部名 ( Type.getInternalName() を参照)。
    • visitInnerClass

      public void visitInnerClass(StringSE name, StringSE outerName, StringSE innerName, int access)
      内部クラスに関する情報にアクセスします。この内部クラスは、必ずしもアクセス対象のクラスのメンバーであるとは限りません。より正確には、このクラスによって参照され、パッケージメンバーではないすべてのクラスまたはインターフェース 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 になる可能性があり、IntegerSEFloatSELongSEDoubleSEStringSE(それぞれ intfloatlong または 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()
      クラスの最後を訪問します。呼び出される最後のメソッドであるこのメソッドは、クラスのすべてのフィールドとメソッドが訪問されたことを訪問者に通知するために使用されます。