protected AbstractComplexExpression() {
   this.name = ReportUtils.generateUniqueName("complexExpression");
   this.expressions = new ArrayList<DRIExpression<?>>();
 }
 @Override
 @SuppressWarnings("unchecked")
 public Class<T> getValueClass() {
   return (Class<T>) ReportUtils.getGenericClass(this, 1);
 }
 public DRCrosstabMeasure(DRIExpression<?> expression) {
   Validate.notNull(expression, "expression must not be null");
   this.expression = expression;
   this.name = ReportUtils.generateUniqueName("crosstabMeasure");
   this.styles = new ArrayList<DRICrosstabCellStyle>();
 }