in src/main/java/org/apache/sling/scripting/sightly/compiler/util/ObjectModel.java [107:130]
public static Object resolveProperty(Object target, Object property) {
if (target == null || property == null) {
return null;
}
Object resolved = null;
if (property instanceof Number) {
resolved = getIndex(target, ((Number) property).intValue());
}
if (resolved == null) {
String propertyName = toString(property);
if (StringUtils.isNotEmpty(propertyName)) {
if (target instanceof Map) {
resolved = ((Map) target).get(property);
}
if (resolved == null) {
resolved = getField(target, propertyName);
}
if (resolved == null) {
resolved = invokeBeanMethod(target, propertyName);
}
}
}
return resolved;
}