public static Object evaluate(final String expression, final Binding binding) throws GroovyException,
NotSerializableException, ActivityDefNotFoundException, DataFieldNotFoundException, ProcessNotFoundException,
IOException, ClassNotFoundException {
String workingExpression = expression;
Object result = null;
if (Misc.isJustAGroovyExpression(workingExpression)) {
workingExpression = workingExpression.substring(START_DELIMITER.length());
workingExpression = workingExpression.substring(0, workingExpression.lastIndexOf(END_DELIMITER));
if (Misc.isJavaIdentifier(workingExpression) && binding.getVariables().containsKey(workingExpression)) {
result = binding.getVariable(workingExpression);
} else {
result = evaluateGroovyExpression(workingExpression, binding);
}
} else {
result = evaluate(getExpressions(workingExpression), binding);
}
return result;
}