/** * INTERNAL * Generate the EclipseLink expression for this node */ public Expression generateExpression(GenerationContext context) { DotNode dotNode = (DotNode)getLeft(); Node prefix = dotNode.getLeft(); String variableName = ((AttributeNode)dotNode.getRight()).getAttributeName(); // check whether variable denotes a collection valued field if (!dotNode.endsWithCollectionField(context)) { throw JPQLException.invalidSizeArgument( context.getParseTreeContext().getQueryInfo(), getLine(), getColumn(), variableName); } Expression whereClause = prefix.generateExpression(context); whereClause = whereClause.size(variableName); return whereClause; }
/** * INTERNAL * Apply this node to the passed query */ public void applyToQuery(ObjectLevelReadQuery theQuery, GenerationContext context) { if (theQuery.isReportQuery()) { ReportQuery reportQuery = (ReportQuery)theQuery; reportQuery.addAttribute("size", getLeft().generateExpression(context).count(), (Class)getType()); reportQuery.addGrouping(getLeft().getLeft().generateExpression(context)); } }
/** * INTERNAL * Validate node and calculate its type. */ public void validate(ParseTreeContext context) { if (left != null) { left.validate(context); } TypeHelper typeHelper = context.getTypeHelper(); setType(typeHelper.getIntType()); }
/** * INTERNAL * Generate the EclipseLink expression for this node */ public Expression generateExpression(GenerationContext context) { DotNode dotNode = (DotNode)getLeft(); Node prefix = dotNode.getLeft(); String variableName = ((AttributeNode)dotNode.getRight()).getAttributeName(); // check whether variable denotes a collection valued field if (!dotNode.endsWithCollectionField(context)) { throw JPQLException.invalidSizeArgument( context.getParseTreeContext().getQueryInfo(), getLine(), getColumn(), variableName); } Expression whereClause = prefix.generateExpression(context); whereClause = whereClause.size(variableName); return whereClause; }
/** * INTERNAL * Apply this node to the passed query */ public void applyToQuery(ObjectLevelReadQuery theQuery, GenerationContext context) { if (theQuery.isReportQuery()) { ReportQuery reportQuery = (ReportQuery)theQuery; reportQuery.addAttribute("size", getLeft().generateExpression(context).count(), (Class)getType()); reportQuery.addGrouping(getLeft().getLeft().generateExpression(context)); } }
/** * INTERNAL * Validate node and calculate its type. */ public void validate(ParseTreeContext context) { if (left != null) { left.validate(context); } TypeHelper typeHelper = context.getTypeHelper(); setType(typeHelper.getIntType()); }
/** * INTERNAL * Generate the EclipseLink expression for this node */ public Expression generateExpression(GenerationContext context) { DotNode dotNode = (DotNode)getLeft(); Node prefix = dotNode.getLeft(); String variableName = ((AttributeNode)dotNode.getRight()).getAttributeName(); // check whether variable denotes a collection valued field if (!dotNode.endsWithCollectionField(context)) { throw JPQLException.invalidSizeArgument( context.getParseTreeContext().getQueryInfo(), getLine(), getColumn(), variableName); } Expression whereClause = prefix.generateExpression(context); whereClause = whereClause.size(variableName); return whereClause; }
/** * INTERNAL * Apply this node to the passed query */ public void applyToQuery(ObjectLevelReadQuery theQuery, GenerationContext context) { if (theQuery.isReportQuery()) { ReportQuery reportQuery = (ReportQuery)theQuery; reportQuery.addAttribute("size", getLeft().generateExpression(context).count(), (Class)getType()); reportQuery.addGrouping(getLeft().getLeft().generateExpression(context)); } }
/** * INTERNAL * Validate node and calculate its type. */ public void validate(ParseTreeContext context) { if (left != null) { left.validate(context); } TypeHelper typeHelper = context.getTypeHelper(); setType(typeHelper.getIntType()); }