in impl/src/main/java/org/apache/geronimo/config/converters/ImplicitConverter.java [124:173]
public T convert(String valueStr) {
if (valueStr == null)
{
return null;
}
List list = new ArrayList();
StringBuilder currentValue = new StringBuilder();
int length = valueStr.length();
for (int i = 0; i < length; i++)
{
char c = valueStr.charAt(i);
if (c == '\\')
{
if (i < length - 1)
{
char nextC = valueStr.charAt(i + 1);
currentValue.append(nextC);
i++;
}
}
else if (c == ',')
{
String trimedVal = currentValue.toString().trim();
if (trimedVal.length() > 0)
{
list.add(converter.convert(trimedVal));
}
currentValue.setLength(0);
}
else
{
currentValue.append(c);
}
}
String trimedVal = currentValue.toString().trim();
if (trimedVal.length() > 0)
{
list.add(converter.convert(trimedVal));
}
// everything else is an Object array
Object array = Array.newInstance(type, list.size());
for (int i=0; i < list.size(); i++) {
Array.set(array, i, list.get(i));
}
return (T) array;
}