Java Code Examples for org.eclipse.rdf4j.query.algebra.Regex#getFlagsArg()
The following examples show how to use
org.eclipse.rdf4j.query.algebra.Regex#getFlagsArg() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: RegexAsStringFunctionOptimizer.java From rdf4j with BSD 3-Clause "New" or "Revised" License | 6 votes |
@Override public void meet(Regex node) { final ValueExpr flagsArg = node.getFlagsArg(); if (flagsArg == null || flagsArg.toString().isEmpty()) { // if we have no flags then we can not be in case insensitive mode if (node.getPatternArg() instanceof ValueConstant) { ValueConstant vc = (ValueConstant) node.getPatternArg(); String regex = vc.getValue().stringValue(); final boolean anchoredAtStart = regex.startsWith("^"); final boolean anchoredAtEnd = regex.endsWith("$"); if (anchoredAtStart && anchoredAtEnd) { equalsCandidate(node, regex); } else if (anchoredAtStart) { strstartsCandidate(node, regex); } else if (anchoredAtEnd) { strendsCandidate(node, regex); } else { containsCandidate(node, regex); } } } super.meet(node); }
Example 2
Source File: SparqlValueExprRenderer.java From rdf4j with BSD 3-Clause "New" or "Revised" License | 5 votes |
/** * @inheritDoc */ @Override public void meet(Regex theOp) throws Exception { mBuffer.append(" regex("); theOp.getArg().visit(this); mBuffer.append(", "); theOp.getPatternArg().visit(this); if (theOp.getFlagsArg() != null) { mBuffer.append(","); theOp.getFlagsArg().visit(this); } mBuffer.append(")"); }
Example 3
Source File: SerqlValueExprRenderer.java From rdf4j with BSD 3-Clause "New" or "Revised" License | 5 votes |
/** * @inheritDoc */ @Override public void meet(Regex theOp) throws Exception { mBuffer.append(" regex("); theOp.getArg().visit(this); mBuffer.append(", "); theOp.getPatternArg().visit(this); if (theOp.getFlagsArg() != null) { mBuffer.append(","); theOp.getFlagsArg().visit(this); } mBuffer.append(")"); }
Example 4
Source File: SPARQLValueExprRenderer.java From semagrow with Apache License 2.0 | 5 votes |
/** * @inheritDoc */ @Override public void meet(Regex theOp) throws Exception { mBuffer.append(" regex("); theOp.getArg().visit(this); mBuffer.append(", "); theOp.getPatternArg().visit(this); if (theOp.getFlagsArg() != null) { mBuffer.append(","); theOp.getFlagsArg().visit(this); } mBuffer.append(")"); }
Example 5
Source File: StrictEvaluationStrategy.java From rdf4j with BSD 3-Clause "New" or "Revised" License | 4 votes |
/** * Determines whether the two operands match according to the <code>regex</code> operator. * * @return <tt>true</tt> if the operands match according to the <tt>regex</tt> operator, <tt>false</tt> otherwise. */ public Value evaluate(Regex node, BindingSet bindings) throws QueryEvaluationException { Value arg = evaluate(node.getArg(), bindings); Value parg = evaluate(node.getPatternArg(), bindings); Value farg = null; ValueExpr flagsArg = node.getFlagsArg(); if (flagsArg != null) { farg = evaluate(flagsArg, bindings); } if (QueryEvaluationUtil.isStringLiteral(arg) && QueryEvaluationUtil.isSimpleLiteral(parg) && (farg == null || QueryEvaluationUtil.isSimpleLiteral(farg))) { String text = ((Literal) arg).getLabel(); String ptn = ((Literal) parg).getLabel(); String flags = ""; if (farg != null) { flags = ((Literal) farg).getLabel(); } // TODO should this Pattern be cached? int f = 0; for (char c : flags.toCharArray()) { switch (c) { case 's': f |= Pattern.DOTALL; break; case 'm': f |= Pattern.MULTILINE; break; case 'i': f |= Pattern.CASE_INSENSITIVE; f |= Pattern.UNICODE_CASE; break; case 'x': f |= Pattern.COMMENTS; break; case 'd': f |= Pattern.UNIX_LINES; break; case 'u': f |= Pattern.UNICODE_CASE; break; case 'q': f |= Pattern.LITERAL; break; default: throw new ValueExprEvaluationException(flags); } } Pattern pattern = Pattern.compile(ptn, f); boolean result = pattern.matcher(text).find(); return BooleanLiteral.valueOf(result); } throw new ValueExprEvaluationException(); }
Example 6
Source File: HalyardValueExprEvaluation.java From Halyard with Apache License 2.0 | 4 votes |
/** * Determines whether the two operands match according to the <code>regex</code> operator. * * @return <tt>true</tt> if the operands match according to the * <tt>regex</tt> operator, <tt>false</tt> otherwise. */ private Value evaluate(Regex node, BindingSet bindings) throws ValueExprEvaluationException, QueryEvaluationException { Value arg = evaluate(node.getArg(), bindings); Value parg = evaluate(node.getPatternArg(), bindings); Value farg = null; ValueExpr flagsArg = node.getFlagsArg(); if (flagsArg != null) { farg = evaluate(flagsArg, bindings); } if (QueryEvaluationUtil.isStringLiteral(arg) && QueryEvaluationUtil.isSimpleLiteral(parg) && (farg == null || QueryEvaluationUtil.isSimpleLiteral(farg))) { String text = ((Literal) arg).getLabel(); String ptn = ((Literal) parg).getLabel(); String flags = ""; if (farg != null) { flags = ((Literal) farg).getLabel(); } // TODO should this Pattern be cached? int f = 0; for (char c : flags.toCharArray()) { switch (c) { case 's': f |= Pattern.DOTALL; break; case 'm': f |= Pattern.MULTILINE; break; case 'i': f |= Pattern.CASE_INSENSITIVE; f |= Pattern.UNICODE_CASE; break; case 'x': f |= Pattern.COMMENTS; break; case 'd': f |= Pattern.UNIX_LINES; break; case 'u': f |= Pattern.UNICODE_CASE; break; default: throw new ValueExprEvaluationException(flags); } } Pattern pattern = Pattern.compile(ptn, f); boolean result = pattern.matcher(text).find(); return BooleanLiteral.valueOf(result); } throw new ValueExprEvaluationException(); }