listName = trimDelim(listName);
SimpleData d = getSimpleValue(listName);
if (d instanceof ListData) return (ListData) d;
if (d instanceof StringData) return ((StringData) d).asList();
if (d instanceof SimpleData) {
ListData result = new ListData();
result.add(d.format());
}
return EMPTY_LIST;
} else {
// listName names an environment variable or parameter
ListData result = new ListData();
// try for an environment variable first.
Object envVal = env.get(listName);
if (envVal instanceof String) {
result.add((String) envVal);
return result;
}
// look for a parameter value.
Object allParam = params.get(listName + "_ALL");
if (allParam instanceof String[]) {
String[] param = (String[]) allParam;
for (int i = 0; i < param.length; i++)
result.add(param[i]);
} else {
Object p = params.get(listName);
if (p == null) p = getResource(listName);
if (p instanceof String) {
String paramVal = (String) p;
if (paramVal.startsWith("LIST="))
return new ListData(paramVal.substring(5));
else
result.add(paramVal);
}
}
return result;
}