パッケージ org.springframework.beans

クラス BeanWrapperImpl

実装されたすべてのインターフェース:
BeanWrapperConfigurablePropertyAccessorPropertyAccessorPropertyEditorRegistryTypeConverter

public class BeanWrapperImpl extends AbstractNestablePropertyAccessor implements BeanWrapper
すべての典型的なユースケースに十分なデフォルトの BeanWrapper 実装。イントロスペクションの結果をキャッシュして効率を高めます。

メモ: JDK の標準 PropertyEditors に加えて適用される org.springframework.beans.propertyeditors パッケージからデフォルトのプロパティエディターを自動登録します。アプリケーションは、PropertyEditorRegistrySupport.registerCustomEditor(Class, java.beans.PropertyEditor) メソッドを呼び出して、特定のインスタンスのエディターを登録できます(つまり、アプリケーション間で共有されません)。詳細については、基本クラス PropertyEditorRegistrySupport を参照してください。

注: Spring 2.5 では、これは(ほとんどすべての目的で)内部クラスです。他のフレームワークパッケージからのアクセスを可能にするために、パブリックになっています。標準のアプリケーションアクセス目的では、代わりに PropertyAccessorFactory.forBeanPropertyAccess(java.lang.Object) ファクトリメソッドを使用します。

導入:
2001 年 4 月 15 日
作成者:
Rod Johnson, Juergen Hoeller, Rob Harrop, Stephane Nicoll
関連事項:
  • コンストラクターの詳細

    • BeanWrapperImpl

      public BeanWrapperImpl()
      新しい空の BeanWrapperImpl を作成します。ラップされたインスタンスは後で設定する必要があります。デフォルトのエディターを登録します。
      関連事項:
    • BeanWrapperImpl

      public BeanWrapperImpl(boolean registerDefaultEditors)
      新しい空の BeanWrapperImpl を作成します。ラップされたインスタンスは後で設定する必要があります。
      パラメーター:
      registerDefaultEditors - デフォルトのエディターを登録するかどうか (BeanWrapper が型変換を必要としない場合は抑制できます)
      関連事項:
    • BeanWrapperImpl

      public BeanWrapperImpl(ObjectSE object)
      指定されたオブジェクトの新しい BeanWrapperImpl を作成します。
      パラメーター:
      object - この BeanWrapper によってラップされたオブジェクト
    • BeanWrapperImpl

      public BeanWrapperImpl(ClassSE<?> clazz)
      指定されたクラスの新しいインスタンスをラップして、新しい BeanWrapperImpl を作成します。
      パラメーター:
      clazz - インスタンス化してラップするクラス
    • BeanWrapperImpl

      public BeanWrapperImpl(ObjectSE object, StringSE nestedPath, ObjectSE rootObject)
      指定されたオブジェクトの新しい BeanWrapperImpl を作成し、オブジェクトが含まれているネストされたパスを登録します。
      パラメーター:
      object - この BeanWrapper によってラップされたオブジェクト
      nestedPath - オブジェクトのネストされたパス
      rootObject - パスの上部にあるルートオブジェクト
  • メソッドの詳細

    • setBeanInstance

      public void setBeanInstance(ObjectSE object)
      OptionalSE をアンラップせずに、Bean インスタンスを保持するように設定します。
      パラメーター:
      object - 実際のターゲットオブジェクト
      導入:
      4.3
      関連事項:
    • setWrappedInstance

      public void setWrappedInstance(ObjectSE object, @Nullable StringSE nestedPath, @Nullable ObjectSE rootObject)
      クラスからコピーされた説明: AbstractNestablePropertyAccessor
      新しいオブジェクトのクラスが置き換えられたオブジェクトのクラスと異なる場合にのみ、ターゲットオブジェクトを切り替えて、キャッシュされたイントロスペクションの結果を置き換えます。
      オーバーライド:
      クラス AbstractNestablePropertyAccessorsetWrappedInstance 
      パラメーター:
      object - 新しいターゲットオブジェクト
      nestedPath - オブジェクトのネストされたパス
      rootObject - パスの上部にあるルートオブジェクト
    • setIntrospectionClass

      protected void setIntrospectionClass(ClassSE<?> clazz)
      クラスをイントロスペクトに設定します。ターゲットオブジェクトが変更されたときに呼び出す必要があります。
      パラメーター:
      clazz - イントロスペクトするクラス
    • convertForProperty

      @Nullable public ObjectSE convertForProperty(@Nullable ObjectSE value, StringSE propertyName) throws TypeMismatchException
      指定されたプロパティの指定された値を後者の型に変換します。

      このメソッドは、BeanFactory での最適化のみを目的としています。プログラムによる変換には、convertIfNecessary メソッドを使用します。

      パラメーター:
      value - 変換する値
      propertyName - target プロパティ (ネストされたプロパティまたはインデックス付きプロパティはここではサポートされていないことに注意してください)
      戻り値:
      新しい値、場合によっては型変換の結果
      例外:
      TypeMismatchException - 型変換が失敗した場合
    • getLocalPropertyHandler

      @Nullable protected org.springframework.beans.BeanWrapperImpl.BeanPropertyHandler getLocalPropertyHandler(StringSE propertyName)
      クラスからコピーされた説明: AbstractNestablePropertyAccessor
      指定されたローカル propertyNameAbstractNestablePropertyAccessor.PropertyHandler を返します。現在のコンテキストで利用可能なプロパティに到達するためにのみ使用されます。
      次で指定:
      クラス AbstractNestablePropertyAccessorgetLocalPropertyHandler 
      パラメーター:
      propertyName - ローカルプロパティの名前
      戻り値:
      そのプロパティのハンドラー、または null が見つからない場合
    • newNestedPropertyAccessor

      protected BeanWrapperImpl newNestedPropertyAccessor(ObjectSE object, StringSE nestedPath)
      クラスからコピーされた説明: AbstractNestablePropertyAccessor
      新しいネストされたプロパティアクセサーインスタンスを作成します。サブクラスでオーバーライドして、PropertyAccessor サブクラスを作成できます。
      次で指定:
      クラス AbstractNestablePropertyAccessornewNestedPropertyAccessor 
      パラメーター:
      object - この PropertyAccessor によってラップされたオブジェクト
      nestedPath - オブジェクトのネストされたパス
      戻り値:
      ネストされた PropertyAccessor インスタンス
    • createNotWritablePropertyException

      protected NotWritablePropertyException createNotWritablePropertyException(StringSE propertyName)
      クラスからコピーされた説明: AbstractNestablePropertyAccessor
      指定されたプロパティの NotWritablePropertyException を作成します。
      次で指定:
      クラス AbstractNestablePropertyAccessorcreateNotWritablePropertyException 
    • getPropertyDescriptors

      public PropertyDescriptorSE[] getPropertyDescriptors()
      インターフェースからコピーされた説明: BeanWrapper
      ラップされたオブジェクトの PropertyDescriptors を取得します(標準の JavaBeans イントロスペクションによって決定されます)。
      次で指定:
      インターフェース BeanWrappergetPropertyDescriptors 
      戻り値:
      ラップされたオブジェクトの PropertyDescriptors
    • getPropertyDescriptor

      public PropertyDescriptorSE getPropertyDescriptor(StringSE propertyName) throws InvalidPropertyException
      インターフェースからコピーされた説明: BeanWrapper
      ラップされたオブジェクトの特定のプロパティのプロパティ記述子を取得します。
      次で指定:
      インターフェース BeanWrappergetPropertyDescriptor 
      パラメーター:
      propertyName - 記述子を取得するプロパティ (ネストされたパスである可能性がありますが、インデックス付き / マップされたプロパティではありません)
      戻り値:
      指定されたプロパティのプロパティ記述子
      例外:
      InvalidPropertyException - そのようなプロパティがない場合