パッケージ jakarta.el

クラス TypeConverter


public abstract class TypeConverter extends ELResolver
カスタム型変換を行うための ELResolver を作成するための便利なクラス。

例: 文字列を MyDate のインスタンスに変換するには、次のように記述できます。

 
     ELProcessor elp = new ELProcessor();
     elp.getELManager().addELResolver(new TypeConverter() {
         Object convertToType(ELContext context, Object obj, Class<?> type) {
             if ((obj instanceof String) && type == MyDate.class) {
                 context.setPropertyResolved(obj, type);
                 return (obj == null)? null: new MyDate(obj.toString());
             }
             return null;
         }
      };
 
 
導入:
Jakarta Expression Language 3.0
  • コンストラクターの詳細

    • TypeConverter

      public TypeConverter()
  • メソッドの詳細

    • getValue

      public ObjectSE getValue(ELContext context, ObjectSE base, ObjectSE property)
      クラスからコピーされた説明: ELResolver
      指定された base オブジェクトで指定された property オブジェクトを解決しようとします。

      このリゾルバーが指定された(ベース、プロパティ)ペアを処理する場合、戻る前に、リゾルバーによって ELContext オブジェクトの propertyResolved プロパティを true に設定する必要があります。このメソッドが呼び出された後、このプロパティが true でない場合、呼び出し元は戻り値を無視する必要があります。

      次で指定:
      クラス ELResolvergetValue 
      パラメーター:
      context - この評価のコンテキスト。
      base - プロパティ値が返されるベースオブジェクト、またはトップレベル変数を解決する null
      property - 解決するプロパティまたは変数。
      戻り値:
      ELContext の propertyResolved プロパティが true に設定されている場合、変数またはプロパティ解決の結果。それ以外は未定義。
    • getType

      public ClassSE<?> getType(ELContext context, ObjectSE base, ObjectSE property)
      クラスからコピーされた説明: ELResolver
      指定された base および property について、ELResolver.setValue(jakarta.el.ELContext, java.lang.Object, java.lang.Object, java.lang.Object) メソッドへの将来の呼び出しで value パラメーターとして渡されるオブジェクトに受け入れられる最も一般的な型を識別しようとします。

      このリゾルバーが指定された(ベース、プロパティ)ペアを処理する場合、戻る前に、リゾルバーによって ELContext オブジェクトの propertyResolved プロパティを true に設定する必要があります。このメソッドが呼び出された後、このプロパティが true でない場合、呼び出し元は戻り値を無視する必要があります。

      これは、常に getValue().getClass() と同じではありません。例: ArrayELResolver の場合、getType メソッドは配列のエレメント型を返します。これは、指定された配列エレメントに現在ある実際のエレメントの型のスーパークラスである可能性があります。

      リゾルバーまたはプロパティが読み取り専用の場合、このメソッドは null を返す必要があります。

      次で指定:
      クラス ELResolvergetType 
      パラメーター:
      context - この評価のコンテキスト。
      base - プロパティ値を分析するベースオブジェクト、またはトップレベル変数を分析する null
      property - 受け入れ可能な型を返すプロパティまたは変数。
      戻り値:
      ELContext の propertyResolved プロパティが true に設定された場合、プロパティまたはリゾルバーが読み取り専用の場合、最も一般的に受け入れられる型は null でなければなりません。それ以外は未定義
    • setValue

      public void setValue(ELContext context, ObjectSE base, ObjectSE property, ObjectSE value)
      クラスからコピーされた説明: ELResolver
      指定された base オブジェクトに指定された property オブジェクトの値を設定しようとします。

      このリゾルバーが指定された(ベース、プロパティ)ペアを処理する場合、戻る前に、リゾルバーによって ELContext オブジェクトの propertyResolved プロパティを true に設定する必要があります。このメソッドが呼び出された後、このプロパティが true でない場合、呼び出し元は値が設定されていないと安全に想定できます。

      次で指定:
      クラス ELResolversetValue 
      パラメーター:
      context - この評価のコンテキスト。
      base - プロパティ値を設定する基本オブジェクト、またはトップレベル変数を設定する null
      property - 設定するプロパティまたは変数。
      value - プロパティまたは変数に設定する値。
    • isReadOnly

      public boolean isReadOnly(ELContext context, ObjectSE base, ObjectSE property)
      クラスからコピーされた説明: ELResolver
      特定の base および property について、ELResolver.setValue(jakarta.el.ELContext, java.lang.Object, java.lang.Object, java.lang.Object) の呼び出しが常に失敗するかどうかを判断しようとします。

      このリゾルバーが指定された(ベース、プロパティ)ペアを処理する場合、戻る前に、リゾルバーによって ELContext オブジェクトの propertyResolved プロパティを true に設定する必要があります。このメソッドが呼び出された後、このプロパティが true でない場合、呼び出し元は戻り値を無視する必要があります。

      次で指定:
      クラス ELResolverisReadOnly 
      パラメーター:
      context - この評価のコンテキスト。
      base - プロパティ値を分析するベースオブジェクト、またはトップレベル変数を分析する null
      property - 読み取り専用ステータスを返すプロパティまたは変数。
      戻り値:
      ELContext の propertyResolved プロパティが true に設定されている場合、プロパティが読み取り専用の場合は true、そうでない場合は false。それ以外は未定義。
    • getCommonPropertyType

      public ClassSE<?> getCommonPropertyType(ELContext context, ObjectSE base)
      クラスからコピーされた説明: ELResolver
      base オブジェクトが指定された場合、このリゾルバーが property 引数に対して受け入れる最も一般的な型を返します。この方法の 1 つの用途は、ツールが自動補完を支援することです。

      これは、ツールが自動補完を支援し、リゾルバーが配列への整数インデックスなどのプリミティブ値を受け入れることを表現する方法も提供します。例: ArrayELResolver は int を property として受け入れるため、戻り値は Integer.class になります。

      次で指定:
      クラス ELResolvergetCommonPropertyType 
      パラメーター:
      context - この評価のコンテキスト。
      base - 最も一般的なプロパティ型を返す基本オブジェクト、またはこのリゾルバーが評価できるトップレベルの変数のセットを列挙する null
      戻り値:
      この ELResolver が指定された base オブジェクトの処理方法を認識していない場合は null。それ以外の型の property が受け入れられる場合は Object.class。それ以外の場合は、指定された base で受け入れられる最も一般的な property 型。
    • convertToType

      public abstract <T> T convertToType(ELContext context, ObjectSE obj, ClassSE<T> targetType)
      オブジェクトを特定の型に変換します。

      変換中にエラーが発生すると、ELException がスローされます。

      オーバーライド:
      クラス ELResolverconvertToType 
      パラメーター:
      context - この評価のコンテキスト。
      obj - 変換するオブジェクト。
      targetType - 変換のターゲット型。
      戻り値:
      targetType に変換されたオブジェクト
      例外:
      ELException - エラーが発生した場合にスローされます。