#format java /** * FacadePattern example */ import java.io.*; import java.util.Properties; class Database { private Database() { // cannot make instance by new } public static Properties getProperties(String dbname) { String filename = dbname + ".txt"; Properties prop = new Properties(); try { prop.load(new FileInputStream(filename)); } catch(IOException e) { System.out.println("Warning: "+filename+" is not found."); } return prop; } } class HtmlWriter { private Writer writer; public HtmlWriter(Writer writer) { this.writer = writer; } public void title(String title) throws IOException { writer.write(""); writer.write(""); writer.write(""+title+""); writer.write(""); writer.write("\n"); writer.write("

"+title+"

\n"); } public void paragraph(String msg) throws IOException { writer.write("

"+msg+"

\n"); } public void link(String href, String caption) throws IOException { paragraph(""+caption+""); } public void mailto(String mailaddr, String username) throws IOException { link("mailto:"+mailaddr, username); } public void close() throws IOException { writer.write(""); writer.write("\n"); writer.close(); } } class PageMaker { private PageMaker() { // cannot make instance } public static void makeWelcomePage(String mailaddr, String filename) { try { Properties mailprop = Database.getProperties("maildata"); String username = mailprop.getProperty(mailaddr); HtmlWriter writer = new HtmlWriter(new FileWriter(filename)); writer.title("Welcome to "+username+"'s page!"); writer.paragraph(username + "'s page"); writer.paragraph("mail address"); writer.mailto(mailaddr, username); writer.close(); System.out.println( filename+" is created for "+mailaddr +" ("+username+")" ); } catch(IOException e) { e.printStackTrace(); } } } public class FacadeHtml { public static void main(String[] args) { PageMaker.makeWelcomePage("a1@bioinfo.sarang.net", "welcome.html"); } }