package cn.dreampie.common;
import cn.dreampie.common.http.HttpMessage;
import cn.dreampie.common.http.HttpRequest;
import cn.dreampie.common.http.HttpResponse;
import cn.dreampie.common.http.exception.HttpException;
import cn.dreampie.log.Logger;
import javax.imageio.ImageIO;
import java.awt.image.RenderedImage;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
/**
* Created by ice on 14-12-29.
*/
public abstract class Render {
public static final Logger logger = Logger.getLogger(Render.class);
/**
* Render to client
*/
public abstract void render(HttpRequest request, HttpResponse response, Object out);
public void write(HttpRequest request, HttpResponse response, String content) {
PrintWriter writer = null;
try {
writer = response.getWriter();
writer.print(content);
} catch (IOException e) {
logger.error(e.getMessage(), e);
throw new HttpException(HttpMessage.INTERNAL_SERVER_ERROR);
}
}
public void write(HttpRequest request, HttpResponse response, String type, RenderedImage content) {
OutputStream outputStream = null;
try {
outputStream = response.getOutputStream();
ImageIO.write(content, type, outputStream);
} catch (Exception e) {
logger.error(e.getMessage(), e);
throw new HttpException(HttpMessage.INTERNAL_SERVER_ERROR);
}
}
}