@Override public boolean equals(Object other) { if (other instanceof GroupElem) { GroupElem o = (GroupElem)other; return name.equals(o.getName()) && operator.equals(o.getOperator()); } return false; }
public GroupElem(String name, AggregateOperator operator) { setName(name); setOperator(operator); }
@Override public GroupElem clone() { GroupElem clone = (GroupElem)super.clone(); clone.setOperator(getOperator().clone()); return clone; } }
for(final GroupElem groupElem : aggNode.getGroupElements()) { final AggregateOperator operator = groupElem.getOperator(); final Optional<AggregationType> type = AggregationType.byOperatorClass( operator.getClass() ); final String resultBindingName = groupElem.getName(); groupElem.visitChildren(new QueryModelVisitorBase<RuntimeException>() { @Override public void meet(final Var node) {
public Set<String> getAggregateBindingNames() { Set<String> bindings = new HashSet<String>(); for (GroupElem binding : groupElements) { bindings.add(binding.getName()); } return bindings; }
group.addGroupElement(new GroupElem(projName, op));
@Override public void replaceChildNode(QueryModelNode current, QueryModelNode replacement) { if (operator == current) { setOperator((AggregateOperator)replacement); } else { super.replaceChildNode(current, replacement); } }
for(final GroupElem groupElem : group.getGroupElements()) { final AggregateOperator operator = groupElem.getOperator(); final Optional<AggregationType> type = AggregationType.byOperatorClass( operator.getClass() ); final String resultBindingName = groupElem.getName(); groupElem.visitChildren(new QueryModelVisitorBase<RuntimeException>() { @Override public void meet(final Var node) {
GroupElem ge = new GroupElem(alias, operator); group.addGroupElement(ge);
private Map<String, Aggregate> getAggregates() throws ValueExprEvaluationException, QueryEvaluationException { if (this.aggregates == null) { this.aggregates = new LinkedHashMap<String, Aggregate>(); for (GroupElem ge : group.getGroupElements()) { Aggregate create = create(ge.getOperator()); if (create != null) { aggregates.put(ge.getName(), create); } } } return this.aggregates; }
@Override public void meet(GroupElem node) { if (predicate.equals(SeRQO.NAME)) { Literal lit = (Literal) object; node.setName(lit.getLabel()); } else if (predicate.equals(SeRQO.OPERATOR)) { node.setOperator((AggregateOperator) model.get(object)); } else { super.meet(node); } }
@Override public void meet(final GroupElem n) { final ProjectionElem e = new ProjectionElem(); e.setTargetName(n.getName()); e.setSourceName(n.getName()); e.setSourceExpression(new ExtensionElem(n.getOperator(), n.getName())); meet(e); }
GroupElem ge = new GroupElem(alias, operator);
@Override public void meet(final GroupElem n) { final ProjectionElem e = new ProjectionElem(); e.setTargetName(n.getName()); e.setSourceName(n.getName()); e.setSourceExpression(new ExtensionElem(n.getOperator(), n.getName())); meet(e); }
@Override public void meet(GroupElem node) { handleType(SeRQO.GROUPELEM); handleLiteral(SeRQO.NAME, node.getName()); handleChild(SeRQO.OPERATOR, node.getOperator()); super.meet(node); }