protected DeserializerFactoryConfig(Deserializers[] paramArrayOfDeserializers, KeyDeserializers[] paramArrayOfKeyDeserializers, BeanDeserializerModifier[] paramArrayOfBeanDeserializerModifier, AbstractTypeResolver[] paramArrayOfAbstractTypeResolver, ValueInstantiators[] paramArrayOfValueInstantiators) { Deserializers[] arrayOfDeserializers; if (paramArrayOfDeserializers == null) arrayOfDeserializers = NO_DESERIALIZERS; else arrayOfDeserializers = paramArrayOfDeserializers; this._additionalDeserializers = arrayOfDeserializers; KeyDeserializers[] arrayOfKeyDeserializers; if (paramArrayOfKeyDeserializers == null) arrayOfKeyDeserializers = DEFAULT_KEY_DESERIALIZERS; else arrayOfKeyDeserializers = paramArrayOfKeyDeserializers; this._additionalKeyDeserializers = arrayOfKeyDeserializers; BeanDeserializerModifier[] arrayOfBeanDeserializerModifier; if (paramArrayOfBeanDeserializerModifier == null) arrayOfBeanDeserializerModifier = NO_MODIFIERS; else arrayOfBeanDeserializerModifier = paramArrayOfBeanDeserializerModifier; this._modifiers = arrayOfBeanDeserializerModifier; AbstractTypeResolver[] arrayOfAbstractTypeResolver; if (paramArrayOfAbstractTypeResolver == null) arrayOfAbstractTypeResolver = NO_ABSTRACT_TYPE_RESOLVERS; else arrayOfAbstractTypeResolver = paramArrayOfAbstractTypeResolver; this._abstractTypeResolvers = arrayOfAbstractTypeResolver; ValueInstantiators[] arrayOfValueInstantiators; if (paramArrayOfValueInstantiators == null) arrayOfValueInstantiators = NO_VALUE_INSTANTIATORS; else arrayOfValueInstantiators = paramArrayOfValueInstantiators; this._valueInstantiators = arrayOfValueInstantiators; }
public DeserializerFactoryConfig withAbstractTypeResolver(AbstractTypeResolver paramAbstractTypeResolver) { if (paramAbstractTypeResolver == null) throw new IllegalArgumentException("Can not pass null resolver"); AbstractTypeResolver[] arrayOfAbstractTypeResolver = (AbstractTypeResolver[])ArrayBuilders.insertInListNoDup(this._abstractTypeResolvers, paramAbstractTypeResolver); return new DeserializerFactoryConfig(this._additionalDeserializers, this._additionalKeyDeserializers, this._modifiers, arrayOfAbstractTypeResolver, this._valueInstantiators); }
private JavaType _mapAbstractType2(DeserializationConfig paramDeserializationConfig, JavaType paramJavaType) { Class localClass = paramJavaType.getRawClass(); if (this._factoryConfig.hasAbstractTypeResolvers()) { Iterator localIterator = this._factoryConfig.abstractTypeResolvers().iterator(); while (localIterator.hasNext()) { JavaType localJavaType = ((AbstractTypeResolver)localIterator.next()).findTypeMapping(paramDeserializationConfig, paramJavaType); if ((localJavaType != null) && (localJavaType.getRawClass() != localClass)) return localJavaType; } } return null; }
protected JavaType materializeAbstractType(DeserializationContext paramDeserializationContext, JavaType paramJavaType, BeanDescription paramBeanDescription) { JavaType localJavaType1 = paramBeanDescription.getType(); Iterator localIterator = this._factoryConfig.abstractTypeResolvers().iterator(); while (localIterator.hasNext()) { JavaType localJavaType2 = ((AbstractTypeResolver)localIterator.next()).resolveAbstractType(paramDeserializationContext.getConfig(), localJavaType1); if (localJavaType2 != null) return localJavaType2; } return null; }
/** * Copy-constructor that will create an instance that contains defined * set of additional deserializer providers. */ protected DeserializerFactoryConfig(Deserializers[] allAdditionalDeserializers, KeyDeserializers[] allAdditionalKeyDeserializers, BeanDeserializerModifier[] modifiers, AbstractTypeResolver[] atr, ValueInstantiators[] vi) { _additionalDeserializers = (allAdditionalDeserializers == null) ? NO_DESERIALIZERS : allAdditionalDeserializers; _additionalKeyDeserializers = (allAdditionalKeyDeserializers == null) ? NO_KEY_DESERIALIZERS : allAdditionalKeyDeserializers; _modifiers = (modifiers == null) ? NO_MODIFIERS : modifiers; _abstractTypeResolvers = (atr == null) ? NO_ABSTRACT_TYPE_RESOLVERS : atr; _valueInstantiators = (vi == null) ? NO_VALUE_INSTANTIATORS : vi; }
/** * Fluent/factory method used to construct a configuration object that * has same configuration as this instance plus one additional * abstract type resolver. * Added resolver has the highest priority (that is, it * gets called before any already registered resolver). */ public DeserializerFactoryConfig withAbstractTypeResolver(AbstractTypeResolver resolver) { if (resolver == null) { throw new IllegalArgumentException("Can not pass null resolver"); } AbstractTypeResolver[] all = ArrayBuilders.insertInListNoDup(_abstractTypeResolvers, resolver); return new DeserializerFactoryConfig(_additionalDeserializers, _additionalKeyDeserializers, _modifiers, all, _valueInstantiators); }
public Iterable<AbstractTypeResolver> abstractTypeResolvers() { return ArrayBuilders.arrayAsIterable(this._abstractTypeResolvers); }
public final DeserializerFactory withAbstractTypeResolver(AbstractTypeResolver paramAbstractTypeResolver) { return withConfig(this._factoryConfig.withAbstractTypeResolver(paramAbstractTypeResolver)); }
public Iterable<AbstractTypeResolver> abstractTypeResolvers() { return ArrayBuilders.arrayAsIterable(_abstractTypeResolvers); }
public abstract DeserializerFactory withAbstractTypeResolver(AbstractTypeResolver paramAbstractTypeResolver);