protected Set<String> getBindingNames() { if (bindings.size() == 0) return Collections.EMPTY_SET; Set<String> names = new HashSet<String>(); String qry = operation; int b = qry.indexOf('{'); String select = qry.substring(0, b); for (String name : bindings.getBindingNames()) { String replacement = getReplacement(bindings.getValue(name)); if (replacement != null) { String pattern = ".*[\\?\\$]" + name + "\\W.*"; if (Pattern.compile(pattern, Pattern.MULTILINE | Pattern.DOTALL).matcher(select).matches()) { names.add(name); } } } return names; }
protected Set<String> getBindingNames() { if (bindings.size() == 0) return Collections.EMPTY_SET; Set<String> names = new HashSet<>(); String qry = operation; int b = qry.indexOf('{'); String select = qry.substring(0, b); for (String name : bindings.getBindingNames()) { String replacement = getReplacement(bindings.getValue(name)); if (replacement != null) { String pattern = ".*[\\?\\$]" + name + "\\W.*"; if (Pattern.compile(pattern, Pattern.MULTILINE | Pattern.DOTALL).matcher(select).matches()) { names.add(name); } } } return names; }
protected String getQueryString() { if (bindings.size() == 0) return queryString; String qry = queryString; int b = qry.indexOf('{'); String select = qry.substring(0, b); String where = qry.substring(b); for (String name : bindings.getBindingNames()) { String replacement = getReplacement(bindings.getValue(name)); if (replacement != null) { String pattern = "[\\?\\$]" + name + "(?=\\W)"; select = select.replaceAll(pattern, ""); where = where.replaceAll(pattern, replacement); } } return select + where; }
protected Set<String> getBindingNames() { if (bindings.size() == 0) return Collections.EMPTY_SET; Set<String> names = new HashSet<String>(); String qry = operation; int b = qry.indexOf('{'); String select = qry.substring(0, b); for (String name : bindings.getBindingNames()) { String replacement = getReplacement(bindings.getValue(name)); if (replacement != null) { String pattern = ".*[\\?\\$]" + name + "\\W.*"; if (Pattern.compile(pattern, Pattern.MULTILINE | Pattern.DOTALL).matcher(select).matches()) { names.add(name); } } } return names; }
protected String getQueryString() { if (bindings.size() == 0) return operation; String qry = operation; int b = qry.indexOf('{'); String select = qry.substring(0, b); String where = qry.substring(b); for (String name : bindings.getBindingNames()) { String replacement = getReplacement(bindings.getValue(name)); if (replacement != null) { String pattern = "[\\?\\$]" + name + "(?=\\W)"; select = select.replaceAll(pattern, ""); where = where.replaceAll(pattern, replacement); } } return select + where; }
protected String getQueryString() { if (bindings.size() == 0) return operation; String qry = operation; int b = qry.indexOf('{'); String select = qry.substring(0, b); String where = qry.substring(b); for (String name : bindings.getBindingNames()) { String replacement = getReplacement(bindings.getValue(name)); if (replacement != null) { String pattern = "[\\?\\$]" + name + "(?=\\W)"; select = select.replaceAll(pattern, ""); where = where.replaceAll(pattern, replacement); } } return select + where; }
protected String getQueryString() { if (bindings.size() == 0) return operation; String qry = operation; int b = qry.indexOf('{'); String select = qry.substring(0, b); String where = qry.substring(b); for (String name : bindings.getBindingNames()) { String replacement = getReplacement(bindings.getValue(name)); if (replacement != null) { String pattern = "[\\?\\$]" + name + "(?=\\W)"; select = select.replaceAll(pattern, ""); where = where.replaceAll(pattern, replacement); } } return select + where; }
protected String getQueryString() { if (bindings.size() == 0) return queryString; String qry = queryString; int b = qry.indexOf('{'); String select = qry.substring(0, b); String where = qry.substring(b); for (String name : bindings.getBindingNames()) { String replacement = getReplacement(bindings.getValue(name)); if (replacement != null) { String pattern = "[\\?\\$]" + name + "(?=\\W)"; select = select.replaceAll(pattern, ""); where = where.replaceAll(pattern, replacement); } } return select + where; }
@Override public void update(final AggregationElement aggregation, final AggregationState state, final VisibilityBindingSet childBindingSet) { checkArgument(aggregation.getAggregationType() == AggregationType.COUNT, "The CountFunction only accepts COUNT AggregationElements."); requireNonNull(state); requireNonNull(childBindingSet); // Only add one to the count if the child contains the binding that we are counting. final String aggregatedName = aggregation.getAggregatedBindingName(); if(childBindingSet.hasBinding(aggregatedName)) { final MapBindingSet result = state.getBindingSet(); final String resultName = aggregation.getResultBindingName(); final boolean newBinding = !result.hasBinding(resultName); if(newBinding) { // Initialize the binding. result.addBinding(resultName, VF.createLiteral(BigInteger.ONE)); } else { // Update the existing binding. final Literal count = (Literal) result.getValue(resultName); final BigInteger updatedCount = count.integerValue().add( BigInteger.ONE ); result.addBinding(resultName, VF.createLiteral(updatedCount)); } } } }
@Override public void update(final AggregationElement aggregation, final AggregationState state, final VisibilityBindingSet childBindingSet) { checkArgument(aggregation.getAggregationType() == AggregationType.MIN, "The MinFunction only accepts MIN AggregationElements."); requireNonNull(state); requireNonNull(childBindingSet); // Only update the min if the child contains the binding that we are finding the min value for. final String aggregatedName = aggregation.getAggregatedBindingName(); if(childBindingSet.hasBinding(aggregatedName)) { final MapBindingSet result = state.getBindingSet(); final String resultName = aggregation.getResultBindingName(); final boolean newBinding = !result.hasBinding(resultName); Value min; if(newBinding) { min = childBindingSet.getValue(aggregatedName); } else { final Value oldMin = result.getValue(resultName); final Value chidlMin = childBindingSet.getValue(aggregatedName); min = compare.compare(chidlMin, oldMin) < 0 ? chidlMin : oldMin; } result.addBinding(resultName, min); } } }
@Override public void update(final AggregationElement aggregation, final AggregationState state, final VisibilityBindingSet childBindingSet) { checkArgument(aggregation.getAggregationType() == AggregationType.MAX, "The MaxFunction only accepts MAX AggregationElements."); requireNonNull(state); requireNonNull(childBindingSet); // Only update the max if the child contains the binding that we are finding the max value for. final String aggregatedName = aggregation.getAggregatedBindingName(); if(childBindingSet.hasBinding(aggregatedName)) { final MapBindingSet result = state.getBindingSet(); final String resultName = aggregation.getResultBindingName(); final boolean newBinding = !result.hasBinding(resultName); Value max; if(newBinding) { max = childBindingSet.getValue(aggregatedName); } else { final Value oldMax = result.getValue(resultName); final Value childMax = childBindingSet.getValue(aggregatedName); max = compare.compare(childMax, oldMax) > 0 ? childMax : oldMax; } result.addBinding(resultName, max); } } }
sum = VF.createLiteral(BigInteger.ZERO); } else { sum = (Literal) state.getBindingSet().getValue(resultName);