2
* Copyright 2008 - 2008 JEuclid, http://jeuclid.sf.net
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
8
* http://www.apache.org/licenses/LICENSE-2.0
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
19
package net.sourceforge.jeuclid.context.typewrapper;
21
import java.util.ArrayList;
22
import java.util.List;
23
import java.util.Locale;
26
* List is converted to String and back by using comma-separated
29
* Strings are Stored Trimmed, Lower-cased, Interned.
33
public final class TLIListTypeWrapper extends AbstractSimpleTypeWrapper {
36
* separator to be used when converting to string or parsing string.
38
public static final String SEPARATOR = ",";
43
private static final long serialVersionUID = 1L;
45
private static final TypeWrapper INSTANCE = new TLIListTypeWrapper();
47
/** Simple constructor. */
48
private TLIListTypeWrapper() {
53
* @return the singleton instance.
55
public static TypeWrapper getInstance() {
56
return TLIListTypeWrapper.INSTANCE;
61
public Object fromString(final String value) {
65
final String whitespace = "\\s*";
66
final String[] strList = value.split(whitespace
67
+ TLIListTypeWrapper.SEPARATOR + whitespace);
68
final List<String> retVal = new ArrayList<String>(strList.length);
69
for (final String str : strList) {
70
retVal.add(str.trim().toLowerCase(Locale.ENGLISH).intern());
78
public String toString(final Object value) {
82
final StringBuilder b = new StringBuilder();
84
for (final Object o : (List<?>) value) {
88
b.append(TLIListTypeWrapper.SEPARATOR);