Example usage for com.fasterxml.jackson.databind ObjectMapper getSerializerFactory

List of usage examples for com.fasterxml.jackson.databind ObjectMapper getSerializerFactory

Introduction

In this page you can find the example usage for com.fasterxml.jackson.databind ObjectMapper getSerializerFactory.

Prototype

public SerializerFactory getSerializerFactory() 

Source Link

Document

Method for getting current SerializerFactory .

Usage

From source file:net.logstash.logback.marker.ObjectFieldsAppendingMarker.java

/**
 * Gets a {@link SerializerProvider} configured with the {@link ObjectMapper}'s {@link SerializationConfig}
 * ({@link ObjectMapper#getSerializationConfig()}) to be used for serialization.
 * <p>//  w w  w .  ja va 2s. c o  m
 * Note that the {@link ObjectMapper}'s {@link SerializerProvider} ({@link ObjectMapper#getSerializerProvider()})
 * cannot be used directly, because the {@link SerializerProvider}'s {@link SerializationConfig} ({@link SerializerProvider#getConfig()}) is null,
 * which causes NullPointerExceptions when it is used.
 */
private SerializerProvider getSerializerProvider(ObjectMapper mapper) {

    SerializerProvider provider = serializerProviders.get(mapper);
    if (provider == null) {

        SerializerProvider newProvider = ((DefaultSerializerProvider) mapper.getSerializerProvider())
                .createInstance(mapper.getSerializationConfig(), mapper.getSerializerFactory());

        SerializerProvider existingProvider = serializerProviders.putIfAbsent(mapper, newProvider);

        provider = (existingProvider == null) ? newProvider : existingProvider;
    }
    return provider;
}

From source file:net.logstash.logback.marker.ObjectFieldsAppendingMarker.java

/**
 * Gets a serializer that will write the {@link #object} unwrapped. 
 *//*  w  w  w  .ja  v a2 s .c om*/
private JsonSerializer<Object> getBeanSerializer(ObjectMapper mapper) throws JsonMappingException {

    JsonSerializer<Object> jsonSerializer = beanSerializers.get(object.getClass());

    if (jsonSerializer == null) {
        SerializerProvider serializerProvider = getSerializerProvider(mapper);
        JsonSerializer<Object> newSerializer = mapper.getSerializerFactory()
                .createSerializer(serializerProvider,
                        mapper.getSerializationConfig().constructType(object.getClass()))
                .unwrappingSerializer(NameTransformer.NOP);

        if (newSerializer instanceof ResolvableSerializer) {
            ((ResolvableSerializer) newSerializer).resolve(serializerProvider);
        }

        JsonSerializer<Object> existingSerializer = beanSerializers.putIfAbsent(object.getClass(),
                newSerializer);

        jsonSerializer = (existingSerializer == null) ? newSerializer : existingSerializer;
    }
    return jsonSerializer;

}