package org.trianacode.http;
import org.thinginitself.http.MimeType;
import org.thinginitself.http.Resource;
import org.thinginitself.streamable.Streamable;
import org.thinginitself.streamable.StreamableData;
import org.trianacode.taskgraph.ser.XMLWriter;
import org.trianacode.taskgraph.tool.Tool;
import java.io.BufferedWriter;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.List;
/**
* @author Andrew Harrison
* @version 1.0.0 Nov 1, 2010
*/
public class ToolWriterResource extends Resource {
private Tool tool;
public ToolWriterResource(String path, Tool tool) {
super(path);
this.tool = tool;
}
public Streamable getStreamable(List<MimeType> mimeTypes) {
try {
ByteArrayOutputStream bout = new ByteArrayOutputStream();
XMLWriter writer = new XMLWriter(new BufferedWriter(new OutputStreamWriter(bout)));
writer.writeComponent(tool);
writer.close();
return new StreamableData(bout.toByteArray(), "text/xml");
} catch (IOException e) {
e.printStackTrace();
// todo
return null;
}
}
}