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
 {