クラスの使用
org.springframework.asm.MethodVisitor
MethodVisitor を使用するパッケージ
パッケージ
説明
ASM 9.x の Spring の再パッケージ化(Spring 固有のパッチを使用。内部使用のみ)。
Spring の CGLIB コアパッケージの再パッケージ化(内部使用のみ)。
Spring による CGLIB 変換パッケージの再パッケージ化 (内部使用のみ)。
Spring アプリケーションコンテキスト内の式解析サポート。
SpEL の中央実装パッケージ。
SpEL の抽象構文ツリー。
さまざまなコア抽象化のための SpEL のデフォルト実装。
org.springframework.asm 内の MethodVisitor 使用
MethodVisitor として宣言されている org.springframework.asm のフィールドMethodVisitor を返す org.springframework.asm のメソッド修飾子と型メソッド説明MethodVisitor.getDelegate()このビジターがメソッド呼び出しを委譲する必要があるメソッドビジター。ClassVisitor.visitMethod(int access, StringSE name, StringSE descriptor, StringSE signature, StringSE[] exceptions) クラスのメソッドを訪問します。final MethodVisitorClassWriter.visitMethod(int access, StringSE name, StringSE descriptor, StringSE signature, StringSE[] exceptions) 型 MethodVisitor のパラメーターを持つ org.springframework.asm のコンストラクター修飾子コンストラクター説明protectedMethodVisitor(int api, MethodVisitor methodVisitor) 新しいMethodVisitorを構築します。org.springframework.cglib.core 内の MethodVisitor 使用
MethodVisitor を返す org.springframework.cglib.core のメソッド修飾子と型メソッド説明ClassEmitter.visitMethod(int access, StringSE name, StringSE desc, StringSE signature, StringSE[] exceptions) 型 MethodVisitor のパラメーターを持つ org.springframework.cglib.core のコンストラクターorg.springframework.cglib.transform 内の MethodVisitor 使用
修飾子と型メソッド説明AbstractClassFilterTransformer.visitMethod(int access, StringSE name, StringSE desc, StringSE signature, StringSE[] exceptions) ClassTransformerChain.visitMethod(int access, StringSE name, StringSE desc, StringSE signature, StringSE[] exceptions) ClassVisitorTee.visitMethod(int access, StringSE name, StringSE desc, StringSE signature, StringSE[] exceptions) MethodFilterTransformer.visitMethod(int access, StringSE name, StringSE desc, StringSE signature, StringSE[] exceptions) 型 MethodVisitor のパラメーターを持つ org.springframework.cglib.transform のコンストラクターorg.springframework.context.expression 内の MethodVisitor 使用
型 MethodVisitor のパラメーターを持つ org.springframework.context.expression のメソッドorg.springframework.expression.spel 内の MethodVisitor 使用
型 MethodVisitor のパラメーターを持つ org.springframework.expression.spel のメソッド修飾子と型メソッド説明voidCodeFlow.ClinitAdder.generateCode(MethodVisitor mv, CodeFlow codeflow) voidCompilableIndexAccessor.generateCode(SpelNode indexNode, MethodVisitor methodVisitor, CodeFlow codeFlow) インデックスを読み取る操作を実行するバイトコードを生成します。voidCompilablePropertyAccessor.generateCode(StringSE propertyName, MethodVisitor methodVisitor, CodeFlow codeFlow) 必要に応じて、CodeFlowからのコンテキスト情報を使用して、指定されたMethodVisitorへのアクセス操作を実行するバイトコードを生成します。default voidSpelNode.generateCode(MethodVisitor methodVisitor, CodeFlow codeFlow) このノードのバイトコードを指定されたMethodVisitorに生成します。voidCodeFlow.generateCodeForArgument(MethodVisitor methodVisitor, SpelNode argument, ClassSE<?> requiredType) 指定された引数をスタックにロードするバイトコードを生成します。voidCodeFlow.generateCodeForArgument(MethodVisitor methodVisitor, SpelNode argument, StringSE requiredTypeDesc) 指定された引数をスタックにロードするバイトコードを生成します。static voidCodeFlow.insertAnyNecessaryTypeConversionBytecodes(MethodVisitor mv, char targetDescriptor, StringSE stackDescriptor) スタックの内容と目的のターゲット型に基づいて、必要な数値変換バイトコードを挿入します。static voidCodeFlow.insertArrayStore(MethodVisitor mv, StringSE arrayComponentType) スタック項目を配列に格納するための適切なバイトコードを生成します。static voidCodeFlow.insertBoxIfNecessary(MethodVisitor mv, char ch) 特定の型に適切なボクシング指示を決定し(ボクシングが必要な場合)、指示を提供されたビジターに挿入します。static voidCodeFlow.insertBoxIfNecessary(MethodVisitor mv, StringSE descriptor) 特定の型に適切なボクシング指示を決定し(ボクシングが必要な場合)、指示を提供されたビジターに挿入します。static voidCodeFlow.insertCheckCast(MethodVisitor mv, StringSE descriptor) 提供された記述子に適切な CHECKCAST 命令を挿入します。static voidCodeFlow.insertNewArrayCode(MethodVisitor mv, int size, StringSE arrayType) 正しいバイトコードを生成して配列を構築します。static voidCodeFlow.insertNumericUnboxOrPrimitiveTypeCoercion(MethodVisitor mv, StringSE stackDescriptor, char targetDescriptor) 数学演算子で使用するために、スタック上の(おそらくボックス化された)数値からプリミティブ数値型への変換を処理します。static voidCodeFlow.insertOptimalLoad(MethodVisitor mv, int value) スタックに数値をロードするための最適な命令を作成します。static voidCodeFlow.insertUnboxInsns(MethodVisitor mv, char ch, StringSE stackDescriptor) ボックス型からプリミティブ値に変換するために必要なキャストと値の呼び出しを挿入します。static voidCodeFlow.insertUnboxNumberInsns(MethodVisitor mv, char targetDescriptor, StringSE stackDescriptor) 数値の場合は、適切なメソッドを使用して、リクエストされたプリミティブ型に変換します。voidCodeFlow.loadEvaluationContext(MethodVisitor mv) バイトコードをプッシュして EvaluationContext(コンパイルされた式メソッドに渡される 2 番目のパラメーター)をロードします。voidCodeFlow.loadTarget(MethodVisitor mv) バイトコードをプッシュしてターゲットをロードします(つまりvoidCodeFlow.unboxBooleanIfNecessary(MethodVisitor mv) コードフローが java.lang.Boolean に評価された最後の式を示している場合は、必要な命令を挿入して、ブールプリミティブにボックス化します。org.springframework.expression.spel.ast 内の MethodVisitor 使用
型 MethodVisitor のパラメーターを持つ org.springframework.expression.spel.ast のメソッド修飾子と型メソッド説明voidBooleanLiteral.generateCode(MethodVisitor mv, CodeFlow cf) voidCompoundExpression.generateCode(MethodVisitor mv, CodeFlow cf) voidConstructorReference.generateCode(MethodVisitor mv, CodeFlow cf) voidElvis.generateCode(MethodVisitor mv, CodeFlow cf) voidFloatLiteral.generateCode(MethodVisitor mv, CodeFlow cf) voidFunctionReference.generateCode(MethodVisitor mv, CodeFlow cf) voidIndexer.generateCode(MethodVisitor mv, CodeFlow cf) voidInlineList.generateCode(MethodVisitor mv, CodeFlow codeflow) voidIntLiteral.generateCode(MethodVisitor mv, CodeFlow cf) voidLongLiteral.generateCode(MethodVisitor mv, CodeFlow cf) voidMethodReference.generateCode(MethodVisitor mv, CodeFlow cf) voidNullLiteral.generateCode(MethodVisitor mv, CodeFlow cf) voidOpAnd.generateCode(MethodVisitor mv, CodeFlow cf) voidOpDivide.generateCode(MethodVisitor mv, CodeFlow cf) voidOpEQ.generateCode(MethodVisitor mv, CodeFlow cf) voidOperatorInstanceof.generateCode(MethodVisitor mv, CodeFlow cf) voidOperatorNot.generateCode(MethodVisitor mv, CodeFlow cf) voidOpGE.generateCode(MethodVisitor mv, CodeFlow cf) voidOpGT.generateCode(MethodVisitor mv, CodeFlow cf) voidOpLE.generateCode(MethodVisitor mv, CodeFlow cf) voidOpLT.generateCode(MethodVisitor mv, CodeFlow cf) voidOpMinus.generateCode(MethodVisitor mv, CodeFlow cf) voidOpModulus.generateCode(MethodVisitor mv, CodeFlow cf) voidOpMultiply.generateCode(MethodVisitor mv, CodeFlow cf) voidOpNE.generateCode(MethodVisitor mv, CodeFlow cf) voidOpOr.generateCode(MethodVisitor mv, CodeFlow cf) voidOpPlus.generateCode(MethodVisitor mv, CodeFlow cf) voidPropertyOrFieldReference.generateCode(MethodVisitor mv, CodeFlow cf) voidRealLiteral.generateCode(MethodVisitor mv, CodeFlow cf) voidStringLiteral.generateCode(MethodVisitor mv, CodeFlow cf) voidTernary.generateCode(MethodVisitor mv, CodeFlow cf) voidTypeReference.generateCode(MethodVisitor mv, CodeFlow cf) voidVariableReference.generateCode(MethodVisitor mv, CodeFlow cf) protected static voidSpelNodeImpl.generateCodeForArgument(MethodVisitor mv, CodeFlow cf, SpelNodeImpl argument, StringSE paramDesc) 使用すべきではありません。protected static voidSpelNodeImpl.generateCodeForArguments(MethodVisitor mv, CodeFlow cf, ExecutableSE executable, SpelNodeImpl[] arguments) 指定されたExecutableSE (メソッドまたはコンストラクター) の引数値の構築を処理するコードを生成します。protected static voidSpelNodeImpl.generateCodeForArguments(MethodVisitor mv, CodeFlow cf, MemberSE member, SpelNodeImpl[] arguments) 使用すべきではありません。protected voidOperator.generateComparisonCode(MethodVisitor mv, CodeFlow cf, int compInstruction1, int compInstruction2) 数値比較演算子は非常によく似た生成コードを共有し、2 つの比較命令のみが異なります。org.springframework.expression.spel.support 内の MethodVisitor 使用
型 MethodVisitor のパラメーターを持つ org.springframework.expression.spel.support のメソッド修飾子と型メソッド説明voidReflectiveIndexAccessor.generateCode(SpelNode index, MethodVisitor mv, CodeFlow cf)
CodeFlow.generateCodeForArgument(MethodVisitor, SpelNode, String)を推奨