View Javadoc

1   /*
2    *  XNap Commons
3    *
4    *  Copyright (C) 2005  Steffen Pingel
5    *
6    *  This library is free software; you can redistribute it and/or
7    *  modify it under the terms of the GNU Lesser General Public
8    *  License as published by the Free Software Foundation; either
9    *  version 2.1 of the License, or (at your option) any later version.
10   *
11   *  This library is distributed in the hope that it will be useful,
12   *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13   *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14   *  Lesser General Public License for more details.
15   *
16   *  You should have received a copy of the GNU Lesser General Public
17   *  License along with this library; if not, write to the Free Software
18   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
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  }