@SuppressWarnings("rawtypes")
protected Object nextStep(Object o, String attributeName,
ErrorHandler errorHandler, Token token) {
Object result;
if (o instanceof String) {
errorHandler.error("no-call-on-string", token, new ModelBuilder(
"receiver", o.toString()).build());
return o;
} else if (o instanceof Map) {
Map map = (Map) o;
result = map.get(attributeName);
} else {
try {
result = getPropertyValue(o, attributeName);
} catch (Exception e) {
errorHandler.error("property-access-error", token,
new ModelBuilder("property", attributeName, "object",
o, "exception", e).build());
result = "";
}
}
return result;
}