OSDN Git Service

62c83f40d79ec44cfc7cc956aa863e9c3ec1d1a6
[neighbornote/NeighborNote.git] / src / com / swabunga / spell / engine / PropertyConfiguration.java
1 /*\r
2 Jazzy - a Java library for Spell Checking\r
3 Copyright (C) 2001 Mindaugas Idzelis\r
4 Full text of license can be found in LICENSE.txt\r
5 \r
6 This library is free software; you can redistribute it and/or\r
7 modify it under the terms of the GNU Lesser General Public\r
8 License as published by the Free Software Foundation; either\r
9 version 2.1 of the License, or (at your option) any later version.\r
10 \r
11 This library is distributed in the hope that it will be useful,\r
12 but WITHOUT ANY WARRANTY; without even the implied warranty of\r
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
14 Lesser General Public License for more details.\r
15 \r
16 You should have received a copy of the GNU Lesser General Public\r
17 License along with this library; if not, write to the Free Software\r
18 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\r
19 */\r
20 package com.swabunga.spell.engine;\r
21 \r
22 import java.io.*;\r
23 import java.net.URL;\r
24 import java.util.Properties;\r
25 \r
26 \r
27 /**\r
28  * Implementation class to read the properties controlling the spell engine. \r
29  * The properties are read form the <code>configuration.properties</code> file.\r
30  *\r
31  * @author aim4min\r
32  */\r
33 public class PropertyConfiguration extends Configuration {\r
34 \r
35   /**\r
36    * The persistent set of properties supported by the spell engine\r
37    */\r
38   public Properties prop;\r
39   /**\r
40    * The name of the file containing spell engine properties\r
41    */\r
42   public URL filename;\r
43 \r
44   /**\r
45    * Constructs and loads spell engine properties configuration.\r
46    */\r
47   public PropertyConfiguration() {\r
48     prop = new Properties();\r
49     try {\r
50       filename = getClass().getClassLoader().getResource("com/swabunga/spell/engine/configuration.properties");\r
51       InputStream in = filename.openStream();\r
52       prop.load(in);\r
53     } catch (Exception e) {\r
54       System.out.println("Could not load Properties file :\n" + e);\r
55     }\r
56   }\r
57 \r
58   /**\r
59    * @see com.swabunga.spell.engine.Configuration#getBoolean(String)\r
60    */\r
61   public boolean getBoolean(String key) {\r
62     return new Boolean(prop.getProperty(key)).booleanValue();\r
63   }\r
64 \r
65   /**\r
66    * @see com.swabunga.spell.engine.Configuration#getInteger(String)\r
67    */\r
68   public int getInteger(String key) {\r
69     return new Integer(prop.getProperty(key)).intValue();\r
70   }\r
71 \r
72   /**\r
73    * @see com.swabunga.spell.engine.Configuration#setBoolean(String, boolean)\r
74    */\r
75   public void setBoolean(String key, boolean value) {\r
76     String string = null;\r
77     if (value)\r
78       string = "true";\r
79     else\r
80       string = "false";\r
81 \r
82     prop.setProperty(key, string);\r
83     save();\r
84   }\r
85 \r
86   /**\r
87    * @see com.swabunga.spell.engine.Configuration#setInteger(String, int)\r
88    */\r
89   public void setInteger(String key, int value) {\r
90     prop.setProperty(key, Integer.toString(value));\r
91     save();\r
92   }\r
93 \r
94   /**\r
95    * Writes the property list (key and element pairs) in the \r
96    * PropertyConfiguration file.\r
97    */\r
98   public void save() {\r
99     try {\r
100       File file = new File(filename.getFile());\r
101       FileOutputStream fout = new FileOutputStream(file);\r
102       prop.store(fout, "HEADER");\r
103     } catch (FileNotFoundException e) {\r
104     } catch (IOException e) {\r
105     }\r
106   }\r
107 \r
108 }\r