public abstract class AbstractPropertyAccessor extends TypeConverterSupport implements ConfigurablePropertyAccessor
PropertyAccessor
インターフェースの抽象実装。すべての便利なメソッドの基本実装を提供します。実際のプロパティアクセスの実装はサブクラスに任されています。getPropertyValue(java.lang.String)
, setPropertyValue(org.springframework.beans.PropertyValue)
NESTED_PROPERTY_SEPARATOR, NESTED_PROPERTY_SEPARATOR_CHAR, PROPERTY_KEY_PREFIX, PROPERTY_KEY_PREFIX_CHAR, PROPERTY_KEY_SUFFIX, PROPERTY_KEY_SUFFIX_CHAR
コンストラクターと説明 |
---|
AbstractPropertyAccessor() |
修飾子と型 | メソッドと説明 |
---|---|
ClassSE<?> | getPropertyType(StringSE propertyPath) 指定されたプロパティパスのプロパティ型を決定します。 |
abstract ObjectSE | getPropertyValue(StringSE propertyName) 実際にプロパティの値を取得します。 |
boolean | isAutoGrowNestedPaths() ネストされたパスの「自動拡張」がアクティブになっているかどうかを返します。 |
boolean | isExtractOldValueForEditor() プロパティエディターをプロパティの新しい値に適用するときに、古いプロパティ値を抽出するかどうかを返します。 |
void | setAutoGrowNestedPaths(boolean autoGrowNestedPaths) このインスタンスが null 値を含むネストされたパスを「自動拡張」するかどうかを設定します。 |
void | setExtractOldValueForEditor(boolean extractOldValueForEditor) プロパティエディターをプロパティの新しい値に適用するときに、古いプロパティ値を抽出するかどうかを設定します。 |
void | setPropertyValue(PropertyValue pv) 指定した値を現在のプロパティ値として設定します。 |
abstract void | setPropertyValue(StringSE propertyName, ObjectSE value) 実際にプロパティ値を設定します。 |
void | setPropertyValues(MapSE<?,?> map) マップからバッチ更新を実行します。 |
void | setPropertyValues(PropertyValues pvs) バッチ更新を実行するための推奨される方法。 |
void | setPropertyValues(PropertyValues pvs, boolean ignoreUnknown) 動作をより詳細に制御してバッチ更新を実行します。 |
void | setPropertyValues(PropertyValues pvs, boolean ignoreUnknown, boolean ignoreInvalid) 動作を完全に制御してバッチ更新を実行します。 |
convertIfNecessary, convertIfNecessary, convertIfNecessary, convertIfNecessary
copyCustomEditorsTo, copyDefaultEditorsTo, findCustomEditor, getConversionService, getDefaultEditor, guessPropertyTypeFromEditors, hasCustomEditorForElement, overrideDefaultEditor, registerCustomEditor, registerCustomEditor, registerDefaultEditors, setConversionService, useConfigValueEditors
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
getConversionService, setConversionService
getPropertyTypeDescriptor, isReadableProperty, isWritableProperty
findCustomEditor, registerCustomEditor, registerCustomEditor
convertIfNecessary, convertIfNecessary, convertIfNecessary, convertIfNecessary
public void setExtractOldValueForEditor(boolean extractOldValueForEditor)
ConfigurablePropertyAccessor
ConfigurablePropertyAccessor
の setExtractOldValueForEditor
public boolean isExtractOldValueForEditor()
ConfigurablePropertyAccessor
ConfigurablePropertyAccessor
の isExtractOldValueForEditor
public void setAutoGrowNestedPaths(boolean autoGrowNestedPaths)
ConfigurablePropertyAccessor
null
値を含むネストされたパスを「自動拡張」するかどうかを設定します。true
の場合、null
パスの場所にデフォルトのオブジェクト値が入力され、結果として NullValueInNestedPathException
になる代わりに走査されます。
デフォルトは、プレーンな PropertyAccessor インスタンスの false
です。
ConfigurablePropertyAccessor
の setAutoGrowNestedPaths
public boolean isAutoGrowNestedPaths()
ConfigurablePropertyAccessor
ConfigurablePropertyAccessor
の isAutoGrowNestedPaths
public void setPropertyValue(PropertyValue pv) throws BeansException
PropertyAccessor
PropertyAccessor
の setPropertyValue
pv
- 新しいプロパティ値を含むオブジェクト InvalidPropertyException
- そのようなプロパティがない場合、またはプロパティが書き込み可能でない場合 PropertyAccessException
- プロパティは有効であるが、アクセサーメソッドが失敗したか、型の不一致が発生した場合 BeansException
public void setPropertyValues(MapSE<?,?> map) throws BeansException
PropertyAccessor
PropertyValues からの一括更新はより強力です: この方法は便宜上提供されています。動作は PropertyAccessor.setPropertyValues(PropertyValues)
メソッドの動作と同じになります。
PropertyAccessor
の setPropertyValues
map
- プロパティを取得するマップ。プロパティ名をキーとするプロパティ値オブジェクトを含みます InvalidPropertyException
- そのようなプロパティがない場合、またはプロパティが書き込み可能でない場合 PropertyBatchUpdateException
- バッチ更新中に特定のプロパティに対して 1 つ以上の PropertyAccessExceptions が発生した場合。この例外には、個々の PropertyAccessExceptions がすべてバンドルされています。他のすべてのプロパティは正常に更新されます。BeansException
public void setPropertyValues(PropertyValues pvs) throws BeansException
PropertyAccessor
バッチ更新の実行は、単一の更新の実行とは異なります。このクラスの実装は、 回復可能なエラー(型の不一致など、無効なフィールド名ではないなど)が発生した場合にプロパティを更新し続けます。個々のエラーをすべて含む PropertyBatchUpdateException
この例外を後で調べて、すべてのバインディングエラーを確認できます。正常に更新されたプロパティは変更されたままです。
不明なフィールドや無効なフィールドは許可されません。
PropertyAccessor
の setPropertyValues
pvs
- ターゲットオブジェクトに設定する PropertyValuesInvalidPropertyException
- そのようなプロパティがない場合、またはプロパティが書き込み可能でない場合 PropertyBatchUpdateException
- バッチ更新中に特定のプロパティに対して 1 つ以上の PropertyAccessExceptions が発生した場合。この例外には、個々の PropertyAccessExceptions がすべてバンドルされています。他のすべてのプロパティは正常に更新されます。BeansException
PropertyAccessor.setPropertyValues(PropertyValues, boolean, boolean)
public void setPropertyValues(PropertyValues pvs, boolean ignoreUnknown) throws BeansException
PropertyAccessor
バッチ更新の実行は、単一の更新の実行とは異なります。このクラスの実装は、 回復可能なエラー(型の不一致など、無効なフィールド名ではないなど)が発生した場合にプロパティを更新し続けます。個々のエラーをすべて含む PropertyBatchUpdateException
この例外を後で調べて、すべてのバインディングエラーを確認できます。正常に更新されたプロパティは変更されたままです。
PropertyAccessor
の setPropertyValues
pvs
- ターゲットオブジェクトに設定する PropertyValuesignoreUnknown
- 未知のプロパティを無視するべきか (Bean にはありません)InvalidPropertyException
- そのようなプロパティがない場合、またはプロパティが書き込み可能でない場合 PropertyBatchUpdateException
- バッチ更新中に特定のプロパティに対して 1 つ以上の PropertyAccessExceptions が発生した場合。この例外には、個々の PropertyAccessExceptions がすべてバンドルされています。他のすべてのプロパティは正常に更新されます。BeansException
PropertyAccessor.setPropertyValues(PropertyValues, boolean, boolean)
public void setPropertyValues(PropertyValues pvs, boolean ignoreUnknown, boolean ignoreInvalid) throws BeansException
PropertyAccessor
バッチ更新の実行は、単一の更新の実行とは異なります。このクラスの実装は、 回復可能なエラー(型の不一致など、無効なフィールド名ではないなど)が発生した場合にプロパティを更新し続けます。個々のエラーをすべて含む PropertyBatchUpdateException
この例外を後で調べて、すべてのバインディングエラーを確認できます。正常に更新されたプロパティは変更されたままです。
PropertyAccessor
の setPropertyValues
pvs
- ターゲットオブジェクトに設定する PropertyValuesignoreUnknown
- 未知のプロパティを無視するべきか (Bean にはありません)ignoreInvalid
- 無効なプロパティを無視する必要があります (見つかりましたがアクセスできません)InvalidPropertyException
- そのようなプロパティがない場合、またはプロパティが書き込み可能でない場合 PropertyBatchUpdateException
- バッチ更新中に特定のプロパティに対して 1 つ以上の PropertyAccessExceptions が発生した場合。この例外には、個々の PropertyAccessExceptions がすべてバンドルされています。他のすべてのプロパティは正常に更新されます。BeansException
@Nullable public ClassSE<?> getPropertyType(StringSE propertyPath)
PropertyEditorRegistrySupport
必須の型が指定されていない場合に PropertyEditorRegistrySupport.findCustomEditor(java.lang.Class<?>, java.lang.String)
によって呼び出され、プロパティパスを指定しただけでも型固有のエディターを検索できるようにします。
デフォルトの実装は、常に null
を返します。BeanWrapperImpl は、BeanWrapper インターフェースで定義されている標準の getPropertyType
メソッドでこれをオーバーライドします。
PropertyAccessor
の getPropertyType
PropertyEditorRegistrySupport
の getPropertyType
propertyPath
- 型を決定するプロパティパス null
PropertyAccessor.getPropertyType(String)
@Nullable public abstract ObjectSE getPropertyValue(StringSE propertyName) throws BeansException
PropertyAccessor
の getPropertyValue
propertyName
- 値を取得するプロパティの名前 InvalidPropertyException
- そのようなプロパティがない場合、またはプロパティが読めない場合 PropertyAccessException
- プロパティは有効だったが、アクセサーメソッドが失敗した場合 BeansException
public abstract void setPropertyValue(StringSE propertyName, @Nullable ObjectSE value) throws BeansException
PropertyAccessor
の setPropertyValue
propertyName
- 値を設定するプロパティの名前 value
- 新しい価値 InvalidPropertyException
- そのようなプロパティがない場合、またはプロパティが書き込み可能でない場合 PropertyAccessException
- プロパティは有効であるが、アクセサーメソッドが失敗したか、型の不一致が発生した場合 BeansException