public class GenericConversionService extends ObjectSE implements ConfigurableConversionService
ConversionService
実装。ConfigurableConversionService
インターフェースを介して、登録 API として ConverterRegistry
を間接的に実装します。コンストラクターと説明 |
---|
GenericConversionService() |
修飾子と型 | メソッドと説明 |
---|---|
<S,T> void | addConverter(ClassSE<S> sourceType, ClassSE<T> targetType, Converter<? super S,? extends T> converter) このレジストリにプレーンコンバーターを追加します。 |
void | addConverter(Converter<?,?> converter) このレジストリにプレーンコンバーターを追加します。 |
void | addConverter(GenericConverter converter) このレジストリに汎用コンバーターを追加します。 |
void | addConverterFactory(ConverterFactory<?,?> factory) このレジストリに範囲コンバーターファクトリを追加します。 |
boolean | canBypassConvert(TypeDescriptor sourceType, TypeDescriptor targetType) ソース型とターゲット型間の変換をバイパスできるかどうかを返します。 |
boolean | canConvert(ClassSE<?> sourceType, ClassSE<?> targetType) sourceType のオブジェクトを targetType に変換できる場合は、true を返します。 |
boolean | canConvert(TypeDescriptor sourceType, TypeDescriptor targetType) sourceType のオブジェクトを targetType に変換できる場合は、true を返します。 |
<T> T | convert(ObjectSE source, ClassSE<T> targetType) 指定された source を指定された targetType に変換します。 |
ObjectSE | convert(ObjectSE source, TypeDescriptor targetType) ソースオブジェクトを指定された targetType に変換するための簡易操作。ここで、ターゲット型は追加の変換コンテキストを提供する記述子です。 |
ObjectSE | convert(ObjectSE source, TypeDescriptor sourceType, TypeDescriptor targetType) 指定された source を指定された targetType に変換します。 |
protected ObjectSE | convertNullSource(TypeDescriptor sourceType, TypeDescriptor targetType) null ソースを変換するテンプレートメソッド。 |
protected GenericConverter | getConverter(TypeDescriptor sourceType, TypeDescriptor targetType) 特定の sourceType/targetType ペアのコンバーターを検索するフックメソッド。 |
protected GenericConverter | getDefaultConverter(TypeDescriptor sourceType, TypeDescriptor targetType) 指定された sourceType/targetType ペアのコンバーターが見つからない場合、デフォルトのコンバーターを返します。 |
void | removeConvertible(ClassSE<?> sourceType, ClassSE<?> targetType) sourceType から targetType へのコンバーターをすべて削除します。 |
StringSE | toString() |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, waitSE, waitSE, waitSE
public void addConverter(Converter<?,?> converter)
ConverterRegistry
ConverterRegistry
の addConverter
public <S,T> void addConverter(ClassSE<S> sourceType, ClassSE<T> targetType, Converter<? super S,? extends T> converter)
ConverterRegistry
各ペアの Converter クラスを作成することなく、複数の異なるペアに対して Converter を再利用できます。
ConverterRegistry
の addConverter
public void addConverter(GenericConverter converter)
ConverterRegistry
ConverterRegistry
の addConverter
public void addConverterFactory(ConverterFactory<?,?> factory)
ConverterRegistry
ConverterRegistry
の addConverterFactory
public void removeConvertible(ClassSE<?> sourceType, ClassSE<?> targetType)
ConverterRegistry
sourceType
から targetType
へのコンバーターをすべて削除します。ConverterRegistry
の removeConvertible
sourceType
- ソース型 targetType
- ターゲット型 public boolean canConvert(@Nullable ClassSE<?> sourceType, ClassSE<?> targetType)
ConversionService
sourceType
のオブジェクトを targetType
に変換できる場合は、true
を返します。 このメソッドが true
を返す場合、ConversionService.convert(Object, Class)
が sourceType
のインスタンスを targetType
に変換できることを意味します。
コレクション、配列、マップ型に関する特記事項: コレクション、配列、マップ型間の変換では、基礎となる要素が変換可能でない場合に変換呼び出しが ConversionException
を生成する場合でも、このメソッドは true
を返します。呼び出し元は、コレクションとマップを操作するときにこの例外的なケースを処理することが期待されています。
ConversionService
の canConvert
sourceType
- 変換元のソース型 (ソースが null
の場合、null
になる場合があります)targetType
- 変換するターゲット型 (必須)true
、そうでない場合は false
public boolean canConvert(@Nullable TypeDescriptor sourceType, TypeDescriptor targetType)
ConversionService
sourceType
のオブジェクトを targetType
に変換できる場合は、true
を返します。TypeDescriptors は、変換が発生するソースとターゲットの場所(多くの場合、オブジェクトフィールドまたはプロパティの場所)に関する追加のコンテキストを提供します。 このメソッドが true
を返す場合、ConversionService.convert(Object, TypeDescriptor, TypeDescriptor)
が sourceType
のインスタンスを targetType
に変換できることを意味します。
コレクション、配列、マップ型に関する特記事項: コレクション、配列、マップ型間の変換では、基礎となる要素が変換可能でない場合に変換呼び出しが ConversionException
を生成する場合でも、このメソッドは true
を返します。呼び出し元は、コレクションとマップを操作するときにこの例外的なケースを処理することが期待されています。
ConversionService
の canConvert
sourceType
- 変換元のソース型に関するコンテキスト (ソースが null
の場合、null
になる場合があります)targetType
- 変換するターゲット型に関するコンテキスト (必須)true
、そうでない場合は false
public boolean canBypassConvert(@Nullable TypeDescriptor sourceType, TypeDescriptor targetType)
より正確には、sourceType のオブジェクトを変更せずにソースオブジェクトを返すことでターゲット型に変換できる場合、このメソッドは true を返します。
sourceType
- 変換元のソース型に関するコンテキスト (ソースが null
の場合、null
になる場合があります)targetType
- 変換するターゲット型に関するコンテキスト (必須)true
変換をバイパスできる場合。それ以外の場合は false
IllegalArgumentExceptionSE
- targetType が null
の場合 @Nullable public <T> T convert(@Nullable ObjectSE source, ClassSE<T> targetType)
ConversionService
source
を指定された targetType
に変換します。ConversionService
の convert
source
- 変換するソースオブジェクト (null
の場合があります)targetType
- 変換するターゲット型 (必須)@Nullable public ObjectSE convert(@Nullable ObjectSE source, @Nullable TypeDescriptor sourceType, TypeDescriptor targetType)
ConversionService
source
を指定された targetType
に変換します。TypeDescriptors は、変換が発生するソースおよびターゲットの場所(多くの場合、オブジェクトフィールドまたはプロパティの場所)に関する追加のコンテキストを提供します。ConversionService
の convert
source
- 変換するソースオブジェクト (null
の場合があります)sourceType
- 変換元のソース型に関するコンテキスト (ソースが null
の場合、null
になる場合があります)targetType
- 変換するターゲット型に関するコンテキスト (必須)targetType
のインスタンス @Nullable public ObjectSE convert(@Nullable ObjectSE source, TypeDescriptor targetType)
convert(Object, TypeDescriptor, TypeDescriptor)
に単純に委譲し、TypeDescriptor.forObject(Object)
を使用してソース型記述子の構築をカプセル化します。source
- ソースオブジェクト targetType
- ターゲット型 ConversionException
- 変換例外が発生した場合 IllegalArgumentExceptionSE
- targetType が null
である場合、または sourceType が null
であるが、ソースが null
でない場合 public StringSE toString()
ObjectSE
の toStringSE
@Nullable protected ObjectSE convertNullSource(@Nullable TypeDescriptor sourceType, TypeDescriptor targetType)
null
ソースを変換するテンプレートメソッド。 デフォルトの実装は、ターゲット型が java.util.Optional
の場合、null
または Java 8 Optional.empty()
SE インスタンスを返します。サブクラスはこれをオーバーライドして、特定のターゲット型のカスタム null
オブジェクトを返すことができます。
sourceType
- 変換元のソース型 targetType
- 変換するターゲット型 @Nullable protected GenericConverter getConverter(TypeDescriptor sourceType, TypeDescriptor targetType)
sourceType
- 変換元のソース型 targetType
- 変換するターゲット型 null
getDefaultConverter(TypeDescriptor, TypeDescriptor)
@Nullable protected GenericConverter getDefaultConverter(TypeDescriptor sourceType, TypeDescriptor targetType)
ソース型がターゲット型に割り当て可能な場合、NO_OP Converter を返します。それ以外の場合は null
を返し、適切なコンバーターが見つからなかったことを示します。
sourceType
- 変換元のソース型 targetType
- 変換するターゲット型