@Override public void meet(final Filter node) throws Exception { super.meet(node); final ValueExpr arg = node.getCondition(); if (arg instanceof FunctionCall) { final FunctionCall fc = (FunctionCall) arg; if (RANGE.stringValue().equals(fc.getURI())) { //range(?var, start, end) final List<ValueExpr> valueExprs = fc.getArgs(); if (valueExprs.size() != 3) { throw new QueryEvaluationException("org.apache:range must have 3 parameters: variable, start, end"); } final Var var = (Var) valueExprs.get(0); final ValueConstant startVc = (ValueConstant) valueExprs.get(1); final ValueConstant endVc = (ValueConstant) valueExprs.get(2); final Value start = startVc.getValue(); final Value end = endVc.getValue(); rangeValues.put(var, new RangeValue(start, end)); node.setCondition(new ValueConstant(BooleanLiteralImpl.TRUE)); } } }
@Override public void meet(final Filter node) throws Exception { super.meet(node); final ValueExpr arg = node.getCondition(); if (arg instanceof FunctionCall) { final FunctionCall fc = (FunctionCall) arg; if (RANGE.stringValue().equals(fc.getURI())) { //range(?var, start, end) final List<ValueExpr> valueExprs = fc.getArgs(); if (valueExprs.size() != 3) { throw new QueryEvaluationException("org.apache:range must have 3 parameters: variable, start, end"); } final Var var = (Var) valueExprs.get(0); final ValueConstant startVc = (ValueConstant) valueExprs.get(1); final ValueConstant endVc = (ValueConstant) valueExprs.get(2); final Value start = startVc.getValue(); final Value end = endVc.getValue(); rangeValues.put(var, new RangeValue(start, end)); node.setCondition(new ValueConstant(BooleanLiteral.TRUE)); } } }
public static RyaType convertValue(Value value) { if (value == null) return null; //assuming either uri or Literal here if(value instanceof Resource) { return convertResource((Resource) value); } if (value instanceof Literal) { return convertLiteral((Literal) value); } if (value instanceof RangeValue) { RangeValue rv = (RangeValue) value; if (rv.getStart() instanceof URI) { return new RyaURIRange(convertURI((URI) rv.getStart()), convertURI((URI) rv.getEnd())); } else { //literal return new RyaTypeRange(convertLiteral((Literal) rv.getStart()), convertLiteral((Literal) rv.getEnd())); } } return null; }
/** * Converts a {@link Value} into a {@link RyaType} representation of the * {@code value}. * @param value the {@link Value} to convert. * @return the {@link RyaType} representation of the {@code value}. */ public static RyaType convertValue(final Value value) { if (value == null) { return null; } //assuming either IRI or Literal here if (value instanceof Resource) { return convertResource((Resource) value); } if (value instanceof Literal) { return convertLiteral((Literal) value); } if (value instanceof RangeValue) { final RangeValue<?> rv = (RangeValue<?>) value; if (rv.getStart() instanceof IRI) { return new RyaIRIRange(convertIRI((IRI) rv.getStart()), convertIRI((IRI) rv.getEnd())); } else { //literal return new RyaTypeRange(convertLiteral((Literal) rv.getStart()), convertLiteral((Literal) rv.getEnd())); } } return null; }