パッケージ org.springframework.asm
クラス Attribute
java.lang.ObjectSE
org.springframework.asm.Attribute
Java Virtual Machine Specification(JVMS)で定義されている非標準のクラス、フィールド、メソッド、コード属性。
- 作成者:
- Eric Bruneton, Eugene Kuleshov
- 関連事項:
フィールドのサマリー
フィールドコンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明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) この属性のコンテンツのバイト配列形式を返します。
フィールドの詳細
type
この属性の型。JVMS では名前とも呼ばれます。
コンストラクターの詳細
Attribute
新しい空の属性を作成します。- パラメーター:
type
- 属性の型。
メソッドの詳細
isUnknown
public boolean isUnknown()この型の属性が不明な場合は true を返します。つまり、属性のコンテンツを解析して定数プールの参照やラベルなどを抽出することはできません。代わりに、属性のコンテンツは不透明なバイト配列として読み取られ、そのまま書き込まれます。これにより、コンテンツに定数プールの参照、ラベル、定数プール、メソッドのバイトコードなどが変更されたときに更新が必要なその他のシンボリック参照がコンテンツに実際に含まれている場合、属性が無効になる可能性があります。このメソッドのデフォルトの実装は常に本当。- 戻り値:
- この型の属性が不明な場合は true。
isCodeAttribute
public boolean isCodeAttribute()この型の属性が Code 属性の場合、true を返します。- 戻り値:
- この型の属性がコード属性の場合は true。
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。- 戻り値:
- この属性のバイト配列形式。