package com.fourspaces.featherdb.document;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.util.Map;
@ContentTypes({
"text/plain",
"text/html",
"text/xml",
"text/css",
"text/javascript"
})
public class TextDocument extends Document {
protected String content=null;
@Override
public void setRevisionData(InputStream dataInput) throws DocumentCreationException {
BufferedReader reader = new BufferedReader(new InputStreamReader(dataInput));
StringBuilder sb = new StringBuilder();
try {
char[] buffer = new char[4*1024];
int read=-1;
while ((read=reader.read(buffer,0,buffer.length))>-1) {
sb.append(buffer,0,read);
}
} catch (IOException e) {
throw new DocumentCreationException(e);
}
content = sb.toString();
}
@Override
public void writeRevisionData(OutputStream dataOutput) throws IOException {
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(dataOutput));
writer.write(content);
}
@Override
public void sendDocument(OutputStream dataOutput,Map<String,String[]> params) throws IOException {
writeRevisionData(dataOutput);
}
@Override
public boolean writesRevisionData() {
return true;
}
}