com.fasterxml.jackson.databind.util.StdConverter Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of redisson-all Show documentation
Show all versions of redisson-all Show documentation
Easy Redis Java client and Real-Time Data Platform. Valkey compatible. Sync/Async/RxJava3/Reactive API. Client side caching. Over 50 Redis based Java objects and services: JCache API, Apache Tomcat, Hibernate, Spring, Set, Multimap, SortedSet, Map, List, Queue, Deque, Semaphore, Lock, AtomicLong, Map Reduce, Bloom filter, Scheduler, RPC
package com.fasterxml.jackson.databind.util;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.type.TypeFactory;
/**
* Standard implementation of {@link Converter} that supports explicit
* type access, instead of relying type detection of generic type
* parameters.
*
* @since 2.2
*/
public abstract class StdConverter
implements Converter
{
/*
/**********************************************************
/* Partial Converter API implementation
/**********************************************************
*/
@Override
public abstract OUT convert(IN value);
@Override
public JavaType getInputType(TypeFactory typeFactory) {
return _findConverterType(typeFactory).containedType(0);
}
@Override
public JavaType getOutputType(TypeFactory typeFactory) {
return _findConverterType(typeFactory).containedType(1);
}
protected JavaType _findConverterType(TypeFactory tf) {
JavaType thisType = tf.constructType(getClass());
JavaType convType = thisType.findSuperType(Converter.class);
if (convType == null || convType.containedTypeCount() < 2) {
throw new IllegalStateException("Cannot find OUT type parameter for Converter of type "+getClass().getName());
}
return convType;
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy