インターフェース SpelNode

すべての既知の実装クラス:
AssignBeanReferenceBooleanLiteralCompoundExpressionConstructorReferenceElvisFloatLiteralFunctionReferenceIdentifierIndexerInlineListInlineMapIntLiteralLiteralLongLiteralMethodReferenceNullLiteralOpAndOpDecOpDivideOpEQOperatorOperatorBetweenOperatorInstanceofOperatorMatchesOperatorNotOperatorPowerOpGEOpGTOpIncOpLEOpLTOpMinusOpModulusOpMultiplyOpNEOpOrOpPlusProjectionPropertyOrFieldReferenceQualifiedIdentifierRealLiteralSelectionSpelNodeImplStringLiteralTernaryTypeReferenceVariableReference

public interface SpelNode
解析された Spring 式言語 (SpEL) 式の抽象構文ツリー (AST) 内のノードを表します。
導入:
3.0
作成者:
Andy Clement, Sam Brannen
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    default void
    generateCode(MethodVisitor methodVisitor, CodeFlow codeFlow)
    このノードのバイトコードを指定された MethodVisitor に生成します。
    getChild(int index)
    このノードの n 番目の子を返します。
    int
    このノードの子の数を返します。
    int
    式文字列内のこの AST ノードの終了位置を返します。
    渡されたオブジェクトがすでにクラスオブジェクトでない限り、渡されたオブジェクトのクラスを判別します。
    int
    この AST ノードの開始位置を式文字列で返します。
    指定された式の状態のコンテキストで式ノードを評価し、型付きの値を返します。
    getValue(ExpressionState expressionState)
    指定された式の状態のコンテキストで式ノードを評価し、値を返します。
    default boolean
    このノードをバイトコードにコンパイルできるかどうかを判断します。
    boolean
    isWritable(ExpressionState expressionState)
    この式ノードが setValue() 呼び出しをサポートするかどうかを決定します。
    void
    setValue(ExpressionState expressionState, ObjectSE newValue)
    式をノードに評価してから、そのノードに新しい値を設定します。
    この AST ノードの文字列形式を返します。
  • メソッドの詳細

    • getValue

      @Nullable ObjectSE getValue(ExpressionState expressionState) throws EvaluationException
      指定された式の状態のコンテキストで式ノードを評価し、値を返します。
      パラメーター:
      expressionState - 現在の式の状態 (コンテキストを含みます)
      戻り値:
      指定された状態に対して評価されたこのノードの値
      例外:
      EvaluationException - 式の評価中に問題が発生した場合
    • getTypedValue

      TypedValue getTypedValue(ExpressionState expressionState) throws EvaluationException
      指定された式の状態のコンテキストで式ノードを評価し、型付きの値を返します。
      パラメーター:
      expressionState - 現在の式の状態 (コンテキストを含みます)
      戻り値:
      指定された状態に対して評価されたこのノードの型指定された値
      例外:
      EvaluationException - 式の評価中に問題が発生した場合
    • isWritable

      boolean isWritable(ExpressionState expressionState) throws EvaluationException
      この式ノードが setValue() 呼び出しをサポートするかどうかを決定します。
      パラメーター:
      expressionState - 現在の式の状態 (コンテキストを含みます)
      戻り値:
      式ノードが setValue() を許可する場合は true
      例外:
      EvaluationException - ノードが書き込みをサポートしているかどうかを判断しようとして問題が発生した場合
    • setValue

      void setValue(ExpressionState expressionState, @Nullable ObjectSE newValue) throws EvaluationException
      式をノードに評価してから、そのノードに新しい値を設定します。例: 式がプロパティ参照に評価される場合、プロパティは新しい値に設定されます。
      パラメーター:
      expressionState - 現在の式の状態 (コンテキストを含みます)
      newValue - 新しい価値
      例外:
      EvaluationException - 式の評価または新しい値の設定で問題が発生した場合
    • toStringAST

      StringSE toStringAST()
      この AST ノードの文字列形式を返します。
      戻り値:
      文字列形式
    • getChildCount

      int getChildCount()
      このノードの子の数を返します。
      戻り値:
      子供の数
      関連事項:
    • getChild

      SpelNode getChild(int index)
      このノードの n 番目の子を返します。
      戻り値:
      子ノード
      関連事項:
    • getObjectClass

      @Nullable ClassSE<?> getObjectClass(@Nullable ObjectSE obj)
      渡されたオブジェクトがすでにクラスオブジェクトでない限り、渡されたオブジェクトのクラスを判別します。
      パラメーター:
      obj - 呼び出し元がクラスを必要とするオブジェクト
      戻り値:
      オブジェクトがクラスオブジェクトでない場合はオブジェクトのクラス、オブジェクトが null の場合は null 
    • getStartPosition

      int getStartPosition()
      この AST ノードの開始位置を式文字列で返します。
      戻り値:
      開始位置
    • getEndPosition

      int getEndPosition()
      式文字列内のこの AST ノードの終了位置を返します。
      戻り値:
      終了位置
    • isCompilable

      default boolean isCompilable()
      このノードをバイトコードにコンパイルできるかどうかを判断します。

      各ノードでの推論は異なる場合がありますが、通常は、ノードの終了型記述子が既知であるかどうか、および関連する子ノードがコンパイル可能であるかどうかをチェックします。

      デフォルトの実装は false を返します。

      このメソッドをオーバーライドする場合は、generateCode(MethodVisitor, CodeFlow) もオーバーライドする必要があります。

      戻り値:
      このノードをバイトコードにコンパイルできる場合は true 
      導入:
      6.2
      関連事項:
    • generateCode

      default void generateCode(MethodVisitor methodVisitor, CodeFlow codeFlow)
      このノードのバイトコードを指定された MethodVisitor に生成します。

      コンパイル中の現在の式に関するコンテキスト情報は、提供された CodeFlow オブジェクトで入手できます。たとえば、現在スタック上にあるオブジェクトの型に関する情報などです。

      isCompilable() が true を返さない限り、このメソッドは呼び出されません。

      デフォルトでは、isCompilable() は false を返すため、デフォルトの実装では IllegalStateExceptionSE がスローされます。

      このメソッドをオーバーライドする場合は、isCompilable() もオーバーライドする必要があります。

      パラメーター:
      methodVisitor - コードが生成される ASM MethodVisitor 
      codeFlow - スタック上にあるものに関する情報を持つコンテキストオブジェクト
      導入:
      6.2
      関連事項: