1
2
3
4
5 import java.io.*;
6 import java.util.Properties;
7
8 class Database {
9 private Database() {
10 }
11 public static Properties getProperties(String dbname) {
12 String filename = dbname + ".txt";
13 Properties prop = new Properties();
14 try {
15 prop.load(new FileInputStream(filename));
16 } catch(IOException e) {
17 System.out.println("Warning: "+filename+" is not found.");
18 }
19 return prop;
20 }
21 }
22
23 class HtmlWriter {
24 private Writer writer;
25 public HtmlWriter(Writer writer) {
26 this.writer = writer;
27 }
28 public void title(String title) throws IOException {
29 writer.write("<html>");
30 writer.write("<head>");
31 writer.write("<title>"+title+"</title>");
32 writer.write("</head>");
33 writer.write("<body>\n");
34 writer.write("<h1>"+title+"</h1>\n");
35 }
36 public void paragraph(String msg) throws IOException {
37 writer.write("<p>"+msg+"</p>\n");
38 }
39 public void link(String href, String caption) throws IOException {
40 paragraph("<a href=\""+href+"\">"+caption+"</a>");
41 }
42 public void mailto(String mailaddr, String username) throws IOException {
43 link("mailto:"+mailaddr, username);
44 }
45 public void close() throws IOException {
46 writer.write("</body>");
47 writer.write("</html>\n");
48 writer.close();
49 }
50 }
51
52 class PageMaker {
53 private PageMaker() {
54 }
55 public static void makeWelcomePage(String mailaddr, String filename) {
56 try {
57 Properties mailprop = Database.getProperties("maildata");
58 String username = mailprop.getProperty(mailaddr);
59 HtmlWriter writer = new HtmlWriter(new FileWriter(filename));
60 writer.title("Welcome to "+username+"'s page!");
61 writer.paragraph(username + "'s page");
62 writer.paragraph("mail address");
63 writer.mailto(mailaddr, username);
64 writer.close();
65 System.out.println(
66 filename+" is created for "+mailaddr
67 +" ("+username+")"
68 );
69 } catch(IOException e) {
70 e.printStackTrace();
71 }
72 }
73 }
74
75 public class FacadeHtml {
76 public static void main(String[] args) {
77 PageMaker.makeWelcomePage("a1@bioinfo.sarang.net", "welcome.html");
78 }
79 }