Java 类com.fasterxml.jackson.databind.type.TypeBindings 实例源码
项目:hibernate-json
文件:JacksonJsonDriver.java
private JavaType applyModifiers(JavaType resultType, Class<?> sourceType) throws IllegalStateException {
if (modifiers != null) {
TypeBindings b = resultType.getBindings();
if (b == null) {
b = TypeBindings.emptyBindings();
}
for (TypeModifier mod : modifiers) {
JavaType t = mod.modifyType(resultType, sourceType, b, mapper.getTypeFactory());
if (t == null) {
throw new IllegalStateException(String.format(
"TypeModifier %s (of type %s) return null for type %s",
mod, mod.getClass().getName(), resultType));
}
resultType = t;
}
}
return resultType;
}
项目:QuizUpWinner
文件:BeanSerializerFactory.java
protected BeanPropertyWriter _constructWriter(SerializerProvider paramSerializerProvider, BeanPropertyDefinition paramBeanPropertyDefinition, TypeBindings paramTypeBindings, PropertyBuilder paramPropertyBuilder, boolean paramBoolean, AnnotatedMember paramAnnotatedMember)
{
String str = paramBeanPropertyDefinition.getName();
if (paramSerializerProvider.canOverrideAccessModifiers())
paramAnnotatedMember.fixAccess();
JavaType localJavaType = paramAnnotatedMember.getType(paramTypeBindings);
BeanProperty.Std localStd = new BeanProperty.Std(str, localJavaType, paramBeanPropertyDefinition.getWrapperName(), paramPropertyBuilder.getClassAnnotations(), paramAnnotatedMember, paramBeanPropertyDefinition.isRequired());
JsonSerializer localJsonSerializer1 = findSerializerFromAnnotation(paramSerializerProvider, paramAnnotatedMember);
JsonSerializer localJsonSerializer2 = localJsonSerializer1;
if ((localJsonSerializer1 instanceof ResolvableSerializer))
((ResolvableSerializer)localJsonSerializer2).resolve(paramSerializerProvider);
if ((localJsonSerializer2 instanceof ContextualSerializer))
localJsonSerializer2 = ((ContextualSerializer)localJsonSerializer2).createContextual(paramSerializerProvider, localStd);
boolean bool = ClassUtil.isCollectionMapOrArray(localJavaType.getRawClass());
TypeSerializer localTypeSerializer1 = null;
if (bool)
localTypeSerializer1 = findPropertyContentTypeSerializer(localJavaType, paramSerializerProvider.getConfig(), paramAnnotatedMember);
TypeSerializer localTypeSerializer2 = findPropertyTypeSerializer(localJavaType, paramSerializerProvider.getConfig(), paramAnnotatedMember);
return paramPropertyBuilder.buildWriter(paramBeanPropertyDefinition, localJavaType, localJsonSerializer2, localTypeSerializer2, localTypeSerializer1, paramAnnotatedMember, paramBoolean);
}
项目:QuizUpWinner
文件:AnnotatedWithParams.java
protected JavaType getType(TypeBindings paramTypeBindings, TypeVariable<?>[] paramArrayOfTypeVariable)
{
if ((paramArrayOfTypeVariable != null) && (paramArrayOfTypeVariable.length > 0))
{
paramTypeBindings = paramTypeBindings.childInstance();
int i = paramArrayOfTypeVariable.length;
for (int j = 0; j < i; j++)
{
TypeVariable<?> localTypeVariable = paramArrayOfTypeVariable[j];
paramTypeBindings._addPlaceholder(localTypeVariable.getName());
Type localType = localTypeVariable.getBounds()[0];
JavaType localJavaType;
if (localType == null)
localJavaType = TypeFactory.unknownType();
else
localJavaType = paramTypeBindings.resolveType(localType);
paramTypeBindings.addBinding(localTypeVariable.getName(), localJavaType);
}
}
return paramTypeBindings.resolveType(getGenericType());
}
项目:joyplus-tv
文件:AnnotatedWithParams.java
protected JavaType getType(TypeBindings bindings, TypeVariable<?>[] typeParams)
{
// [JACKSON-468] Need to consider local type binding declarations too...
if (typeParams != null && typeParams.length > 0) {
bindings = bindings.childInstance();
for (TypeVariable<?> var : typeParams) {
String name = var.getName();
// to prevent infinite loops, need to first add placeholder ("<T extends Enum<T>>" etc)
bindings._addPlaceholder(name);
// About only useful piece of information is the lower bound (which is at least Object.class)
Type lowerBound = var.getBounds()[0];
JavaType type = (lowerBound == null) ? TypeFactory.unknownType()
: bindings.resolveType(lowerBound);
bindings.addBinding(var.getName(), type);
}
}
return bindings.resolveType(getGenericType());
}
项目:autorest-clientruntime-for-java
文件:JacksonAdapter.java
private JavaType constructJavaType(final Type type) {
if (type instanceof ParameterizedType) {
JavaType[] javaTypeArgs = new JavaType[((ParameterizedType) type).getActualTypeArguments().length];
for (int i = 0; i != ((ParameterizedType) type).getActualTypeArguments().length; ++i) {
javaTypeArgs[i] = constructJavaType(((ParameterizedType) type).getActualTypeArguments()[i]);
}
return mapper.getTypeFactory().constructType(type,
TypeBindings.create((Class<?>) ((ParameterizedType) type).getRawType(), javaTypeArgs));
} else {
return mapper.getTypeFactory().constructType(type);
}
}
项目:haven-platform
文件:KeeperDeserializer.java
private JavaType resolve(final JavaType type) {
Assert.notNull(type, "type can't be null");
JavaType tmp = type;
while(Keeper.class.equals(tmp.getRawClass())) {
TypeBindings bindings = tmp.getBindings();
Assert.isTrue(bindings.size() == 1, "Bindings must have one parameter type: " + type);
tmp = bindings.getBoundType(0);
}
return tmp;
}
项目:blcdemo
文件:WrapperOverrideTypeModifier.java
@Override
public JavaType modifyType(JavaType type, Type jdkType, TypeBindings context, TypeFactory typeFactory) {
try {
if (type.getClass().isAssignableFrom(SimpleType.class)) {
Object overriddenBean = applicationContext.getBean(type.getRawClass().getName());
return SimpleType.construct(overriddenBean.getClass());
}
} catch (NoSuchBeanDefinitionException e) {
LOG.debug("No configured bean for " + type.getClass().getName() + " returning original type");
}
return type;
}
项目:QuizUpWinner
文件:BeanSerializerFactory.java
protected List<BeanPropertyWriter> findBeanProperties(SerializerProvider paramSerializerProvider, BeanDescription paramBeanDescription, BeanSerializerBuilder paramBeanSerializerBuilder)
{
List localList = paramBeanDescription.findProperties();
SerializationConfig localSerializationConfig = paramSerializerProvider.getConfig();
removeIgnorableTypes(localSerializationConfig, paramBeanDescription, localList);
if (localSerializationConfig.isEnabled(MapperFeature.REQUIRE_SETTERS_FOR_GETTERS))
removeSetterlessGetters(localSerializationConfig, paramBeanDescription, localList);
if (localList.isEmpty())
return null;
boolean bool = usesStaticTyping(localSerializationConfig, paramBeanDescription, null);
PropertyBuilder localPropertyBuilder = constructPropertyBuilder(localSerializationConfig, paramBeanDescription);
ArrayList localArrayList = new ArrayList(localList.size());
TypeBindings localTypeBindings = paramBeanDescription.bindingsForBeanType();
Iterator localIterator = localList.iterator();
while (localIterator.hasNext())
{
BeanPropertyDefinition localBeanPropertyDefinition = (BeanPropertyDefinition)localIterator.next();
AnnotatedMember localAnnotatedMember = localBeanPropertyDefinition.getAccessor();
if (localBeanPropertyDefinition.isTypeId())
{
if (localAnnotatedMember != null)
{
if (localSerializationConfig.canOverrideAccessModifiers())
localAnnotatedMember.fixAccess();
paramBeanSerializerBuilder.setTypeId(localAnnotatedMember);
}
}
else
{
AnnotationIntrospector.ReferenceProperty localReferenceProperty = localBeanPropertyDefinition.findReferenceType();
if ((localReferenceProperty == null) || (!localReferenceProperty.isBackReference()))
if ((localAnnotatedMember instanceof AnnotatedMethod))
localArrayList.add(_constructWriter(paramSerializerProvider, localBeanPropertyDefinition, localTypeBindings, localPropertyBuilder, bool, (AnnotatedMethod)localAnnotatedMember));
else
localArrayList.add(_constructWriter(paramSerializerProvider, localBeanPropertyDefinition, localTypeBindings, localPropertyBuilder, bool, (AnnotatedField)localAnnotatedMember));
}
}
return localArrayList;
}
项目:joyplus-tv
文件:CreatorCollector.java
public ValueInstantiator constructValueInstantiator(DeserializationConfig config)
{
StdValueInstantiator inst = new StdValueInstantiator(config, _beanDesc.getType());
JavaType delegateType;
if (_delegateCreator == null) {
delegateType = null;
} else {
// need to find type...
int ix = 0;
if (_delegateArgs != null) {
for (int i = 0, len = _delegateArgs.length; i < len; ++i) {
if (_delegateArgs[i] == null) { // marker for delegate itself
ix = i;
break;
}
}
}
TypeBindings bindings = _beanDesc.bindingsForBeanType();
delegateType = bindings.resolveType(_delegateCreator.getGenericParameterType(ix));
}
inst.configureFromObjectSettings(_defaultConstructor,
_delegateCreator, delegateType, _delegateArgs,
_propertyBasedCreator, _propertyBasedArgs);
inst.configureFromStringCreator(_stringCreator);
inst.configureFromIntCreator(_intCreator);
inst.configureFromLongCreator(_longCreator);
inst.configureFromDoubleCreator(_doubleCreator);
inst.configureFromBooleanCreator(_booleanCreator);
return inst;
}
项目:java2typescript
文件:TSJsonObjectFormatVisitor.java
private AbstractType getTSTypeForClass(AnnotatedMember member) {
TypeBindings bindings = new TypeBindings(TypeFactory.defaultInstance(), member.getDeclaringClass());
BeanProperty prop = new BeanProperty.Std(member.getName(), member.getType(bindings), NO_NAME,
new AnnotationMap(), member, false);
try {
return getTSTypeForProperty(prop);
} catch (JsonMappingException e) {
throw new RuntimeException(e);
}
}
项目:hibernate-json
文件:JacksonJsonDriverTest.java
@Override
public JavaType modifyType(JavaType type, Type jdkType, TypeBindings context, TypeFactory typeFactory) {
called = true;
return type;
}
项目:QuizUpWinner
文件:BasicBeanDescription.java
public TypeBindings bindingsForBeanType()
{
if (this._bindings == null)
this._bindings = new TypeBindings(this._config.getTypeFactory(), this._type);
return this._bindings;
}
项目:QuizUpWinner
文件:AnnotatedMethod.java
public final JavaType getType(TypeBindings paramTypeBindings)
{
return getType(paramTypeBindings, this._method.getTypeParameters());
}
项目:QuizUpWinner
文件:AnnotatedWithParams.java
public final JavaType resolveParameterType(int paramInt, TypeBindings paramTypeBindings)
{
return paramTypeBindings.resolveType(getGenericParameterType(paramInt));
}
项目:QuizUpWinner
文件:Annotated.java
public JavaType getType(TypeBindings paramTypeBindings)
{
return paramTypeBindings.resolveType(getGenericType());
}
项目:QuizUpWinner
文件:AnnotatedConstructor.java
public final JavaType getType(TypeBindings paramTypeBindings)
{
return getType(paramTypeBindings, this._constructor.getTypeParameters());
}
项目:joyplus-tv
文件:AnnotatedMethod.java
/**
* As per [JACKSON-468], we need to also allow declaration of local
* type bindings; mostly it will allow defining bounds.
*/
@Override
public JavaType getType(TypeBindings bindings) {
return getType(bindings, _method.getTypeParameters());
}
项目:joyplus-tv
文件:AnnotatedConstructor.java
/**
* As per [JACKSON-468], we need to also allow declaration of local
* type bindings; mostly it will allow defining bounds.
*/
@Override
public JavaType getType(TypeBindings bindings)
{
return getType(bindings, _constructor.getTypeParameters());
}
项目:joyplus-tv
文件:MapperConfig.java
/**
* Helper method that will construct {@link JavaType} for given
* raw class.
* This is a simple short-cut for:
*<pre>
* getTypeFactory().constructType(cls);
*</pre>
*/
public final JavaType constructType(Class<?> cls) {
return getTypeFactory().constructType(cls, (TypeBindings) null);
}
项目:joyplus-tv
文件:MapperConfig.java
/**
* Helper method that will construct {@link JavaType} for given
* type reference
* This is a simple short-cut for:
*<pre>
* getTypeFactory().constructType(valueTypeRef);
*</pre>
*/
public final JavaType constructType(TypeReference<?> valueTypeRef) {
return getTypeFactory().constructType(valueTypeRef.getType(), (TypeBindings) null);
}
项目:joyplus-tv
文件:AnnotatedWithParams.java
/**
* Method called to fully resolve type of one of parameters, given
* specified type variable bindings.
*/
public final JavaType resolveParameterType(int index, TypeBindings bindings) {
return bindings.resolveType(getGenericParameterType(index));
}
项目:joyplus-tv
文件:Annotated.java
/**
* Full generic type of the annotated element; definition
* of what exactly this means depends on sub-class.
*/
public JavaType getType(TypeBindings context) {
return context.resolveType(getGenericType());
}
项目:joyplus-tv
文件:BeanDescription.java
/**
* Accessor for type bindings that may be needed to fully resolve
* types of member object, such as return and argument types of
* methods and constructors, and types of fields.
*/
public abstract TypeBindings bindingsForBeanType();
项目:QuizUpWinner
文件:BeanDescription.java
public abstract TypeBindings bindingsForBeanType();