
net.sf.aguacate.http.impl.HttpBodyBuilerImpl Maven / Gradle / Ivy
package net.sf.aguacate.http.impl;
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import net.sf.aguacate.document.DocumentBuilder;
import net.sf.aguacate.document.json.JsonDocumentBuilder;
import net.sf.aguacate.http.HttpBodyBuiler;
import net.sf.aguacate.model.FieldType;
import net.sf.aguacate.util.formatter.OutputFormater;
import net.sf.aguacate.util.json.JsonCodec;
public class HttpBodyBuilerImpl implements HttpBodyBuiler {
private final DocumentBuilder builder;
public HttpBodyBuilerImpl(JsonCodec codec) {
this.builder = new JsonDocumentBuilder(codec);
}
@Override
public void build(HttpServletResponse response, Object object) throws IOException {
response.setContentType(builder.getMimeType());
response.setCharacterEncoding(StandardCharsets.UTF_8.name());
PrintWriter writer = response.getWriter();
try {
builder.build(writer, object);
} finally {
writer.close();
}
}
@Override
public void build(HttpServletResponse response, Object object, OutputFormater formater,
Map outputFields) throws IOException {
response.setContentType(builder.getMimeType());
response.setCharacterEncoding(StandardCharsets.UTF_8.name());
PrintWriter writer = response.getWriter();
try {
Class> klass = object.getClass();
if (Map.class.isAssignableFrom(klass)) {
Map temp = new HashMap<>();
@SuppressWarnings("unchecked")
Map map = (Map) object;
process(formater, outputFields, map, temp);
builder.build(writer, map);
} else {
if (List.class.isAssignableFrom(klass)) {
List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy