public void register(LiquibaseDataType type) {
        try {
            List<String> names = new ArrayList<>();
            names.add(type.getName());
            names.addAll(Arrays.asList(type.getAliases()));

            Comparator<Class<? extends LiquibaseDataType>> comparator = (o1, o2) -> {
                try {
                    return -1 * Integer.compare(o1.getConstructor().newInstance().getPriority(), o2.getConstructor().newInstance().getPriority());
                } catch (Exception e) {
                    throw new UnexpectedLiquibaseException(e);
                }
            };

            for (String name : names) {
                name = name.toLowerCase(Locale.US);
                registry.computeIfAbsent(name, k -> new ArrayList<>());
                List<Class<? extends LiquibaseDataType>> classes = registry.get(name);
                classes.add(type.getClass());
                classes.sort(comparator);
            }
        } catch (Exception e) {
            throw new UnexpectedLiquibaseException(e);
        }
    }
public void register(LiquibaseDataType type) {
        try {
            List<String> names = new ArrayList<>();
            names.add(type.getName());
            names.addAll(Arrays.asList(type.getAliases()));

            Comparator<Class<? extends LiquibaseDataType>> comparator = (o1, o2) -> {
                try {
                    return -1 * Integer.compare(o1.getConstructor().newInstance().getPriority(), o2.getConstructor().newInstance().getPriority());
                } catch (Exception e) {
                    throw new UnexpectedLiquibaseException(e);
                }
            };

            for (String name : names) {
                name = name.toLowerCase(Locale.US);
                registry.computeIfAbsent(name, k -> new ArrayList<>());
                List<Class<? extends LiquibaseDataType>> classes = registry.get(name);
                classes.add(type.getClass());
                classes.sort(comparator);
            }
        } catch (Exception e) {
            throw new UnexpectedLiquibaseException(e);
        }
    }
public void register ( LiquibaseDataType type ) { try { List < String > names = new ArrayList <> ( ) ; names . add ( type . getName ( ) ) ; names . addAll ( Arrays . asList ( type . getAliases ( ) ) ) ; Comparator < Class < ? extends LiquibaseDataType > > comparator = ( o1 , o2 ) -> { try { return - 1 * Integer . compare ( o1 . getConstructor ( ) . newInstance ( ) . getPriority ( ) , o2 . getConstructor ( ) . newInstance ( ) . getPriority ( ) ) ; } catch ( Exception e ) { throw new UnexpectedLiquibaseException ( e ) ; } } ; for ( String name : names ) { name = name . toLowerCase ( Locale . US ) ; registry . computeIfAbsent ( name , k -> new ArrayList <> ( ) ) ; List < Class < ? extends LiquibaseDataType > > classes = registry . get ( name ) ; classes . add ( type . getClass ( ) ) ; classes . sort ( comparator ) ; } } catch ( Exception e ) { throw new UnexpectedLiquibaseException ( e ) ; } }
Registers an implementation of {@link LiquibaseDataType} with both its name and all aliases for the data type
as a handler in the factory's registry. Classes implement the {@link LiquibaseDataType#getPriority()}, which will
cause the class with the highest priority to become the primary handler for the data type.
@param type the implementation to register
Registers an implementation of {