1 package de.java2html.commandline; 2 3 import java.io.File ; 4 import java.io.FileInputStream ; 5 import java.io.FileOutputStream ; 6 import java.io.IOException ; 7 import java.io.InputStream ; 8 import java.io.StringWriter ; 9 10 import de.java2html.converter.IJavaSourceConverter; 11 import de.java2html.javasource.JavaSource; 12 import de.java2html.javasource.JavaSourceParser; 13 import de.java2html.options.JavaSourceConversionOptions; 14 import de.java2html.util.Ensure; 15 import de.java2html.util.IoUtilities; 16 17 20 public abstract class AbstractJava2HtmlConversion implements IJava2HtmlConversion { 21 private IJavaSourceConverter converter; 22 private final JavaSourceConversionOptions options; 23 24 public AbstractJava2HtmlConversion(IJavaSourceConverter converter, JavaSourceConversionOptions options) { 25 Ensure.ensureArgumentNotNull(converter); 26 Ensure.ensureArgumentNotNull(options); 27 this.options = options; 28 this.converter = converter; 29 } 30 31 public final JavaSourceConversionOptions getConversionOptions() { 32 return options; 33 } 34 35 public final IJavaSourceConverter getConverter() { 36 return converter; 37 } 38 39 46 protected byte[] readFile(File file) throws IOException { 47 InputStream inputStream = null; 48 try { 49 inputStream = new FileInputStream (file); 50 return IoUtilities.readBytes(inputStream); 51 } 52 finally { 53 IoUtilities.close(inputStream); 54 } 55 } 56 57 63 protected String readAndConvert(File sourceFile) throws IOException { 64 StringWriter stringWriter = new StringWriter (); 65 66 converter.writeDocumentHeader(stringWriter, getConversionOptions(), ""); JavaSourceParser parser = new JavaSourceParser(getConversionOptions()); 68 JavaSource source = parser.parse(sourceFile); 69 try { 70 converter.convert(source, getConversionOptions(), stringWriter); 71 } 72 catch (IOException e) { 73 throw new RuntimeException (e); 75 } 76 converter.writeDocumentFooter(stringWriter, getConversionOptions()); 77 return stringWriter.toString(); 78 } 79 80 87 protected void convertFile(File sourceFile, File targetFile) { 88 String text; 89 try { 90 text = readAndConvert(sourceFile); 91 } 92 catch (IOException exception) { 93 exception.printStackTrace(); 95 return; 96 } 97 if (targetFile == null) { 98 targetFile = IoUtilities.exchangeFileExtension(sourceFile, getConverter().getMetaData().getDefaultFileExtension()); 99 } 100 101 IoUtilities.ensureFoldersExist(targetFile.getParentFile()); 102 try { 103 writeFile(targetFile, text.getBytes()); 104 } 105 catch (IOException exception) { 106 exception.printStackTrace(); 108 } 109 } 110 111 112 118 private void writeFile(File targetFile, byte[] contents) throws IOException { 119 FileOutputStream outputStream = null; 120 try { 121 outputStream = new FileOutputStream (targetFile); 122 outputStream.write(contents); 123 } 124 finally { 125 IoUtilities.close(outputStream); 126 } 127 } 128 } | Popular Tags |