You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2017/06/27 14:53:12 UTC
[1/7] jena git commit: JENA-1367: Improve apf:strSplit corner cases
Repository: jena
Updated Branches:
refs/heads/master 0fb71223c -> eb4b5b689
JENA-1367: Improve apf:strSplit corner cases
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/305a5b18
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/305a5b18
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/305a5b18
Branch: refs/heads/master
Commit: 305a5b1846d0fbaf165f2a8c4423b3e2645222c1
Parents: 5b75b3e
Author: Richard Cyganiak <ri...@cyganiak.de>
Authored: Fri Jun 23 11:44:51 2017 +0100
Committer: Richard Cyganiak <ri...@cyganiak.de>
Committed: Fri Jun 23 11:44:51 2017 +0100
----------------------------------------------------------------------
.../jena/sparql/pfunction/library/strSplit.java | 62 ++++++--
.../sparql/pfunction/library/TestStrSplit.java | 140 +++++++++++++++++++
2 files changed, 188 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/305a5b18/jena-arq/src/main/java/org/apache/jena/sparql/pfunction/library/strSplit.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/pfunction/library/strSplit.java b/jena-arq/src/main/java/org/apache/jena/sparql/pfunction/library/strSplit.java
index 86f9331..43e6c01 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/pfunction/library/strSplit.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/pfunction/library/strSplit.java
@@ -20,20 +20,23 @@ package org.apache.jena.sparql.pfunction.library ;
import java.util.Arrays ;
import java.util.Iterator ;
+import java.util.List;
import org.apache.jena.atlas.iterator.Iter ;
import org.apache.jena.atlas.lib.StrUtils ;
import org.apache.jena.graph.Node ;
import org.apache.jena.graph.NodeFactory ;
+import org.apache.jena.query.QueryBuildException;
import org.apache.jena.sparql.core.Var ;
import org.apache.jena.sparql.engine.ExecutionContext ;
import org.apache.jena.sparql.engine.QueryIterator ;
import org.apache.jena.sparql.engine.binding.Binding ;
import org.apache.jena.sparql.engine.binding.BindingFactory ;
import org.apache.jena.sparql.engine.iterator.QueryIterPlainWrapper ;
-import org.apache.jena.sparql.expr.ExprEvalException ;
import org.apache.jena.sparql.pfunction.PFuncSimpleAndList ;
import org.apache.jena.sparql.pfunction.PropFuncArg ;
+import org.apache.jena.sparql.util.IterLib;
+import org.apache.jena.vocabulary.XSD;
/**
* Property function that requires the subject to be unbound, and the object to
@@ -44,27 +47,58 @@ import org.apache.jena.sparql.pfunction.PropFuncArg ;
*/
public class strSplit extends PFuncSimpleAndList
{
+
+ @Override
+ public void build(PropFuncArg argSubject, Node predicate, PropFuncArg argObject, ExecutionContext execCxt) {
+ super.build(argSubject, predicate, argObject, execCxt);
+
+ if (argObject.getArgListSize() != 2)
+ throw new QueryBuildException("Object list must contain exactly two arguments, the string to split and a regular expression") ;
+ }
+
@Override
public QueryIterator execEvaluated(final Binding binding, final Node subject, final Node predicate, final PropFuncArg object, final ExecutionContext execCxt)
{
- if (!Var.isVar(subject))
- throw new ExprEvalException("Subject is not a variable (" + subject + ")") ;
-
- if (object.getArgListSize() != 2)
- throw new ExprEvalException("Object list must contain exactly two arguments, the string to split and a regular expression") ;
+ if (!object.getArg(0).isLiteral() || !object.getArg(1).isLiteral()) {
+ return IterLib.noResults(execCxt);
+ }
+
String s = object.getArg(0).getLiteralLexicalForm() ;
String regex = object.getArg(1).getLiteralLexicalForm() ;
- final Var subjectVar = Var.alloc(subject);
-
// StrUtils will also trim whitespace
- String[] tokens = StrUtils.split(s, regex);
- Iterator<Binding> it = Iter.map(
- Arrays.asList(tokens).iterator(),
- item -> BindingFactory.binding(binding, subjectVar,
- NodeFactory.createLiteral(item)));
- return new QueryIterPlainWrapper(it, execCxt);
+ List<String> tokens = Arrays.asList(StrUtils.split(s, regex));
+
+ if (Var.isVar(subject)) {
+
+ // Case: Subject is variable. Return all tokens as results.
+
+ final Var subjectVar = Var.alloc(subject);
+
+ Iterator<Binding> it = Iter.map(
+ tokens.iterator(),
+ item -> BindingFactory.binding(binding, subjectVar,
+ NodeFactory.createLiteral(item)));
+ return new QueryIterPlainWrapper(it, execCxt);
+
+ } else if (subject.isLiteral()
+ && XSD.xstring.getURI().equals(subject.getLiteralDatatypeURI())
+ && "".equals(subject.getLiteralLanguage())) {
+
+ // Case: Subject is a plain literal.
+ // Return input unchanged if it is one of the tokens, or nothing otherwise
+
+ if (tokens.contains(subject.getLiteralLexicalForm())) {
+ return IterLib.result(binding, execCxt);
+ } else {
+ return IterLib.noResults(execCxt);
+ }
+
+ }
+
+ // Any other case: Return nothing
+ return IterLib.noResults(execCxt);
}
}
http://git-wip-us.apache.org/repos/asf/jena/blob/305a5b18/jena-arq/src/test/java/org/apache/jena/sparql/pfunction/library/TestStrSplit.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/pfunction/library/TestStrSplit.java b/jena-arq/src/test/java/org/apache/jena/sparql/pfunction/library/TestStrSplit.java
new file mode 100644
index 0000000..f59e573
--- /dev/null
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/pfunction/library/TestStrSplit.java
@@ -0,0 +1,140 @@
+package org.apache.jena.sparql.pfunction.library;
+
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.fail;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.jena.graph.Node;
+import org.apache.jena.graph.NodeFactory;
+import org.apache.jena.query.QueryBuildException;
+import org.apache.jena.query.QueryExecution;
+import org.apache.jena.query.QueryExecutionFactory;
+import org.apache.jena.query.ResultSet;
+import org.apache.jena.rdf.model.ModelFactory;
+import org.apache.jena.sparql.core.Var;
+import org.junit.Test;
+
+public class TestStrSplit {
+ private final static String prologue =
+ "PREFIX apf: <http://jena.apache.org/ARQ/property#>\n";
+
+ private QueryExecution qe;
+
+ @Test public void shouldThrowQBEIfSubjectIsList() {
+ assertQueryBuildException("SELECT ?x { (?x) apf:strSplit ('foo' ';') }");
+ }
+
+ @Test public void shouldThrowQBEIfObjectIsNotList() {
+ assertQueryBuildException("SELECT ?x { ?x apf:strSplit 'foo' }");
+ }
+
+ @Test public void shouldThrowQBEIfWrongNumberOfArgsInObjectList() {
+ assertQueryBuildException("SELECT ?x { ?x apf:strSplit () }");
+ assertQueryBuildException("SELECT ?x { ?x apf:strSplit ('foo') }");
+ assertQueryBuildException("SELECT ?x { ?x apf:strSplit ('foo' ';' 'i') }");
+ }
+
+ @Test public void shouldNotErrorOnSimpleQuery() {
+ query("SELECT ?x { ?x apf:strSplit ('foo' ';') }");
+ qe.execSelect();
+ // No exception -- pass
+ }
+
+ @Test public void literalInputNonMatchingRegex() {
+ query("SELECT ?x { ?x apf:strSplit ('foo' ';') }");
+ assertAllX("foo");
+ }
+
+ @Test public void emptyStringInputNonMatchingRegex() {
+ query("SELECT ?x { ?x apf:strSplit ('' ';') }");
+ assertAllX("");
+ }
+
+ @Test public void literalInputMatchingRegex() {
+ query("SELECT ?x { ?x apf:strSplit ('foo;bar' ';') }");
+ assertAllX("foo", "bar");
+ }
+
+ @Test public void boundVariableInput() {
+ query("SELECT ?x { BIND ('foo;bar' AS ?input) ?x apf:strSplit (?input ';') }");
+ assertAllX("foo", "bar");
+ }
+
+ @Test public void unboundVariableInput() {
+ query("SELECT ?x { ?x apf:strSplit (?unbound ';') }");
+ assertNoResults();
+ }
+
+ @Test public void boundVariableRegex() {
+ query("SELECT ?x { BIND (';' AS ?regex) ?x apf:strSplit ('foo;bar' ?regex) }");
+ assertAllX("foo", "bar");
+ }
+
+ @Test public void badInputNodeShouldHaveNoResults() {
+ query("SELECT ?x { ?x apf:strSplit (<foo> ';') }");
+ assertNoResults();
+ query("SELECT ?x { ?x apf:strSplit (_:foo ';') }");
+ assertNoResults();
+ }
+
+ @Test public void badRegexNodeShouldHaveNoResults() {
+ query("SELECT ?x { ?x apf:strSplit ('foo;bar' ?unbound) }");
+ assertNoResults();
+ query("SELECT ?x { ?x apf:strSplit ('foo;bar' <;>) }");
+ assertNoResults();
+ query("SELECT ?x { ?x apf:strSplit ('foo;bar' _:foo) }");
+ assertNoResults();
+ }
+
+ @Test public void literalSubjectShouldMatchIfInSplitResults() {
+ query("ASK { 'foo' apf:strSplit ('foo;bar' ';') }");
+ assertAsk(true);
+ query("ASK { 'bar' apf:strSplit ('foo;bar' ';') }");
+ assertAsk(true);
+ query("ASK { 'zzz' apf:strSplit ('foo;bar' ';') }");
+ assertAsk(false);
+ }
+
+ private void assertQueryBuildException(String selectQueryString) {
+ try {
+ query(selectQueryString);
+ qe.execSelect();
+ fail("Expected QueryBuildException");
+ } catch (QueryBuildException ex) {
+ // pass
+ }
+ }
+
+ private void query(String queryString) {
+ qe = QueryExecutionFactory.create(
+ prologue + queryString,
+ ModelFactory.createDefaultModel());
+ }
+
+ private void assertAllX(String... literalValues) {
+ List<Node> expectedNodes = new ArrayList<>();
+ for (String value: literalValues) {
+ expectedNodes.add(NodeFactory.createLiteral(value));
+ }
+ ResultSet rs = qe.execSelect();
+ List<Node> actualNodes = new ArrayList<>();
+ while (rs.hasNext()) {
+ actualNodes.add(rs.nextBinding().get(Var.alloc("x")));
+ }
+ assertArrayEquals(
+ expectedNodes.toArray(new Node[expectedNodes.size()]),
+ actualNodes.toArray(new Node[actualNodes.size()]));
+ }
+
+ private void assertNoResults() {
+ assertFalse(qe.execSelect().hasNext());
+ }
+
+ private void assertAsk(boolean expected) {
+ assertEquals(expected, qe.execAsk());
+ }
+}
[4/7] jena git commit: Add check for non-literals.
Posted by an...@apache.org.
Add check for non-literals.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/675b44df
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/675b44df
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/675b44df
Branch: refs/heads/master
Commit: 675b44df6a1b4088cbb61ed2b6744b9a48203f5d
Parents: 11234c0
Author: Andy Seaborne <an...@apache.org>
Authored: Tue Jun 27 14:56:00 2017 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Tue Jun 27 14:56:00 2017 +0100
----------------------------------------------------------------------
jena-core/src/main/java/org/apache/jena/rdf/model/impl/Util.java | 4 ++++
1 file changed, 4 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/675b44df/jena-core/src/main/java/org/apache/jena/rdf/model/impl/Util.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/rdf/model/impl/Util.java b/jena-core/src/main/java/org/apache/jena/rdf/model/impl/Util.java
index 8a93b73..ba7c969 100644
--- a/jena-core/src/main/java/org/apache/jena/rdf/model/impl/Util.java
+++ b/jena-core/src/main/java/org/apache/jena/rdf/model/impl/Util.java
@@ -203,6 +203,8 @@ public class Util extends Object {
*/
public static boolean isSimpleString(Node n) {
Objects.requireNonNull(n) ;
+ if ( ! n.isLiteral() )
+ return false ;
RDFDatatype dt = n.getLiteralDatatype() ;
if ( dt == null )
return !isLangString(n) ;
@@ -217,6 +219,8 @@ public class Util extends Object {
*/
public static boolean isLangString(Node n) {
Objects.requireNonNull(n) ;
+ if ( ! n.isLiteral() )
+ return false ;
String lang = n.getLiteralLanguage() ;
if ( lang == null )
return false ;
[6/7] jena git commit: JENA-1367: Use Util.isSimpleString.
Posted by an...@apache.org.
JENA-1367: Use Util.isSimpleString.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/c2a8abd5
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/c2a8abd5
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/c2a8abd5
Branch: refs/heads/master
Commit: c2a8abd51395aabb84b8b1b69ca650799fa71613
Parents: 0573874
Author: Andy Seaborne <an...@apache.org>
Authored: Tue Jun 27 15:00:24 2017 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Tue Jun 27 15:00:24 2017 +0100
----------------------------------------------------------------------
.../org/apache/jena/sparql/pfunction/library/strSplit.java | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/c2a8abd5/jena-arq/src/main/java/org/apache/jena/sparql/pfunction/library/strSplit.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/pfunction/library/strSplit.java b/jena-arq/src/main/java/org/apache/jena/sparql/pfunction/library/strSplit.java
index 2033d38..77889b7 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/pfunction/library/strSplit.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/pfunction/library/strSplit.java
@@ -27,6 +27,7 @@ import org.apache.jena.atlas.lib.StrUtils ;
import org.apache.jena.graph.Node ;
import org.apache.jena.graph.NodeFactory ;
import org.apache.jena.query.QueryBuildException;
+import org.apache.jena.rdf.model.impl.Util ;
import org.apache.jena.sparql.core.Var ;
import org.apache.jena.sparql.engine.ExecutionContext ;
import org.apache.jena.sparql.engine.QueryIterator ;
@@ -36,7 +37,6 @@ import org.apache.jena.sparql.engine.iterator.QueryIterPlainWrapper ;
import org.apache.jena.sparql.pfunction.PFuncSimpleAndList ;
import org.apache.jena.sparql.pfunction.PropFuncArg ;
import org.apache.jena.sparql.util.IterLib;
-import org.apache.jena.vocabulary.XSD;
/**
* Property function that requires the object to
@@ -84,13 +84,9 @@ public class strSplit extends PFuncSimpleAndList
NodeFactory.createLiteral(item)));
return new QueryIterPlainWrapper(it, execCxt);
- } else if (subject.isLiteral()
- && XSD.xstring.getURI().equals(subject.getLiteralDatatypeURI())
- && "".equals(subject.getLiteralLanguage())) {
-
+ } else if ( Util.isSimpleString(subject) ) {
// Case: Subject is a plain literal.
// Return input unchanged if it is one of the tokens, or nothing otherwise
-
if (tokens.contains(subject.getLiteralLexicalForm())) {
return IterLib.result(binding, execCxt);
} else {
[5/7] jena git commit: JENA-1367: Link in tests
Posted by an...@apache.org.
JENA-1367: Link in tests
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/0573874e
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/0573874e
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/0573874e
Branch: refs/heads/master
Commit: 0573874ec790bd52491f7dda167a4d76d6af49bb
Parents: 675b44d
Author: Andy Seaborne <an...@apache.org>
Authored: Tue Jun 27 14:56:23 2017 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Tue Jun 27 14:56:23 2017 +0100
----------------------------------------------------------------------
.../java/org/apache/jena/sparql/TC_General.java | 2 ++
.../sparql/pfunction/library/TS_PFunction.java | 30 ++++++++++++++++++++
2 files changed, 32 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/0573874e/jena-arq/src/test/java/org/apache/jena/sparql/TC_General.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/TC_General.java b/jena-arq/src/test/java/org/apache/jena/sparql/TC_General.java
index 68c9192..e8d46ea 100644
--- a/jena-arq/src/test/java/org/apache/jena/sparql/TC_General.java
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/TC_General.java
@@ -37,6 +37,7 @@ import org.apache.jena.sparql.lang.TS_Lang ;
import org.apache.jena.sparql.modify.TS_Update ;
import org.apache.jena.sparql.negation.TS_Negation ;
import org.apache.jena.sparql.path.TS_Path ;
+import org.apache.jena.sparql.pfunction.library.TS_PFunction ;
import org.apache.jena.sparql.resultset.TS_ResultSet ;
import org.apache.jena.sparql.solver.TS_Solver ;
import org.apache.jena.sparql.syntax.TS_SSE ;
@@ -57,6 +58,7 @@ import org.junit.runners.Suite ;
, TS_Expr.class
, TS_UserFunctions.class
+ , TS_PFunction.class
, TS_ResultSet.class
, TS_Engine.class
http://git-wip-us.apache.org/repos/asf/jena/blob/0573874e/jena-arq/src/test/java/org/apache/jena/sparql/pfunction/library/TS_PFunction.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/pfunction/library/TS_PFunction.java b/jena-arq/src/test/java/org/apache/jena/sparql/pfunction/library/TS_PFunction.java
new file mode 100644
index 0000000..4f3cfcc
--- /dev/null
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/pfunction/library/TS_PFunction.java
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.sparql.pfunction.library;
+
+import org.junit.runner.RunWith ;
+import org.junit.runners.Suite ;
+
+@RunWith(Suite.class)
+@Suite.SuiteClasses( {
+ TestStrSplit.class
+})
+
+public class TS_PFunction {
+}
[7/7] jena git commit: Make the RAT happy.
Posted by an...@apache.org.
Make the RAT happy.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/eb4b5b68
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/eb4b5b68
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/eb4b5b68
Branch: refs/heads/master
Commit: eb4b5b6893c1fe9647251167e79ab082c892f28a
Parents: c2a8abd
Author: Andy Seaborne <an...@apache.org>
Authored: Tue Jun 27 15:20:38 2017 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Tue Jun 27 15:20:38 2017 +0100
----------------------------------------------------------------------
.../sparql/pfunction/library/TestStrSplit.java | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/eb4b5b68/jena-arq/src/test/java/org/apache/jena/sparql/pfunction/library/TestStrSplit.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/pfunction/library/TestStrSplit.java b/jena-arq/src/test/java/org/apache/jena/sparql/pfunction/library/TestStrSplit.java
index f59e573..e8d2cd0 100644
--- a/jena-arq/src/test/java/org/apache/jena/sparql/pfunction/library/TestStrSplit.java
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/pfunction/library/TestStrSplit.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
package org.apache.jena.sparql.pfunction.library;
import static org.junit.Assert.assertArrayEquals;
[3/7] jena git commit: JENA-1367: Merge commit 'refs/pull/266/head'
of github.com:apache/jena
Posted by an...@apache.org.
JENA-1367: Merge commit 'refs/pull/266/head' of github.com:apache/jena
This closes #266.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/11234c07
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/11234c07
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/11234c07
Branch: refs/heads/master
Commit: 11234c07caf6ab6151c3d0bf3f665953565db97f
Parents: 0fb7122 eae24e5
Author: Andy Seaborne <an...@apache.org>
Authored: Tue Jun 27 14:54:09 2017 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Tue Jun 27 14:54:09 2017 +0100
----------------------------------------------------------------------
.../jena/sparql/pfunction/library/strSplit.java | 72 +++++++---
.../sparql/pfunction/library/TestStrSplit.java | 140 +++++++++++++++++++
2 files changed, 194 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
[2/7] jena git commit: JENA-1367 cont'd: Updated javadoc
Posted by an...@apache.org.
JENA-1367 cont'd: Updated javadoc
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/eae24e53
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/eae24e53
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/eae24e53
Branch: refs/heads/master
Commit: eae24e5320da8e6e305c55efdb39728e4d2d08ad
Parents: 305a5b1
Author: Richard Cyganiak <ri...@cyganiak.de>
Authored: Sun Jun 25 12:54:47 2017 +0100
Committer: Richard Cyganiak <ri...@cyganiak.de>
Committed: Sun Jun 25 12:54:47 2017 +0100
----------------------------------------------------------------------
.../apache/jena/sparql/pfunction/library/strSplit.java | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/eae24e53/jena-arq/src/main/java/org/apache/jena/sparql/pfunction/library/strSplit.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/pfunction/library/strSplit.java b/jena-arq/src/main/java/org/apache/jena/sparql/pfunction/library/strSplit.java
index 43e6c01..2033d38 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/pfunction/library/strSplit.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/pfunction/library/strSplit.java
@@ -39,11 +39,13 @@ import org.apache.jena.sparql.util.IterLib;
import org.apache.jena.vocabulary.XSD;
/**
- * Property function that requires the subject to be unbound, and the object to
+ * Property function that requires the object to
* contain a list of two items, the first of which is a string to be split, and
- * the second is a regular expression denoting the split point. The subject
- * variable is bound for each result of the split, and each result has the
- * whitespace trimmed from it.
+ * the second is a regular expression denoting the split point. If the subject
+ * is an unbound variable, it is bound for each result of the split, and each result has the
+ * whitespace trimmed from it. If the subject is not an unbound variable, then
+ * the property function will match if and only if the subject is one of the
+ * split results.
*/
public class strSplit extends PFuncSimpleAndList
{