package gutenberg.itext.model; import com.google.gson.Gson; import java.io.ByteArrayInputStream; import java.io.InputStreamReader; import java.nio.charset.Charset; /** * @author <a href="http://twitter.com/aloyer">@aloyer</a> */ public class SourceCode { public static final String MIME_TYPE = "application/x-gutenberg.sourcecode"; private static final Charset UTF8 = Charset.forName("utf8"); private final String lang; private final String content; private boolean showLineNumbers; public SourceCode(String lang, String content) { this.lang = lang; this.content = content; } public String lang() { return lang; } public String content() { return content; } public boolean showLineNumbers() { return showLineNumbers; } public void showLineNumbers(boolean lineson) { this.showLineNumbers = lineson; } public byte[] toBytes() { return new Gson().toJson(this).getBytes(UTF8); } public static SourceCode fromBytes(byte[] data) { InputStreamReader reader = new InputStreamReader(new ByteArrayInputStream(data), UTF8); return new Gson().fromJson(reader, SourceCode.class); } }