1 package hayashi.yuu.tools.properties;
\r
3 import java.util.Vector;
\r
6 * Hayashiライブラリ専用のプロパティファイル
\r
7 * 特定の項目(パスワードなど)を暗号化してファイルに記録する。
\r
9 * その他の項目は通常のPropertiesと同じ処理のままです。
\r
10 * @author Hayashi,Yuu
\r
11 * @version 2010/02/07
\r
14 @SuppressWarnings("serial")
\r
15 public class Properties extends java.util.Properties
\r
17 private Vector<String> passwords = new Vector<String>();
\r
19 public Properties() {
\r
21 passwords.add("MAIL_PASSWORD");
\r
24 public Properties(Properties defaults) {
\r
26 passwords.add("MAIL_PASSWORD");
\r
30 * 暗号化処理を行うプロパティ項目を指定する。
\r
31 * @param itemStr プロパティ項目名
\r
33 public void setPasswordItem(String itemStr) {
\r
34 passwords.add(itemStr);
\r
39 * @param key プロパティ項目名
\r
41 * @return プロパティインスタンス
\r
44 public synchronized Object setProperty(String key, String value) {
\r
46 for (String pwItem : passwords) {
\r
47 if (key.equals(pwItem)) {
\r
48 return super.setProperty(key, Encrypt.encrypt(value));
\r
52 catch (Exception e) {
\r
53 e.printStackTrace();
\r
55 return super.setProperty(key, value);
\r
59 * 指定されたキーを持つプロパティを、プロパティリストから探します。そのキーがプロパティリストにないと、
\r
60 * デフォルトのプロパティリスト、さらにそのデフォルト値が繰り返し調べられます。
\r
61 * そのプロパティが見つからない場合は、デフォルト値の引数が返されます。
\r
62 * @param key プロパティ項目名
\r
63 * @param defaultValue 指定されたプロパティ項目に値が設定されていなかったときに代わりに得られる値
\r
64 * @return 値。値が設定されていなかった時にはdefaultValue。
\r
67 public String getProperty(String key, String defaultValue) {
\r
69 for (String pwItem : passwords) {
\r
70 if (key.equals(pwItem)) {
\r
71 return Encrypt.decode(super.getProperty(key, Encrypt.encrypt(defaultValue)));
\r
75 catch (Exception e) {
\r
76 e.printStackTrace();
\r
78 return super.getProperty(key, defaultValue);
\r
82 * 指定されたキーを持つプロパティを、プロパティリストから探します。そのキーがプロパティリストにないと、
\r
83 * デフォルトのプロパティリスト、さらにそのデフォルト値が繰り返し調べられます。そのプロパティが見つから
\r
85 * @param key プロパティ項目名
\r
86 * @return 値。値が設定されていなかった時にはnull。
\r
89 public String getProperty(String key) {
\r
91 for (String pwItem : passwords) {
\r
92 if (key.equals(pwItem)) {
\r
93 return Encrypt.decode(super.getProperty(key));
\r
97 catch (Exception e) {
\r
98 e.printStackTrace();
\r
100 return super.getProperty(key);
\r