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));
+       }
 }


Reply via email to