package com.github.pgelinas.jackson.javax.json;
import java.io.*;
import java.nio.charset.*;
import java.util.*;
import javax.json.*;
import com.fasterxml.jackson.databind.*;
public class JacksonWriterFactory implements JsonWriterFactory {
private final ObjectMapper _mapper;
private Map<String, Object> _configInUse;
public JacksonWriterFactory(Map<String, ?> config) {
this(new ObjectMapper());
_configInUse = ConfigurationUtils.configure(_mapper, config);
}
public JacksonWriterFactory(ObjectMapper mapper) {
_mapper = mapper;
}
@Override
public JsonWriter createWriter(Writer writer) {
try {
return new JacksonWriter(_mapper, writer);
} catch (IOException exception) {
throw new JsonException("", exception);
}
}
@Override
public JsonWriter createWriter(OutputStream out) {
try {
return new JacksonWriter(_mapper, out);
} catch (IOException exception) {
throw new JsonException("", exception);
}
}
@Override
public JsonWriter createWriter(OutputStream out, Charset charset) {
return createWriter(new OutputStreamWriter(out, charset));
}
@Override
public Map<String, ?> getConfigInUse() {
return _configInUse;
}
}