Example usage for org.springframework.core.convert.converter GenericConverter getConvertibleTypes

List of usage examples for org.springframework.core.convert.converter GenericConverter getConvertibleTypes

Introduction

In this page you can find the example usage for org.springframework.core.convert.converter GenericConverter getConvertibleTypes.

Prototype

@Nullable
Set<ConvertiblePair> getConvertibleTypes();

Source Link

Document

Return the source and target types that this converter can convert between.

Usage

From source file:com.frank.search.solr.core.convert.CustomConversions.java

private void registerConversion(Object converter) {
    Class<?> type = converter.getClass();
    boolean isWriting = type.isAnnotationPresent(WritingConverter.class);
    boolean isReading = type.isAnnotationPresent(ReadingConverter.class);

    if (!isReading && !isWriting) {
        isReading = true;//  w  ww. ja v  a  2 s . co  m
        isWriting = true;
    }

    if (converter instanceof GenericConverter) {
        GenericConverter genericConverter = (GenericConverter) converter;
        for (ConvertiblePair pair : genericConverter.getConvertibleTypes()) {
            register(new ConvertibleContext(pair, isReading, isWriting));
        }
    } else if (converter instanceof Converter) {
        Class<?>[] arguments = GenericTypeResolver.resolveTypeArguments(converter.getClass(), Converter.class);
        register(new ConvertibleContext(arguments[0], arguments[1], isReading, isWriting));
    } else {
        throw new IllegalArgumentException(
                "Unsupported Converter type! Expected either GenericConverter if Converter.");
    }
}

From source file:io.twipple.springframework.data.clusterpoint.convert.support.CustomConversions.java

/**
 * Registers a conversion for the given converter. Inspects either generics or the convertible pairs returned
 * by a {@link GenericConverter}./*w ww .ja  v a 2 s .  c  o  m*/
 *
 * @param converter the converter to register.
 */
private void registerConversion(@NotNull Object converter) {

    Assert.notNull(converter);

    Class<?> type = converter.getClass();
    boolean isWriting = type.isAnnotationPresent(WritingConverter.class);
    boolean isReading = type.isAnnotationPresent(ReadingConverter.class);

    if (converter instanceof GenericConverter) {
        GenericConverter genericConverter = (GenericConverter) converter;
        for (GenericConverter.ConvertiblePair pair : genericConverter.getConvertibleTypes()) {
            register(new ConverterRegistration(pair, isReading, isWriting));
        }
    } else if (converter instanceof Converter) {
        Class<?>[] arguments = GenericTypeResolver.resolveTypeArguments(converter.getClass(), Converter.class);
        register(new ConverterRegistration(arguments[0], arguments[1], isReading, isWriting));
    } else {
        throw new IllegalArgumentException("Unsupported Converter type!");
    }
}

From source file:org.springframework.core.convert.support.GenericConversionService.java

public void addConverter(GenericConverter converter) {
    Set<GenericConverter.ConvertiblePair> convertibleTypes = converter.getConvertibleTypes();
    for (GenericConverter.ConvertiblePair convertibleType : convertibleTypes) {
        getMatchableConverters(convertibleType.getSourceType(), convertibleType.getTargetType()).add(converter);
    }//from   ww w .ja  va  2 s  .  co  m
    invalidateCache();
}

From source file:org.springframework.data.mongodb.core.convert.CustomConversions.java

/**
 * Registers a conversion for the given converter. Inspects either generics or the {@link ConvertiblePair}s returned
 * by a {@link GenericConverter}.//from   w w w . j  a  va 2s  . c  o  m
 * 
 * @param converter
 */
private void registerConversion(Object converter) {

    Class<?> type = converter.getClass();
    boolean isWriting = type.isAnnotationPresent(WritingConverter.class);
    boolean isReading = type.isAnnotationPresent(ReadingConverter.class);

    if (converter instanceof GenericConverter) {
        GenericConverter genericConverter = (GenericConverter) converter;
        for (ConvertiblePair pair : genericConverter.getConvertibleTypes()) {
            register(new ConverterRegistration(pair, isReading, isWriting));
        }
    } else if (converter instanceof Converter) {
        Class<?>[] arguments = GenericTypeResolver.resolveTypeArguments(converter.getClass(), Converter.class);
        register(new ConverterRegistration(arguments[0], arguments[1], isReading, isWriting));
    } else {
        throw new IllegalArgumentException("Unsupported Converter type!");
    }
}