package org.apache.logging.log4j.jackson;

import org.apache.logging.log4j.ThreadContext.ContextStack;
import org.apache.logging.log4j.message.Message;
import org.apache.logging.log4j.message.ObjectMessage;

import com.fasterxml.jackson.databind.module.SimpleModule;

/**
 * Used to set up {@link SimpleModule} from different {@link SimpleModule} subclasses.
 * <p>
 * <em>Consider this class private.</em>
 * </p>
 */
public class SimpleModuleInitializer {
    public void initialize(final SimpleModule simpleModule, final boolean objectMessageAsJsonObject) {
        // Workaround because mix-ins do not work for classes that already have a built-in deserializer.
        // See Jackson issue 429.
        simpleModule.addDeserializer(StackTraceElement.class, new Log4jStackTraceElementDeserializer());
        simpleModule.addDeserializer(ContextStack.class, new MutableThreadContextStackDeserializer());
        if (objectMessageAsJsonObject) {
            simpleModule.addSerializer(ObjectMessage.class, new ObjectMessageSerializer());
        }
        simpleModule.addSerializer(Message.class, new MessageSerializer());
    }
}
