com.fasterxml.jackson.databind.jsontype.impl.StdSubtypeResolver Java Examples

The following examples show how to use com.fasterxml.jackson.databind.jsontype.impl.StdSubtypeResolver. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: ObjectMapper.java    From lams with GNU General Public License v2.0 4 votes vote down vote up
/**
 * Constructs instance that uses specified {@link JsonFactory}
 * for constructing necessary {@link JsonParser}s and/or
 * {@link JsonGenerator}s, and uses given providers for accessing
 * serializers and deserializers.
 * 
 * @param jf JsonFactory to use: if null, a new {@link MappingJsonFactory} will be constructed
 * @param sp SerializerProvider to use: if null, a {@link SerializerProvider} will be constructed
 * @param dc Blueprint deserialization context instance to use for creating
 *    actual context objects; if null, will construct standard
 *    {@link DeserializationContext}
 */
public ObjectMapper(JsonFactory jf,
        DefaultSerializerProvider sp, DefaultDeserializationContext dc)
{
    /* 02-Mar-2009, tatu: Important: we MUST default to using
     *   the mapping factory, otherwise tree serialization will
     *   have problems with POJONodes.
     * 03-Jan-2010, tatu: and obviously we also must pass 'this',
     *    to create actual linking.
     */
    if (jf == null) {
        _jsonFactory = new MappingJsonFactory(this);
    } else {
        _jsonFactory = jf;
        if (jf.getCodec() == null) { // as per [JACKSON-741]
            _jsonFactory.setCodec(this);
        }
    }
    _subtypeResolver = new StdSubtypeResolver();
    RootNameLookup rootNames = new RootNameLookup();
    // and default type factory is shared one
    _typeFactory = TypeFactory.defaultInstance();

    SimpleMixInResolver mixins = new SimpleMixInResolver(null);
    _mixIns = mixins;
    BaseSettings base = DEFAULT_BASE.withClassIntrospector(defaultClassIntrospector());
    _configOverrides = new ConfigOverrides();
    _serializationConfig = new SerializationConfig(base,
                _subtypeResolver, mixins, rootNames, _configOverrides);
    _deserializationConfig = new DeserializationConfig(base,
                _subtypeResolver, mixins, rootNames, _configOverrides);

    // Some overrides we may need
    final boolean needOrder = _jsonFactory.requiresPropertyOrdering();
    if (needOrder ^ _serializationConfig.isEnabled(MapperFeature.SORT_PROPERTIES_ALPHABETICALLY)) {
        configure(MapperFeature.SORT_PROPERTIES_ALPHABETICALLY, needOrder);
    }
    
    _serializerProvider = (sp == null) ? new DefaultSerializerProvider.Impl() : sp;
    _deserializationContext = (dc == null) ?
            new DefaultDeserializationContext.Impl(BeanDeserializerFactory.instance) : dc;

    // Default serializer factory is stateless, can just assign
    _serializerFactory = BeanSerializerFactory.instance;
}