// complex expression
 private Object getComplexExpressionValue(String name) {
   List<Object> values = new ArrayList<Object>();
   DRIDesignComplexExpression complexExpression = jasperScriptlet.getComplexExpression(name);
   for (DRIDesignExpression valueExpression : complexExpression.getExpressions()) {
     values.add(getValue(valueExpression.getName()));
   }
   return complexExpression.evaluate(values, this);
 }
 private void addComplexExpression(DRIDesignComplexExpression complexExpression) {
   if (complexExpressions.containsKey(complexExpression.getName())) {
     if (!complexExpressions.get(complexExpression.getName()).equals(complexExpression)) {
       throw new DRDesignReportException(
           "Duplicate declaration of complex expression \"" + complexExpression.getName() + "\"");
     }
     return;
   }
   complexExpressions.put(complexExpression.getName(), complexExpression);
 }