public class PropertyEditorRegistrySupport extends ObjectSE implements PropertyEditorRegistry
PropertyEditorRegistry
インターフェースの基本実装。デフォルトのエディターとカスタムエディターの管理を提供します。主に BeanWrapperImpl
の基本クラスとして機能します。PropertyEditorManager
SE, PropertyEditorSupport.setAsText(java.lang.String)
SE, PropertyEditorSupport.setValue(java.lang.Object)
SEコンストラクターと説明 |
---|
PropertyEditorRegistrySupport() |
修飾子と型 | メソッドと説明 |
---|---|
protected void | copyCustomEditorsTo(PropertyEditorRegistry target, StringSE nestedProperty) このインスタンスに登録されているカスタムエディターを特定のターゲットレジストリにコピーします。 |
protected void | copyDefaultEditorsTo(PropertyEditorRegistrySupport target) このインスタンスに登録されているデフォルトのエディターを、指定されたターゲットレジストリにコピーします。 |
PropertyEditorSE | findCustomEditor(ClassSE<?> requiredType, StringSE propertyPath) 指定された型とプロパティのカスタムプロパティエディターを見つけます。 |
ConversionService | getConversionService() 関連する ConversionService があれば、それを返します。 |
PropertyEditorSE | getDefaultEditor(ClassSE<?> requiredType) 指定されたプロパティ型のデフォルトエディターがあれば、それを取得します。 |
protected ClassSE<?> | getPropertyType(StringSE propertyPath) 指定されたプロパティパスのプロパティ型を決定します。 |
protected ClassSE<?> | guessPropertyTypeFromEditors(StringSE propertyName) 登録されたカスタムエディターから特定のプロパティのプロパティ型を推測します(特定の型に登録されている場合)。 |
boolean | hasCustomEditorForElement(ClassSE<?> elementType, StringSE propertyPath) このレジストリに、指定された配列 / コレクション要素のカスタムエディターが含まれているかどうかを確認します。 |
void | overrideDefaultEditor(ClassSE<?> requiredType, PropertyEditorSE propertyEditor) 指定された型のデフォルトエディターを、指定されたプロパティエディターでオーバーライドします。 |
void | registerCustomEditor(ClassSE<?> requiredType, PropertyEditorSE propertyEditor) 指定された型のすべてのプロパティに対して、指定されたカスタムプロパティエディターを登録します。 |
void | registerCustomEditor(ClassSE<?> requiredType, StringSE propertyPath, PropertyEditorSE propertyEditor) 指定された型とプロパティ、または指定された型のすべてのプロパティに対して、指定されたカスタムプロパティエディターを登録します。 |
protected void | registerDefaultEditors() このレジストリインスタンスのデフォルトエディターをアクティブ化し、必要に応じてデフォルトエディターを遅延登録できるようにします。 |
void | setConversionService(ConversionService conversionService) JavaBeans PropertyEditors の代わりに、プロパティ値の変換に使用する Spring 3.0 ConversionService を指定します。 |
void | useConfigValueEditors() StringArrayPropertyEditor など、構成のみを目的とした構成値エディターをアクティブにします。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public void setConversionService(@Nullable ConversionService conversionService)
@Nullable public ConversionService getConversionService()
protected void registerDefaultEditors()
public void useConfigValueEditors()
StringArrayPropertyEditor
など、構成のみを目的とした構成値エディターをアクティブにします。 これらのエディターは、一般にデータバインディングの目的には不適切であるため、デフォルトでは登録されていません。もちろん、registerCustomEditor(java.lang.Class<?>, java.beans.PropertyEditor)
を使用して、どのような場合でも個別に登録できます。
public void overrideDefaultEditor(ClassSE<?> requiredType, PropertyEditorSE propertyEditor)
これはカスタムエディターの登録とは異なり、エディターは意味的にはデフォルトエディターであることに注意してください。ConversionService はこのようなデフォルトのエディターをオーバーライドしますが、カスタムエディターは通常 ConversionService をオーバーライドします。
requiredType
- プロパティの型 propertyEditor
- 登録するエディター registerCustomEditor(Class, PropertyEditor)
@Nullable public PropertyEditorSE getDefaultEditor(ClassSE<?> requiredType)
デフォルトのエディターがアクティブな場合、遅延登録します。
requiredType
- プロパティの型 null
(見つからない場合)registerDefaultEditors()
protected void copyDefaultEditorsTo(PropertyEditorRegistrySupport target)
target
- コピー先のターゲットレジストリ public void registerCustomEditor(ClassSE<?> requiredType, PropertyEditorSE propertyEditor)
PropertyEditorRegistry
PropertyEditorRegistry
の registerCustomEditor
requiredType
- プロパティの型 propertyEditor
- 登録するエディター public void registerCustomEditor(@Nullable ClassSE<?> requiredType, @Nullable StringSE propertyPath, PropertyEditorSE propertyEditor)
PropertyEditorRegistry
プロパティパスが配列またはコレクションプロパティを示す場合、エディターは配列 / コレクション自体(PropertyEditor
SE が配列またはコレクション値を作成する必要がある)または各要素(PropertyEditor
が要素型を作成する必要がある)のいずれかに適用されます。指定された必須型に応じて。
メモ: プロパティパスごとに 1 つの登録済みカスタムエディターのみがサポートされます。コレクション / 配列の場合、コレクション / 配列と同じプロパティの各要素の両方にエディターを登録しないでください。
たとえば、"items[n].quantity" (すべての値 n)のエディターを登録する場合は、このメソッドの "propertyPath" 引数の値として "items.quantity" を使用します。
PropertyEditorRegistry
の registerCustomEditor
requiredType
- プロパティの型。これは、プロパティが指定されている場合でも null
である可能性がありますが、特にコレクションの場合は特に指定する必要があります。エディター全体がコレクション自体に適用されるか、各エントリに適用されるかを明確にします。一般的なルールとして、Collection/array の場合は、ここで null
を指定しないでください! propertyPath
- プロパティのパス(名前またはネストされたパス)、または指定された型のすべてのプロパティのエディターを登録する場合は null
propertyEditor
- 登録するエディター @Nullable public PropertyEditorSE findCustomEditor(@Nullable ClassSE<?> requiredType, @Nullable StringSE propertyPath)
PropertyEditorRegistry
PropertyEditorRegistry
の findCustomEditor
requiredType
- プロパティの型 (プロパティが指定されている場合は null
にすることができますが、一貫性チェックのためにいずれにしても指定する必要があります)propertyPath
- プロパティのパス(名前またはネストされたパス)、または特定の型のすべてのプロパティのエディターを探している場合は null
null
public boolean hasCustomEditorForElement(@Nullable ClassSE<?> elementType, @Nullable StringSE propertyPath)
elementType
- 要素のターゲット型 (不明な場合は null
にすることができます)propertyPath
- プロパティパス (通常は、配列 / コレクションです。不明な場合は null
にすることができます)@Nullable protected ClassSE<?> getPropertyType(StringSE propertyPath)
必須の型が指定されていない場合に findCustomEditor(java.lang.Class<?>, java.lang.String)
によって呼び出され、プロパティパスを指定しただけでも型固有のエディターを検索できるようにします。
デフォルトの実装は、常に null
を返します。BeanWrapperImpl は、BeanWrapper インターフェースで定義されている標準の getPropertyType
メソッドでこれをオーバーライドします。
propertyPath
- 型を決定するプロパティパス null
PropertyAccessor.getPropertyType(String)
@Nullable protected ClassSE<?> guessPropertyTypeFromEditors(StringSE propertyName)
propertyName
- プロパティの名前 null
protected void copyCustomEditorsTo(PropertyEditorRegistry target, @Nullable StringSE nestedProperty)
target
- コピー先のターゲットレジストリ nestedProperty
- ターゲットレジストリのネストされたプロパティパス(存在する場合)。これが null 以外の場合、このネストされたプロパティのパスに登録されたエディターのみがコピーされます。これが null の場合、すべてのエディターがコピーされます。