public Object getChild(Object parent, int index) {
Object result = null;
try {
if (parent instanceof Value) {
Configuration c = ((Value) parent).getConfiguration();
if (c != null) {
List<String> propertyNames = c.getPropertyNames();
Collections.sort(propertyNames);
result = c.getProperty(propertyNames.get(index));
}
} else if (parent instanceof ListProperty) {
ListProperty p = (ListProperty) parent;
Object o = p.getValue(index);
result = new Value(index, o);