Purpose: Superclass for Aggregate Nodes
Responsibilities:
INTERNAL
INTERNAL Return a TopLink expression generated using the left node String name = getAsString(); Expression aggregateExpr = context.expressionFor(name); if (aggregateExpr == null) { Expression arg = getLeft().generateExpression(context); if (usesDistinct()) { arg = arg.distinct(); } aggregateExpr = addAggregateExression(arg); context.addExpression(aggregateExpr, name); } return aggregateExpr;
String name = getAsString(); Expression aggregateExpr = context.expressionFor(name); if (aggregateExpr == null) { Expression arg = getLeft().generateExpression(context); if (usesDistinct()) { arg = arg.distinct(); } aggregateExpr = addAggregateExression(arg); context.addExpression(aggregateExpr, name); } return aggregateExpr;
INTERNAL Is this node an Aggregate node return true;
return true;
INTERNAL Node arg = getLeft(); return arg.isDotNode() ? ((DotNode)arg).resolveAttribute() : null;
Node arg = getLeft(); return arg.isDotNode() ? ((DotNode)arg).resolveAttribute() : null;
resolveClass: Answer the class associated with my left node. return getLeft().resolveClass(context);
return getLeft().resolveClass(context);
this.distinct = distinct;
return distinct;