OSDN Git Service

prefにsave,restore追加
[train-delayed/source.git] / workspace / TrainDelayed / src / com / td / utility / EditPrefUtil.java
1 package com.td.utility;\r
2 \r
3 import java.util.HashMap;\r
4 import java.util.Iterator;\r
5 import java.util.Map;\r
6 import java.util.Map.Entry;\r
7 import java.util.Set;\r
8 \r
9 import android.content.Context;\r
10 \r
11 public class EditPrefUtil implements PrefUtil {\r
12         private static final String DELM = "\t";\r
13         private Map<String, String> hash = new HashMap<String, String>();\r
14         private PrefUtil pref;\r
15         \r
16         public EditPrefUtil(Context context){\r
17                 pref = new PrefUtilImpl(context);\r
18         }\r
19         \r
20         public void put(String key, String value) {\r
21                 hash.put(key, value);\r
22         }\r
23 \r
24         public void put(String key, int value) {\r
25                 hash.put(key, String.valueOf(value));\r
26         }\r
27 \r
28         public String get(String key) {\r
29                 String value = hash.get(key);\r
30                 if (value != null){\r
31                         return value;\r
32                 }\r
33                 value = pref.get(key);\r
34                 \r
35                 return value;\r
36         }\r
37 \r
38         public int getInt(String key) {\r
39                 return Integer.parseInt(get(key));\r
40         }\r
41 \r
42         public String get(String key, String initValue) {\r
43                 String value = get(key);\r
44                 if (value != null){\r
45                         return value;\r
46                 }\r
47                 hash.put(key, initValue);\r
48                 return initValue;\r
49         }\r
50 \r
51         public int getInt(String key, int initValue) {\r
52                 return Integer.valueOf(get(key, String.valueOf(initValue)));\r
53         }\r
54         \r
55         public void update(){\r
56                 Set<Entry<String, String>> set = hash.entrySet();\r
57                 for (Iterator<Entry<String, String>> it = set.iterator(); it.hasNext(); ){\r
58                         Entry<String, String> entry = it.next();\r
59                         String key = entry.getKey();\r
60                         String value = entry.getValue();\r
61                         pref.put(key, value);\r
62                 }\r
63                 hash.clear();\r
64         }\r
65 \r
66         public void remove(String key) {\r
67                 hash.put(key, null);\r
68         }\r
69         \r
70         public void save(String key){\r
71                 StringBuffer sb = new StringBuffer();\r
72                 \r
73                 Set<Entry<String, String>> set = hash.entrySet();\r
74                 for (Iterator<Entry<String, String>> it = set.iterator(); it.hasNext(); ){\r
75                         Entry<String, String> entry = it.next();\r
76                         String prefKey = entry.getKey();\r
77                         String prefValue = entry.getValue();\r
78                         \r
79                         sb.append(prefKey);\r
80                         sb.append(DELM);\r
81                         sb.append(prefValue);\r
82                         sb.append(DELM);\r
83                 }\r
84                 pref.put(key, sb.toString());\r
85         }\r
86         \r
87         public void restore(String key){\r
88                 hash.clear();\r
89 \r
90                 String data = pref.get(key);\r
91                 String[] str = data.split(DELM);\r
92                 for (int i = 0; i < str.length / 2; i++){\r
93                         String prefKey = str[i * 2];\r
94                         String prefValue = str[i * 2 + 1];\r
95                         put(prefKey, prefValue);\r
96                 }\r
97         }\r
98 \r
99 }\r