パッケージ org.springframework.asm

クラス Attribute

java.lang.ObjectSE
org.springframework.asm.Attribute

public class Attribute extends ObjectSE
Java Virtual Machine Specification(JVMS)で定義されている非標準のクラス、フィールド、メソッド、コード属性。
作成者:
Eric Bruneton, Eugene Kuleshov
関連事項:
  • フィールドサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    final StringSE
    この属性の型。JVMS では名前とも呼ばれます。
  • コンストラクターのサマリー

    コンストラクター
    修飾子
    コンストラクター
    説明
    protected
    新しい空の属性を作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    protected Label[]
    この属性に対応するラベルを返します。
    boolean
    この型の属性が Code 属性の場合、true を返します。
    boolean
    この型の属性が不明な場合は true を返します。
    protected Attribute
    read(ClassReader classReader, int offset, int length, char[] charBuffer, int codeAttributeOffset, Label[] labels)
    type 属性を読み取ります。
    protected ByteVector
    write(ClassWriter classWriter, byte[] code, int codeLength, int maxStack, int maxLocals)
    この属性のコンテンツのバイト配列形式を返します。

    クラス java.lang.ObjectSE から継承されたメソッド

    clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
  • フィールドの詳細

    • type

      public final StringSE type
      この属性の型。JVMS では名前とも呼ばれます。
  • コンストラクターの詳細

    • Attribute

      protected Attribute(StringSE type)
      新しい空の属性を作成します。
      パラメーター:
      type - 属性の型。
  • メソッドの詳細

    • isUnknown

      public boolean isUnknown()
      この型の属性が不明な場合は true を返します。つまり、属性のコンテンツを解析して定数プールの参照やラベルなどを抽出することはできません。代わりに、属性のコンテンツは不透明なバイト配列として読み取られ、そのまま書き込まれます。これにより、コンテンツに定数プールの参照、ラベル、定数プール、メソッドのバイトコードなどが変更されたときに更新が必要なその他のシンボリック参照がコンテンツに実際に含まれている場合、属性が無効になる可能性があります。このメソッドのデフォルトの実装は常に本当。
      戻り値:
      この型の属性が不明な場合は true。
    • isCodeAttribute

      public boolean isCodeAttribute()
      この型の属性が Code 属性の場合、true を返します。
      戻り値:
      この型の属性がコード属性の場合は true。
    • getLabels

      protected Label[] getLabels()
      この属性に対応するラベルを返します。
      戻り値:
      この属性に対応するラベル。この属性がラベルを含むコード属性でない場合は null。
    • read

      protected Attribute read(ClassReader classReader, int offset, int length, char[] charBuffer, int codeAttributeOffset, Label[] labels)
      type 属性を読み取ります。このメソッドは、指定された ClassReader の「オフセット」で始まる「長さ」バイトに対応する、型 type新しい Attribute オブジェクトを返す必要があります。
      パラメーター:
      classReader - 読み取る属性を含むクラス。
      offset - ClassReader 内の属性のコンテンツの最初のバイトのインデックス。ここでは、6 つの属性ヘッダーバイト(attribute_name_index および attribute_length)は考慮されません。
      length - 属性のコンテンツの長さ(6 つの属性ヘッダーバイトを除く)。
      charBuffer - 'charBuffer' パラメーターを必要とする ClassReader メソッドを呼び出すために使用されるバッファ。
      codeAttributeOffset - ClassReader で囲む Code 属性のコンテンツの最初のバイトのインデックス。読み取られる属性が Code 属性でない場合は -1。ここでは、6 つの属性ヘッダーバイト(attribute_name_index および attribute_length)は考慮されていません。
      labels - メソッドのコードのラベル。読み取る属性が Code 属性でない場合は null。
      戻り値:
      指定されたバイトに対応する新しい Attribute オブジェクト
    • write

      protected ByteVector write(ClassWriter classWriter, byte[] code, int codeLength, int maxStack, int maxLocals)
      この属性のコンテンツのバイト配列形式を返します。返される ByteVector に 6 ヘッダーバイト(attribute_name_index および attribute_length)を追加しないでください。
      パラメーター:
      classWriter - この属性を追加する必要があるクラス。このパラメーターを使用して、この属性に対応するアイテムをこのクラスの定数プールに追加できます。
      code - この Code 属性に対応するメソッドのバイトコード。この属性が Code 属性でない場合は null。Code 属性の "code" フィールドに対応します。
      codeLength - このコード属性に対応するメソッドのバイトコードの長さ。この属性がコード属性でない場合は 0。Code 属性の "code_length" フィールドに対応します。
      maxStack - この Code 属性に対応するメソッドの最大スタックサイズ。この属性が Code 属性でない場合は -1。
      maxLocals - このコード属性に対応するメソッドのローカル変数の最大数。この属性がコード属性でない場合は -1。
      戻り値:
      この属性のバイト配列形式。