package com.hypnoticocelot.jaxrs.doclet; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import com.google.common.io.ByteStreams; import com.hypnoticocelot.jaxrs.doclet.model.ApiDeclaration; import com.hypnoticocelot.jaxrs.doclet.model.ResourceListing; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; public class ObjectMapperRecorder implements Recorder { private final ObjectMapper mapper = new ObjectMapper(); public ObjectMapperRecorder() { mapper.configure(SerializationFeature.INDENT_OUTPUT, true); mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); } @Override public void record(File file, ApiDeclaration declaration) throws IOException { mapper.writeValue(file, declaration); } @Override public void record(File file, ResourceListing listing) throws IOException { mapper.writeValue(file, listing); } @Override public void record(File file, InputStream stream) throws IOException { final FileOutputStream outputStream = new FileOutputStream(file); ByteStreams.copy(stream, outputStream); outputStream.flush(); outputStream.close(); } }