package liquibase.dbdoc; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.SortedSet; public class HTMLListWriter { private File outputDir; private String directory; private String filename; private String title; public HTMLListWriter(String title, String filename, String subdir, File outputDir) { this.title = title; this.outputDir = outputDir; this.filename = filename; if (!outputDir.exists()) { outputDir.mkdir(); } this.directory = subdir; } public void writeHTML(SortedSet objects) throws IOException { FileWriter fileWriter = new FileWriter(new File(outputDir, filename)); try { fileWriter.append("<HTML>\n" + "<HEAD>\n" + "<TITLE>\n"); fileWriter.append(title); fileWriter.append("\n" + "</TITLE>\n" + "<LINK REL =\"stylesheet\" TYPE=\"text/css\" HREF=\"stylesheet.css\" TITLE=\"Style\">\n" + "</HEAD>\n" + "<BODY BGCOLOR=\"white\">\n" + "<FONT size=\"+1\" CLASS=\"FrameHeadingFont\">\n" + "<B>"); fileWriter.append(title); fileWriter.append("</B></FONT>\n" + "<BR>\n" + "<TABLE BORDER=\"0\" WIDTH=\"100%\" SUMMARY=\"\">" + "<TR>\n" + "<TD NOWRAP><FONT CLASS=\"FrameItemFont\">"); for (Object object : objects) { fileWriter.append("<A HREF=\""); fileWriter.append(directory); fileWriter.append("/"); fileWriter.append(object.toString().toLowerCase()); fileWriter.append(getTargetExtension()); fileWriter.append("\" target=\"objectFrame\">"); fileWriter.append(object.toString()); fileWriter.append("</A><BR>\n"); } fileWriter.append("</FONT></TD>\n" + "</TR>\n" + "</TABLE>\n" + "\n" + "</BODY>\n" + "</HTML>"); } finally { fileWriter.close(); } } public String getTargetExtension() { return ".html"; } }