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, convertIfNecessarycopyCustomEditorsTo, copyDefaultEditorsTo, findCustomEditor, getConversionService, getDefaultEditor, guessPropertyTypeFromEditors, hasCustomEditorForElement, overrideDefaultEditor, registerCustomEditor, registerCustomEditor, registerDefaultEditors, setConversionService, useConfigValueEditorscloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEgetConversionService, setConversionServicegetPropertyTypeDescriptor, isReadableProperty, isWritablePropertyfindCustomEditor, registerCustomEditor, registerCustomEditorconvertIfNecessary, convertIfNecessary, convertIfNecessarypublic void setExtractOldValueForEditor(boolean extractOldValueForEditor)
ConfigurablePropertyAccessorConfigurablePropertyAccessor の setExtractOldValueForEditor public boolean isExtractOldValueForEditor()
ConfigurablePropertyAccessorConfigurablePropertyAccessor の isExtractOldValueForEditor public void setAutoGrowNestedPaths(boolean autoGrowNestedPaths)
ConfigurablePropertyAccessornull 値を含むネストされたパスを「自動拡張」するかどうかを設定します。true の場合、null パスの場所にデフォルトのオブジェクト値が入力され、結果として NullValueInNestedPathException になる代わりに走査されます。
デフォルトは、プレーンな PropertyAccessor インスタンスの false です。
ConfigurablePropertyAccessor の setAutoGrowNestedPaths public boolean isAutoGrowNestedPaths()
ConfigurablePropertyAccessorConfigurablePropertyAccessor の isAutoGrowNestedPaths public void setPropertyValue(PropertyValue pv) throws BeansException
PropertyAccessorPropertyAccessor の setPropertyValue pv - 新しいプロパティ値を含むオブジェクト InvalidPropertyException - そのようなプロパティがない場合、またはプロパティが書き込み可能でない場合 PropertyAccessException - プロパティは有効であるが、アクセサーメソッドが失敗したか、型の不一致が発生した場合 BeansExceptionpublic void setPropertyValues(MapSE<?,?> map) throws BeansException
PropertyAccessorPropertyValues からの一括更新はより強力です: この方法は便宜上提供されています。動作は PropertyAccessor.setPropertyValues(PropertyValues) メソッドの動作と同じになります。
PropertyAccessor の setPropertyValues map - プロパティを取得するマップ。プロパティ名をキーとするプロパティ値オブジェクトを含みます InvalidPropertyException - そのようなプロパティがない場合、またはプロパティが書き込み可能でない場合 PropertyBatchUpdateException - バッチ更新中に特定のプロパティに対して 1 つ以上の PropertyAccessExceptions が発生した場合。この例外には、個々の PropertyAccessExceptions がすべてバンドルされています。他のすべてのプロパティは正常に更新されます。BeansExceptionpublic void setPropertyValues(PropertyValues pvs) throws BeansException
PropertyAccessor バッチ更新の実行は、単一の更新の実行とは異なります。このクラスの実装は、 回復可能なエラー(型の不一致など、無効なフィールド名ではないなど)が発生した場合にプロパティを更新し続けます。個々のエラーをすべて含む PropertyBatchUpdateException この例外を後で調べて、すべてのバインディングエラーを確認できます。正常に更新されたプロパティは変更されたままです。
不明なフィールドや無効なフィールドは許可されません。
PropertyAccessor の setPropertyValues pvs - ターゲットオブジェクトに設定する PropertyValuesInvalidPropertyException - そのようなプロパティがない場合、またはプロパティが書き込み可能でない場合 PropertyBatchUpdateException - バッチ更新中に特定のプロパティに対して 1 つ以上の PropertyAccessExceptions が発生した場合。この例外には、個々の PropertyAccessExceptions がすべてバンドルされています。他のすべてのプロパティは正常に更新されます。BeansExceptionPropertyAccessor.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 がすべてバンドルされています。他のすべてのプロパティは正常に更新されます。BeansExceptionPropertyAccessor.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 - プロパティは有効だったが、アクセサーメソッドが失敗した場合 BeansExceptionpublic abstract void setPropertyValue(StringSE propertyName, @Nullable ObjectSE value) throws BeansException
PropertyAccessor の setPropertyValue propertyName - 値を設定するプロパティの名前 value - 新しい価値 InvalidPropertyException - そのようなプロパティがない場合、またはプロパティが書き込み可能でない場合 PropertyAccessException - プロパティは有効であるが、アクセサーメソッドが失敗したか、型の不一致が発生した場合 BeansException