1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.xnap.commons.settings;
21
22 import org.xnap.commons.util.QuotedStringTokenizer;
23
24 /***
25 * Provides a setting for arrays of <code>String</code> objects.
26 */
27 public class StringArraySetting extends AbstractSetting<String[]> {
28
29 public StringArraySetting(SettingResource backend, String key, String[] defaultValue, Validator validator)
30 {
31 super(backend, key, defaultValue, validator);
32 }
33
34 public StringArraySetting(SettingResource backend, String key, String[] defaultValue)
35 {
36 super(backend, key, defaultValue, null);
37 }
38
39 protected String[] fromString(String value)
40 {
41 QuotedStringTokenizer t = new QuotedStringTokenizer(value, ARRAY_SEPARATOR);
42
43 String[] values = new String[t.countTokens()];
44 for (int i = 0; i < values.length; i++) {
45 values[i] = t.nextToken();
46 }
47 return values;
48 }
49
50 protected String toString(String[] value)
51 {
52 StringBuilder sb = new StringBuilder();
53 for (int i = 0; i < value.length; i++) {
54 sb.append(QuotedStringTokenizer.QUOTE);
55 sb.append(value[i]);
56 sb.append(QuotedStringTokenizer.QUOTE);
57 sb.append(ARRAY_SEPARATOR);
58 }
59 return sb.toString();
60 }
61
62 }