You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by rv...@apache.org on 2012/10/03 21:47:26 UTC
svn commit: r1393726 - in /jena/trunk/jena-arq/src:
main/java/com/hp/hpl/jena/sparql/resultset/
test/java/com/hp/hpl/jena/sparql/resultset/
Author: rvesse
Date: Wed Oct 3 19:47:25 2012
New Revision: 1393726
URL: http://svn.apache.org/viewvc?rev=1393726&view=rev
Log:
Per Andy's suggestions change TSV/CSV boolean output to have a header row
Modified:
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/CSVInput.java
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/CSVOutput.java
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/TSVInput.java
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/TSVOutput.java
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/resultset/TestResultSetFormat2.java
Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/CSVInput.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/CSVInput.java?rev=1393726&r1=1393725&r2=1393726&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/CSVInput.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/CSVInput.java Wed Oct 3 19:47:25 2012
@@ -75,7 +75,6 @@ public class CSVInput
String[] tokens = str.split(",") ;
for ( String token : tokens )
{
- if (token.startsWith("?")) token = token.substring(1);
Var var = Var.alloc(token);
vars.add(var);
varNames.add(var.getName());
@@ -98,15 +97,23 @@ public class CSVInput
String str = null;
try
{
+ //First try to parse the header
str = reader.readLine();
- if (str == null) throw new ARQException("CSV Results malformed, input is empty");
+ if (str == null) throw new ARQException("CSV Boolean Results malformed, input is empty");
str = str.trim(); //Remove extraneous white space
+
+ //Expect a header row with single _askResult variable
+ if (!str.equals("_askResult")) throw new ARQException("CSV Boolean Results malformed, did not get expected ?_askResult header row");
+
+ //Then try to parse the boolean result
+ str = reader.readLine();
+ if (str == null) throw new ARQException("CSV Boolean Results malformed, unexpected end of input after header row");
+ str = str.trim();
+
if (str.toLowerCase().equals("true") || str.toLowerCase().equals("yes")) {
return true;
} else if (str.toLowerCase().equals("false") || str.toLowerCase().equals("no")) {
return false;
- } else if (str.startsWith("?") || str.contains(",")) {
- throw new ARQException("CSV Boolean Results malformed, appears to be a normal result set header, use CSVInput.fromCSV() to parse a ResultSet");
} else {
throw new ARQException("CSV Boolean Results malformed, expected one of - true yes false no - but got " + str);
}
Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/CSVOutput.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/CSVOutput.java?rev=1393726&r1=1393725&r2=1393726&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/CSVOutput.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/CSVOutput.java Wed Oct 3 19:47:25 2012
@@ -130,8 +130,9 @@ public class CSVOutput extends OutputBas
return str;
}
- static final byte[] yesBytes = StrUtils.asUTF8bytes("yes") ;
- static final byte[] noBytes = StrUtils.asUTF8bytes("no") ;
+ static final byte[] headerBytes = StrUtils.asUTF8bytes("_askResult" + NL);
+ static final byte[] yesBytes = StrUtils.asUTF8bytes("true") ;
+ static final byte[] noBytes = StrUtils.asUTF8bytes("false") ;
static final byte[] NLBytes = StrUtils.asUTF8bytes(NL) ;
@Override
@@ -139,6 +140,7 @@ public class CSVOutput extends OutputBas
{
try
{
+ out.write(headerBytes);
if (booleanResult)
out.write(yesBytes) ;
else
Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/TSVInput.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/TSVInput.java?rev=1393726&r1=1393725&r2=1393726&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/TSVInput.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/TSVInput.java Wed Oct 3 19:47:25 2012
@@ -99,15 +99,23 @@ public class TSVInput {
String str = null;
try
{
+ //First try to parse the header
str = reader.readLine();
- if (str == null) throw new ARQException("TSV Boolean Results malformed - input is empty");
+ if (str == null) throw new ARQException("TSV Boolean Results malformed, input is empty");
str = str.trim(); //Remove extraneous white space
+
+ //Expect a header row with single ?_askResult variable
+ if (!str.equals("?_askResult")) throw new ARQException("TSV Boolean Results malformed, did not get expected ?_askResult header row");
+
+ //Then try to parse the boolean result
+ str = reader.readLine();
+ if (str == null) throw new ARQException("TSV Boolean Results malformed, unexpected end of input after header row");
+ str = str.trim();
+
if (str.toLowerCase().equals("true") || str.toLowerCase().equals("yes")) {
return true;
} else if (str.toLowerCase().equals("false") || str.toLowerCase().equals("no")) {
return false;
- } else if (str.startsWith("?") || str.contains("\t")) {
- throw new ARQException("TSV Boolean Results malformed, appears to be a normal result set header, use TSVInput.fromTSV() to parse a ResultSet");
} else {
throw new ARQException("TSV Boolean Results malformed, expected one of - true yes false no - but got " + str);
}
Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/TSVOutput.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/TSVOutput.java?rev=1393726&r1=1393725&r2=1393726&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/TSVOutput.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/TSVOutput.java Wed Oct 3 19:47:25 2012
@@ -104,8 +104,9 @@ public class TSVOutput extends OutputBas
}
}
- static final byte[] yesBytes = StrUtils.asUTF8bytes("yes") ;
- static final byte[] noBytes = StrUtils.asUTF8bytes("no") ;
+ static final byte[] headerBytes = StrUtils.asUTF8bytes("?_askResult" + NL);
+ static final byte[] yesBytes = StrUtils.asUTF8bytes("true") ;
+ static final byte[] noBytes = StrUtils.asUTF8bytes("false") ;
static final byte[] NLBytes = StrUtils.asUTF8bytes(NL) ;
@Override
@@ -113,6 +114,7 @@ public class TSVOutput extends OutputBas
{
try
{
+ out.write(headerBytes);
if (booleanResult)
out.write(yesBytes) ;
else
Modified: jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/resultset/TestResultSetFormat2.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/resultset/TestResultSetFormat2.java?rev=1393726&r1=1393725&r2=1393726&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/resultset/TestResultSetFormat2.java (original)
+++ jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/resultset/TestResultSetFormat2.java Wed Oct 3 19:47:25 2012
@@ -138,7 +138,7 @@ public class TestResultSetFormat2
public void resultset_tsv_boolean_01()
{
// true is valid
- String x = "true";
+ String x = "?_askResult\ntrue";
parseTSVAsBoolean(x, true);
}
@@ -146,7 +146,7 @@ public class TestResultSetFormat2
public void resultset_tsv_boolean_02()
{
// true is valid regardless of case
- String x = "TRUE";
+ String x = "?_askResult\nTRUE";
parseTSVAsBoolean(x, true);
}
@@ -154,7 +154,7 @@ public class TestResultSetFormat2
public void resultset_tsv_boolean_03()
{
// true is valid regardless of case
- String x = "tRuE";
+ String x = "?_askResult\ntRuE";
parseTSVAsBoolean(x, true);
}
@@ -162,7 +162,7 @@ public class TestResultSetFormat2
public void resultset_tsv_boolean_04()
{
// yes is valid
- String x = "yes";
+ String x = "?_askResult\nyes";
parseTSVAsBoolean(x, true);
}
@@ -170,7 +170,7 @@ public class TestResultSetFormat2
public void resultset_tsv_boolean_05()
{
// yes is valid regardless of case
- String x = "YES";
+ String x = "?_askResult\nYES";
parseTSVAsBoolean(x, true);
}
@@ -178,7 +178,7 @@ public class TestResultSetFormat2
public void resultset_tsv_boolean_06()
{
// yes is valid regardless of case
- String x = "yEs";
+ String x = "?_askResult\nyEs";
parseTSVAsBoolean(x, true);
}
@@ -186,7 +186,7 @@ public class TestResultSetFormat2
public void resultset_tsv_boolean_07()
{
// false is valid
- String x = "false";
+ String x = "?_askResult\nfalse";
parseTSVAsBoolean(x, false);
}
@@ -194,7 +194,7 @@ public class TestResultSetFormat2
public void resultset_tsv_boolean_08()
{
// false is valid regardless of case
- String x = "FALSE";
+ String x = "?_askResult\nFALSE";
parseTSVAsBoolean(x, false);
}
@@ -202,7 +202,7 @@ public class TestResultSetFormat2
public void resultset_tsv_boolean_09()
{
// false is valid regardless of case
- String x = "fAlSe";
+ String x = "?_askResult\nfAlSe";
parseTSVAsBoolean(x, false);
}
@@ -210,7 +210,7 @@ public class TestResultSetFormat2
public void resultset_tsv_boolean_10()
{
// no is valid
- String x = "no";
+ String x = "?_askResult\nno";
parseTSVAsBoolean(x, false);
}
@@ -218,7 +218,7 @@ public class TestResultSetFormat2
public void resultset_tsv_boolean_11()
{
// no is valid regardless of case
- String x = "NO";
+ String x = "?_askResult\nNO";
parseTSVAsBoolean(x, false);
}
@@ -226,7 +226,7 @@ public class TestResultSetFormat2
public void resultset_tsv_boolean_12()
{
// no is valid regardless of case
- String x = "nO";
+ String x = "?_askResult\nnO";
parseTSVAsBoolean(x, false);
}
@@ -302,20 +302,36 @@ public class TestResultSetFormat2
public void resultset_bad_tsv_boolean_01()
{
//Not in allowed set of true yes false no
- String x = "blah";
+ String x = "?_askResults\nblah";
parseTSVAsBoolean(x, false);
}
@Test (expected=ARQException.class)
public void resultset_bad_tsv_boolean_02()
{
+ //Missing header
+ String x = "true";
+ parseTSVAsBoolean(x, false);
+ }
+
+ @Test (expected=ARQException.class)
+ public void resultset_bad_tsv_boolean_03()
+ {
+ //Missing boolean
+ String x = "?_askResult\n";
+ parseTSVAsBoolean(x, false);
+ }
+
+ @Test (expected=ARQException.class)
+ public void resultset_bad_tsv_boolean_04()
+ {
//A normal result set header
String x = "?x\n";
parseTSVAsBoolean(x, false);
}
@Test (expected=ARQException.class)
- public void resultset_bad_tsv_boolean_03()
+ public void resultset_bad_tsv_boolean_05()
{
//A normal result set header
String x = "?x\t?y\n";