@Override public Object calculate(JtwigContext context) throws CalculateException { Object contextObject = null; for (Object obj : getList()) { if (contextObject == null) contextObject = resolve(obj, context); else { ObjectExtractor objectExtractor = new ObjectExtractor(contextObject); if (obj instanceof Variable) { try { contextObject = objectExtractor.extract(((Variable) obj).getIdentifier()); } catch (ObjectExtractor.ExtractException e) { throw new CalculateException(e); } } else if (obj instanceof FunctionElement) { try { List<?> arguments = (List<?>) ((FunctionElement) obj).getArguments().calculate(context); contextObject = objectExtractor.extract(((FunctionElement) obj).getName(), arguments.toArray()); } catch (ObjectExtractor.ExtractException e) { throw new CalculateException(e); } } } } return contextObject; }
@Override public Object calculate(JtwigContext context) throws CalculateException { Object contextObject = null; for (Object obj : getList()) { if (contextObject == null) contextObject = resolve(obj, context); else { ObjectExtractor objectExtractor = new ObjectExtractor(contextObject); if (obj instanceof Variable) { try { contextObject = objectExtractor.extract(((Variable) obj).getIdentifier()); } catch (ObjectExtractor.ExtractException e) { throw new CalculateException(e); } } else if (obj instanceof FunctionElement) { try { List<?> arguments = (List<?>) ((FunctionElement) obj).getArguments().calculate(context); contextObject = objectExtractor.extract(((FunctionElement) obj).getName(), arguments.toArray()); } catch (ObjectExtractor.ExtractException e) { throw new CalculateException(e); } } } } return contextObject; }