refactoring
[asciidoctor_to_rss.git] / src / main / java / net / wpitchoune / asciidoctor / Configuration.java
1 package net.wpitchoune.asciidoctor;
2
3 import java.io.File;
4 import java.io.FileInputStream;
5 import java.io.IOException;
6 import java.io.InputStream;
7 import java.util.Properties;
8
9 public final class Configuration {
10         private static final String KEY_HTML_HEADER_FILE = "html.header.file";
11         private static final String KEY_FEED_TITLE = "feed.title";
12         private static final String KEY_FEED_LINK = "feed.link";
13         private static final String KEY_FEED_DESCRIPTION = "feed.description";
14         private static final String KEY_FEED_BASEURL = "feed.baseurl";
15         private Properties properties;
16         
17         private Configuration(Properties properties) {
18                 this.properties = properties;
19         }
20         
21         public String getFeedLink() {
22                 return properties.getProperty(KEY_FEED_LINK);
23         }       
24         
25         public String getFeedTitle() {
26                 return properties.getProperty(KEY_FEED_TITLE);
27         }       
28         
29         public String getFeedDescription() {
30                 return properties.getProperty(KEY_FEED_DESCRIPTION);
31         }
32         
33         public String getFeedBaseURL() {
34                 return properties.getProperty(KEY_FEED_BASEURL);
35         }
36         
37         public File getHTMLHeaderFile() {
38                 String str;
39                 
40                 str = properties.getProperty(KEY_HTML_HEADER_FILE);
41                                 
42                 if (str == null)
43                         return null;
44                 
45                 return new File(str);
46         }
47         
48         public static Configuration load(File f) throws IOException {
49                 Properties props;
50                 InputStream in;
51                                 
52                 props = new Properties();
53                 in = new FileInputStream(f);
54                                 
55                 try {
56                         props.load(in);
57                 } finally {
58                         in.close();
59                 }
60                 
61                 return new Configuration(props);
62         }
63 }