Class TypeConverterRegistry


  • public class TypeConverterRegistry
    extends java.lang.Object
    Registry for TypeConverter plugins.
    Since:
    2.1
    • Field Detail

      • LOGGER

        private static final Logger LOGGER
      • INSTANCE_LOCK

        private static final java.lang.Object INSTANCE_LOCK
      • registry

        private final java.util.concurrent.ConcurrentMap<java.lang.reflect.Type,​TypeConverter<?>> registry
    • Constructor Detail

      • TypeConverterRegistry

        private TypeConverterRegistry()
    • Method Detail

      • getInstance

        public static TypeConverterRegistry getInstance()
        Gets the singleton instance of the TypeConverterRegistry.
        Returns:
        the singleton instance.
      • findCompatibleConverter

        public TypeConverter<?> findCompatibleConverter​(java.lang.reflect.Type type)
        Finds a TypeConverter for the given Type, falling back to an assignment-compatible TypeConverter if none exist for the given type. That is, if the given Type does not have a TypeConverter, but another Type which can be assigned to the given Type does have a TypeConverter, then that TypeConverter will be used and registered.
        Parameters:
        type - the Type to find a TypeConverter for (must not be null).
        Returns:
        a TypeConverter for the given Type.
        Throws:
        java.util.UnknownFormatConversionException - if no TypeConverter can be found for the given type.
      • loadKnownTypeConverters

        private void loadKnownTypeConverters​(java.util.Collection<PluginType<?>> knownTypes)
      • registerConverter

        private TypeConverter<?> registerConverter​(java.lang.reflect.Type conversionType,
                                                   TypeConverter<?> converter)
        Attempts to register the given converter and returns the effective converter associated with the given type.

        Registration will fail if there already exists a converter for the given type and neither the existing, nor the provided converter extends from Comparable.

      • getTypeConverterSupportedType

        private static java.lang.reflect.Type getTypeConverterSupportedType​(java.lang.Class<? extends TypeConverter> typeConverterClass)
      • registerPrimitiveTypes

        private void registerPrimitiveTypes()
      • registerTypeAlias

        private void registerTypeAlias​(java.lang.reflect.Type knownType,
                                       java.lang.reflect.Type aliasType)