You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@clerezza.apache.org by ha...@apache.org on 2009/12/15 13:50:54 UTC

svn commit: r890780 - in /incubator/clerezza/issues/CLEREZZA-33: ./ org.apache.clerezza.rdf.core/ org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/sparql/query/impl/ org.apache.clerezza.rdf.core/src/test/java/org/apache/clerezza/...

Author: hasan
Date: Tue Dec 15 12:50:53 2009
New Revision: 890780

URL: http://svn.apache.org/viewvc?rev=890780&view=rev
Log:
CLEREZZA-33: fixed sparql serialization bug in serializing argument list of builtin function calls

Added:
    incubator/clerezza/issues/CLEREZZA-33/
    incubator/clerezza/issues/CLEREZZA-33/org.apache.clerezza.rdf.core/
      - copied from r890769, incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.rdf.core/
Modified:
    incubator/clerezza/issues/CLEREZZA-33/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/sparql/query/impl/SimpleStringQuerySerializer.java
    incubator/clerezza/issues/CLEREZZA-33/org.apache.clerezza.rdf.core/src/test/java/org/apache/clerezza/rdf/core/sparql/QuerySerializerTest.java

Modified: incubator/clerezza/issues/CLEREZZA-33/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/sparql/query/impl/SimpleStringQuerySerializer.java
URL: http://svn.apache.org/viewvc/incubator/clerezza/issues/CLEREZZA-33/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/sparql/query/impl/SimpleStringQuerySerializer.java?rev=890780&r1=890769&r2=890780&view=diff
==============================================================================
--- incubator/clerezza/issues/CLEREZZA-33/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/sparql/query/impl/SimpleStringQuerySerializer.java (original)
+++ incubator/clerezza/issues/CLEREZZA-33/org.apache.clerezza.rdf.core/src/main/java/org/apache/clerezza/rdf/core/sparql/query/impl/SimpleStringQuerySerializer.java Tue Dec 15 12:50:53 2009
@@ -224,8 +224,13 @@
 		s.append(name).append("(");
 		for (Expression e : expr) {
 			appendExpression(s, e);
+			s.append(",");
+		}
+		if (expr.isEmpty()) {
+			s.append(")");
+		} else {
+			s.setCharAt(s.length()-1, ')');
 		}
-		s.append(")");
 	}
 
 	private void appendLiteralExpression(StringBuffer s, LiteralExpression le) {

Modified: incubator/clerezza/issues/CLEREZZA-33/org.apache.clerezza.rdf.core/src/test/java/org/apache/clerezza/rdf/core/sparql/QuerySerializerTest.java
URL: http://svn.apache.org/viewvc/incubator/clerezza/issues/CLEREZZA-33/org.apache.clerezza.rdf.core/src/test/java/org/apache/clerezza/rdf/core/sparql/QuerySerializerTest.java?rev=890780&r1=890769&r2=890780&view=diff
==============================================================================
--- incubator/clerezza/issues/CLEREZZA-33/org.apache.clerezza.rdf.core/src/test/java/org/apache/clerezza/rdf/core/sparql/QuerySerializerTest.java (original)
+++ incubator/clerezza/issues/CLEREZZA-33/org.apache.clerezza.rdf.core/src/test/java/org/apache/clerezza/rdf/core/sparql/QuerySerializerTest.java Tue Dec 15 12:50:53 2009
@@ -18,13 +18,17 @@
  */
 package org.apache.clerezza.rdf.core.sparql;
 
+import java.util.ArrayList;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Set;
 import org.junit.Assert;
 import org.junit.Test;
 import org.apache.clerezza.rdf.core.LiteralFactory;
 import org.apache.clerezza.rdf.core.UriRef;
 import org.apache.clerezza.rdf.core.sparql.query.BinaryOperation;
+import org.apache.clerezza.rdf.core.sparql.query.BuiltInCall;
+import org.apache.clerezza.rdf.core.sparql.query.Expression;
 import org.apache.clerezza.rdf.core.sparql.query.LiteralExpression;
 import org.apache.clerezza.rdf.core.sparql.query.ResourceOrVariable;
 import org.apache.clerezza.rdf.core.sparql.query.TriplePattern;
@@ -244,4 +248,35 @@
 		Assert.assertTrue(selectQuery.toString()
 				.replaceAll("( |\n)+", " ").trim().equals(queryString));
 	}
+
+	@Test
+	public void testRegex() {
+
+		final String queryString = "SELECT ?p WHERE { " +
+				"<http://localhost/testitem> ?p ?x . " +
+				"FILTER REGEX(?x,\".*uni.*\"^^<http://www.w3.org/2001/XMLSchema#string>) }";
+
+		Variable p = new Variable("p");
+		SimpleSelectQuery selectQuery = new SimpleSelectQuery();
+		selectQuery.addSelection(p);
+
+		Variable x = new Variable("x");
+		Set<TriplePattern> triplePatterns = new HashSet<TriplePattern>();
+		triplePatterns.add(new SimpleTriplePattern(
+				new UriRef("http://localhost/testitem"), p, x));
+
+		SimpleBasicGraphPattern bgp = new SimpleBasicGraphPattern(triplePatterns);
+		SimpleGroupGraphPattern queryPattern = new SimpleGroupGraphPattern();
+		queryPattern.addGraphPattern(bgp);
+
+		List<Expression> arguments = new ArrayList<Expression>();
+		arguments.add(x);
+		arguments.add(new LiteralExpression(LiteralFactory.getInstance().
+				createTypedLiteral(".*uni.*")));
+		BuiltInCall constraint = new BuiltInCall("REGEX", arguments);
+		queryPattern.addConstraint(constraint);
+		selectQuery.setQueryPattern(queryPattern);
+		Assert.assertTrue(selectQuery.toString()
+				.replaceAll("( |\n)+", " ").trim().equals(queryString));
+	}
 }