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 2014/10/04 16:29:18 UTC
[1/4] git commit: Rework CSVParser wrapper and make setup RFC
compliant.
Repository: jena
Updated Branches:
refs/heads/jena-csv da76ae38c -> 468538e1b
Rework CSVParser wrapper and make setup RFC compliant.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/3db6a8a5
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/3db6a8a5
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/3db6a8a5
Branch: refs/heads/jena-csv
Commit: 3db6a8a5f7877537662bb6ef5ca45e819fd987d6
Parents: da76ae3
Author: Andy Seaborne <an...@seaborne.org>
Authored: Fri Oct 3 21:47:44 2014 +0100
Committer: Andy Seaborne <an...@seaborne.org>
Committed: Fri Oct 3 21:47:44 2014 +0100
----------------------------------------------------------------------
.../hp/hpl/jena/sparql/resultset/CSVInput.java | 1 -
.../org/apache/jena/atlas/csv/CSVParser.java | 67 +++++++++-----------
.../apache/jena/atlas/csv/TestCSVParser.java | 4 +-
3 files changed, 33 insertions(+), 39 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/3db6a8a5/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/CSVInput.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/CSVInput.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/CSVInput.java
index db5f3f3..abfeeb5 100644
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/CSVInput.java
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/CSVInput.java
@@ -117,7 +117,6 @@ public class CSVInput
FmtLog.warn(log, "Boolean result variable is '%s', not '_askResult'", vars.get(0).getName()) ;
}
-
List<String> line = parser.parse1() ;
if ( line.size() != 1 ) {
throw new ARQException("CSV Boolean Results malformed: data line='"+line+"'") ;
http://git-wip-us.apache.org/repos/asf/jena/blob/3db6a8a5/jena-arq/src/main/java/org/apache/jena/atlas/csv/CSVParser.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/atlas/csv/CSVParser.java b/jena-arq/src/main/java/org/apache/jena/atlas/csv/CSVParser.java
index 88b56c5..83613ae 100644
--- a/jena-arq/src/main/java/org/apache/jena/atlas/csv/CSVParser.java
+++ b/jena-arq/src/main/java/org/apache/jena/atlas/csv/CSVParser.java
@@ -18,25 +18,25 @@
package org.apache.jena.atlas.csv ;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
+import java.io.IOException ;
+import java.io.InputStream ;
+import java.io.Reader ;
+import java.util.Iterator ;
+import java.util.List ;
-import org.apache.commons.csv.CSVFormat;
-import org.apache.commons.csv.CSVRecord;
-import org.apache.jena.atlas.io.IO;
+import org.apache.commons.csv.CSVFormat ;
+import org.apache.commons.csv.CSVRecord ;
+import org.apache.jena.atlas.io.IO ;
+import org.apache.jena.atlas.iterator.Iter ;
+import org.apache.jena.atlas.iterator.Transform ;
-/** Written specifically to handle SPARQL results CSV files.
- * Acts as a wrapper for Commons CSV parser.
+/**
+ * Wrapper for Commons CSV parser.
*/
public class CSVParser implements Iterable<List<String>>
{
-
private final org.apache.commons.csv.CSVParser parser;
+ private final Iterator<CSVRecord> iterator ;
public static CSVParser create(String filename) {
InputStream input = IO.openFile(filename) ;
@@ -44,49 +44,44 @@ public class CSVParser implements Iterable<List<String>>
}
public static CSVParser create(InputStream input) {
- CSVParser parser = new CSVParser(new InputStreamReader(input)) ;
+ CSVParser parser = new CSVParser(IO.asBufferedUTF8(input)) ;
return parser ;
}
-
+
+ /** Be careful about charsets */
public static CSVParser create(Reader input) {
CSVParser parser = new CSVParser(input) ;
return parser ;
}
- public CSVParser(Reader input) {
+ private CSVParser(Reader input) {
try {
- this.parser = CSVFormat.EXCEL.withQuote('\'').parse(input);
+ this.parser = CSVFormat.RFC4180.parse(input);
+ this.iterator = parser.iterator() ;
} catch (IOException e) {
throw new CSVParseException("Failed to create the CSV parser: " + e.getMessage(), e);
}
}
+ private static Transform<CSVRecord, List<String>> transform = new Transform<CSVRecord, List<String>>() {
+ @Override
+ public List<String> convert(CSVRecord record) {
+ return recordToList(record) ;
+ }
+ } ;
+
@Override
public Iterator<List<String>> iterator() {
- List<List<String>> list = new ArrayList<>();
- for (CSVRecord record : parser) {
- List<String> row = new ArrayList<>();
- for (String columnValue : record) {
- row.add(columnValue);
- }
- list.add(row);
- }
- return list.iterator();
+ return Iter.map(iterator, transform) ;
}
public List<String> parse1() {
- Iterator<List<String>> iterator = iterator();
- if (iterator.hasNext())
- {
- final List<String> firstRow = iterator.next();
- return firstRow;
- }
+ if (iterator.hasNext())
+ return recordToList(iterator.next()) ;
return null;
}
- static void exception(String msg, long line, long col) {
- if ( line >= 0 && col > 0 )
- msg = String.format("[%s, %s] %s", line, col, msg) ;
- throw new CSVParseException(msg) ;
+ private static List<String> recordToList(CSVRecord record) {
+ return Iter.toList(record.iterator()) ;
}
}
http://git-wip-us.apache.org/repos/asf/jena/blob/3db6a8a5/jena-arq/src/test/java/org/apache/jena/atlas/csv/TestCSVParser.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/atlas/csv/TestCSVParser.java b/jena-arq/src/test/java/org/apache/jena/atlas/csv/TestCSVParser.java
index de66fdb..7574ea6 100644
--- a/jena-arq/src/test/java/org/apache/jena/atlas/csv/TestCSVParser.java
+++ b/jena-arq/src/test/java/org/apache/jena/atlas/csv/TestCSVParser.java
@@ -41,7 +41,7 @@ public class TestCSVParser extends BaseTest
@Test public void csv_parse_07() { csv(",,\n", new String[][] {{"", "", ""}}) ; }
@Test public void csv_parse_10() { csv("\n\n", new String[][] { {""}, {""} }) ; }
- @Test public void csv_parse_11() { csv("'aa'\naa\n", new String[][] { {"aa"}, {"aa"} }) ; }
+ @Test public void csv_parse_11() { csv("'aa'\naa\n", new String[][] { {"'aa'"}, {"aa"} }) ; }
@Test public void csv_parse_12() { csv("\naa", new String[][] { {""}, {"aa"} }) ; }
@Test public void csv_parse_13() { csv("a,b\nc,d", new String[][] { {"a", "b"}, {"c", "d"} }) ; }
@Test public void csv_parse_14() { csv("a,b\rc,d", new String[][] { {"a", "b"}, {"c", "d"} }) ; }
@@ -63,7 +63,7 @@ public class TestCSVParser extends BaseTest
private static void csv(String input, List<List<String>> answers)
{
List<List<String>> x = new ArrayList<>() ;
- CSVParser parser = new CSVParser(new StringReader(input)) ;
+ CSVParser parser = CSVParser.create(new StringReader(input)) ;
for (List<String> row : parser) {
x.add(row) ;
}
[3/4] git commit: Add compatibility operation
Posted by an...@apache.org.
Add compatibility operation
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/56d37bd1
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/56d37bd1
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/56d37bd1
Branch: refs/heads/jena-csv
Commit: 56d37bd1a56770fa168ac70f8565ce25450436bd
Parents: b6af532
Author: Andy Seaborne <an...@seaborne.org>
Authored: Fri Oct 3 22:58:03 2014 +0100
Committer: Andy Seaborne <an...@seaborne.org>
Committed: Fri Oct 3 22:58:03 2014 +0100
----------------------------------------------------------------------
.../main/java/org/apache/jena/propertytable/lang/LangCSV.java | 4 ++++
1 file changed, 4 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/56d37bd1/jena-csv/src/main/java/org/apache/jena/propertytable/lang/LangCSV.java
----------------------------------------------------------------------
diff --git a/jena-csv/src/main/java/org/apache/jena/propertytable/lang/LangCSV.java b/jena-csv/src/main/java/org/apache/jena/propertytable/lang/LangCSV.java
index b4a3ab0..f55d623 100644
--- a/jena-csv/src/main/java/org/apache/jena/propertytable/lang/LangCSV.java
+++ b/jena-csv/src/main/java/org/apache/jena/propertytable/lang/LangCSV.java
@@ -40,6 +40,10 @@ import com.hp.hpl.jena.graph.NodeFactory ;
*/
public class LangCSV implements LangRIOT {
+ /** @deprecated Use {@linkplain CSV2RDF#init} */
+ @Deprecated
+ public static void register() { CSV2RDF.init() ; }
+
public static final String CSV_PREFIX = "http://w3c/future-csv-vocab/";
public static final String CSV_ROW = CSV_PREFIX + "row";
[2/4] git commit: Adjust jena-csv to latest Jena.
Posted by an...@apache.org.
Adjust jena-csv to latest Jena.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/b6af5326
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/b6af5326
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/b6af5326
Branch: refs/heads/jena-csv
Commit: b6af532690a2baa869491011cb7c98f8156dedef
Parents: 3db6a8a
Author: Andy Seaborne <an...@seaborne.org>
Authored: Fri Oct 3 21:48:15 2014 +0100
Committer: Andy Seaborne <an...@seaborne.org>
Committed: Fri Oct 3 21:48:15 2014 +0100
----------------------------------------------------------------------
jena-csv/pom.xml | 1 -
.../impl/PropertyTableBuilder.java | 106 +++++-----
.../apache/jena/propertytable/lang/CSV2RDF.java | 33 +++
.../apache/jena/propertytable/lang/LangCSV.java | 114 ++---------
.../lang/ReaderRIOTFactoryCSV.java | 31 +++
.../propertytable/lang/ReaderRIOTLangCSV.java | 77 +++++++
.../main/java/riotcmd/LocatorOupputFile.java | 148 -------------
jena-csv/src/main/java/riotcmd/ModDest.java | 51 -----
jena-csv/src/main/java/riotcmd/csv2rdf.java | 205 -------------------
jena-csv/src/main/java/riotcmdx/csv2rdf.java | 53 +++++
.../jena/propertytable/graph/GraphCSVTest.java | 41 ++--
.../impl/AbstractPropertyTableBuilderTest.java | 36 ++--
.../jena/propertytable/lang/TestLangCSV.java | 2 +-
.../HEFCE_organogram_senior_data_31032011.csv | 2 +-
14 files changed, 304 insertions(+), 596 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/b6af5326/jena-csv/pom.xml
----------------------------------------------------------------------
diff --git a/jena-csv/pom.xml b/jena-csv/pom.xml
index b8400ee..6842895 100644
--- a/jena-csv/pom.xml
+++ b/jena-csv/pom.xml
@@ -18,7 +18,6 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
- <groupId>org.apache.jena</groupId>
<artifactId>jena-csv</artifactId>
<packaging>jar</packaging>
<name>Apache Jena - Data Tables for RDF and SPARQL</name>
http://git-wip-us.apache.org/repos/asf/jena/blob/b6af5326/jena-csv/src/main/java/org/apache/jena/propertytable/impl/PropertyTableBuilder.java
----------------------------------------------------------------------
diff --git a/jena-csv/src/main/java/org/apache/jena/propertytable/impl/PropertyTableBuilder.java b/jena-csv/src/main/java/org/apache/jena/propertytable/impl/PropertyTableBuilder.java
index 665c282..da2e91f 100644
--- a/jena-csv/src/main/java/org/apache/jena/propertytable/impl/PropertyTableBuilder.java
+++ b/jena-csv/src/main/java/org/apache/jena/propertytable/impl/PropertyTableBuilder.java
@@ -18,21 +18,21 @@
package org.apache.jena.propertytable.impl;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
+import java.io.InputStream ;
+import java.util.ArrayList ;
+import java.util.Iterator ;
+import java.util.List ;
-import org.apache.jena.atlas.csv.CSVParser;
-import org.apache.jena.atlas.csv.CSVTokenIterator;
-import org.apache.jena.atlas.io.IO;
-import org.apache.jena.propertytable.PropertyTable;
-import org.apache.jena.propertytable.Row;
-import org.apache.jena.propertytable.lang.LangCSV;
-import org.apache.jena.riot.system.IRIResolver;
+import org.apache.jena.atlas.csv.CSVParser ;
+import org.apache.jena.atlas.io.IO ;
+import org.apache.jena.propertytable.PropertyTable ;
+import org.apache.jena.propertytable.Row ;
+import org.apache.jena.propertytable.lang.LangCSV ;
+import org.apache.jena.riot.system.IRIResolver ;
-import com.hp.hpl.jena.datatypes.xsd.XSDDatatype;
-import com.hp.hpl.jena.graph.Node;
-import com.hp.hpl.jena.graph.NodeFactory;
+import com.hp.hpl.jena.datatypes.xsd.XSDDatatype ;
+import com.hp.hpl.jena.graph.Node ;
+import com.hp.hpl.jena.graph.NodeFactory ;
/**
@@ -75,56 +75,58 @@ public class PropertyTableBuilder {
protected static PropertyTable fillPropertyTable(PropertyTable table, String csvFilePath ){
InputStream input = IO.openFile(csvFilePath) ;
- CSVTokenIterator iterator = new CSVTokenIterator(input) ;
+ CSVParser iterator = CSVParser.create(input) ;
return fillPropertyTable(table, iterator, csvFilePath);
}
- protected static PropertyTable fillPropertyTable(PropertyTable table, CSVTokenIterator iterator, String csvFilePath){
+ protected static PropertyTable fillPropertyTable(PropertyTable table, CSVParser parser, String csvFilePath){
if (table == null){
return null;
}
- CSVParser parser = new CSVParser (iterator);
- List<String> rowLine = null;
ArrayList<Node> predicates = new ArrayList<Node>();
int rowNum = 0;
+
+ Iterator<List<String>> iter = parser.iterator() ;
+ if ( ! iter.hasNext() )
+ return table ;
+ List<String> row1 = iter.next() ;
+ table.createColumn(CSV_ROW_NODE);
+ for (String column : row1) {
+ String uri = createColumnKeyURI(csvFilePath, column);
+ Node p = NodeFactory.createURI(uri);
+ predicates.add(p);
+ table.createColumn(p);
+ }
+
+ rowNum++ ;
+ while(iter.hasNext()) {
+ List<String> rowLine = iter.next();
+ Node subject = LangCSV.caculateSubject(rowNum, csvFilePath);
+ Row row = table.createRow(subject);
- while ((rowLine = parser.parse1()) != null) {
- if (rowNum == 0) {
- table.createColumn(CSV_ROW_NODE);
- for (String column : rowLine) {
- String uri = createColumnKeyURI(csvFilePath, column);
- Node p = NodeFactory.createURI(uri);
- predicates.add(p);
- table.createColumn(p);
- }
- } else {
- Node subject = LangCSV.caculateSubject(rowNum, csvFilePath);
- Row row = table.createRow(subject);
-
- row.setValue(table.getColumn(CSV_ROW_NODE), NodeFactory.createLiteral(
- (rowNum + ""), XSDDatatype.XSDinteger));
+ row.setValue(table.getColumn(CSV_ROW_NODE),
+ NodeFactory.createLiteral((rowNum + ""), XSDDatatype.XSDinteger));
- for (int col = 0; col < rowLine.size() && col<predicates.size(); col++) {
+ for (int col = 0; col < rowLine.size() && col<predicates.size(); col++) {
- String columnValue = rowLine.get(col).trim();
- if("".equals(columnValue)){
- continue;
- }
- Node o;
- try {
- // Try for a double.
- double d = Double.parseDouble(columnValue);
- o = NodeFactory.createLiteral(columnValue,
- XSDDatatype.XSDdouble);
- } catch (Exception e) {
- o = NodeFactory.createLiteral(columnValue);
- }
- row.setValue(table.getColumn(predicates.get(col)), o);
- }
- }
- rowNum++;
- }
- return table;
+ String columnValue = rowLine.get(col).trim();
+ if("".equals(columnValue)){
+ continue;
+ }
+ Node o;
+ try {
+ // Try for a double.
+ double d = Double.parseDouble(columnValue);
+ o = NodeFactory.createLiteral(columnValue,
+ XSDDatatype.XSDdouble);
+ } catch (Exception e) {
+ o = NodeFactory.createLiteral(columnValue);
+ }
+ row.setValue(table.getColumn(predicates.get(col)), o);
+ }
+ rowNum++ ;
+ }
+ return table;
}
protected static String createColumnKeyURI(String csvFilePath, String column){
http://git-wip-us.apache.org/repos/asf/jena/blob/b6af5326/jena-csv/src/main/java/org/apache/jena/propertytable/lang/CSV2RDF.java
----------------------------------------------------------------------
diff --git a/jena-csv/src/main/java/org/apache/jena/propertytable/lang/CSV2RDF.java b/jena-csv/src/main/java/org/apache/jena/propertytable/lang/CSV2RDF.java
new file mode 100644
index 0000000..1d3f415
--- /dev/null
+++ b/jena-csv/src/main/java/org/apache/jena/propertytable/lang/CSV2RDF.java
@@ -0,0 +1,33 @@
+/**
+ * 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.propertytable.lang;
+
+import org.apache.jena.riot.Lang ;
+import org.apache.jena.riot.RDFParserRegistry ;
+
+public class CSV2RDF {
+
+ public static void init() { }
+
+ static {
+ RDFParserRegistry.removeRegistration(Lang.CSV);
+ RDFParserRegistry.registerLangTriples(Lang.CSV, new ReaderRIOTFactoryCSV());
+ }
+}
+
http://git-wip-us.apache.org/repos/asf/jena/blob/b6af5326/jena-csv/src/main/java/org/apache/jena/propertytable/lang/LangCSV.java
----------------------------------------------------------------------
diff --git a/jena-csv/src/main/java/org/apache/jena/propertytable/lang/LangCSV.java b/jena-csv/src/main/java/org/apache/jena/propertytable/lang/LangCSV.java
index ccda47e..b4a3ab0 100644
--- a/jena-csv/src/main/java/org/apache/jena/propertytable/lang/LangCSV.java
+++ b/jena-csv/src/main/java/org/apache/jena/propertytable/lang/LangCSV.java
@@ -18,33 +18,21 @@
package org.apache.jena.propertytable.lang;
-import static org.apache.jena.riot.RDFLanguages.CSV;
-
-import java.io.InputStream;
-import java.io.Reader;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.jena.atlas.csv.CSVParser;
-import org.apache.jena.atlas.web.ContentType;
-import org.apache.jena.propertytable.util.IRILib;
-import org.apache.jena.riot.Lang;
-import org.apache.jena.riot.RDFLanguages;
-import org.apache.jena.riot.RDFParserRegistry;
-import org.apache.jena.riot.ReaderRIOT;
-import org.apache.jena.riot.ReaderRIOTFactory;
-import org.apache.jena.riot.lang.LangRIOT;
-import org.apache.jena.riot.system.ErrorHandler;
-import org.apache.jena.riot.system.ErrorHandlerFactory;
-import org.apache.jena.riot.system.IRIResolver;
-import org.apache.jena.riot.system.ParserProfile;
-import org.apache.jena.riot.system.RiotLib;
-import org.apache.jena.riot.system.StreamRDF;
-
-import com.hp.hpl.jena.datatypes.xsd.XSDDatatype;
-import com.hp.hpl.jena.graph.Node;
-import com.hp.hpl.jena.graph.NodeFactory;
-import com.hp.hpl.jena.sparql.util.Context;
+import java.io.InputStream ;
+import java.io.Reader ;
+import java.util.ArrayList ;
+import java.util.List ;
+
+import org.apache.jena.atlas.csv.CSVParser ;
+import org.apache.jena.propertytable.util.IRILib ;
+import org.apache.jena.riot.Lang ;
+import org.apache.jena.riot.RDFLanguages ;
+import org.apache.jena.riot.lang.LangRIOT ;
+import org.apache.jena.riot.system.* ;
+
+import com.hp.hpl.jena.datatypes.xsd.XSDDatatype ;
+import com.hp.hpl.jena.graph.Node ;
+import com.hp.hpl.jena.graph.NodeFactory ;
/**
* The LangRIOT implementation for CSV
@@ -61,11 +49,6 @@ public class LangCSV implements LangRIOT {
private String filename;
private StreamRDF sink;
private ParserProfile profile; // Warning - we don't use all of this.
-
- public static void register(){
- RDFParserRegistry.removeRegistration(Lang.CSV);
- RDFParserRegistry.registerLangTriples(Lang.CSV, new ReaderRIOTFactoryCSV());
- }
@Override
public Lang getLang() {
@@ -82,8 +65,7 @@ public class LangCSV implements LangRIOT {
this.profile = profile;
}
- public LangCSV(Reader reader, String base, String filename,
- ErrorHandler errorHandler, StreamRDF sink) {
+ public LangCSV(Reader reader, String base, String filename, ErrorHandler errorHandler, StreamRDF sink) {
this.reader = reader;
this.base = base;
this.filename = filename;
@@ -91,8 +73,7 @@ public class LangCSV implements LangRIOT {
this.profile = RiotLib.profile(getLang(), base, errorHandler);
}
- public LangCSV(InputStream in, String base, String filename,
- ErrorHandler errorHandler, StreamRDF sink) {
+ public LangCSV(InputStream in, String base, String filename, ErrorHandler errorHandler, StreamRDF sink) {
this.input = in;
this.base = base;
this.filename = filename;
@@ -103,8 +84,7 @@ public class LangCSV implements LangRIOT {
@Override
public void parse() {
sink.start();
- CSVParser parser = (input != null) ? CSVParser.create(input)
- : CSVParser.create(reader);
+ CSVParser parser = (input != null) ? CSVParser.create(input) : CSVParser.create(reader);
List<String> row = null;
ArrayList<Node> predicates = new ArrayList<Node>();
int rowNum = 0;
@@ -168,62 +148,4 @@ public class LangCSV implements LangRIOT {
// Node subject = NodeFactory.createURI(uri);
return subject;
}
-
-
-
-
- private static class ReaderRIOTFactoryCSV implements ReaderRIOTFactory
- {
- @Override
- public ReaderRIOT create(Lang lang) {
- return new ReaderRIOTLangCSV(lang) ;
- }
- }
-
- private static class ReaderRIOTLangCSV implements ReaderRIOT
- {
- private final Lang lang ;
- private ErrorHandler errorHandler ;
- private ParserProfile parserProfile = null ;
-
- ReaderRIOTLangCSV(Lang lang) {
- this.lang = lang ;
- errorHandler = ErrorHandlerFactory.getDefaultErrorHandler() ;
- }
-
- @Override
- public void read(InputStream in, String baseURI, ContentType ct, StreamRDF output, Context context) {
- if ( lang == CSV){
- LangRIOT parser = new LangCSV (in, baseURI, baseURI, ErrorHandlerFactory.getDefaultErrorHandler(), output);
- if ( parserProfile != null )
- parser.setProfile(parserProfile);
- if ( errorHandler != null )
- parser.getProfile().setHandler(errorHandler) ;
- parser.parse() ;
- } else {
- throw new IllegalArgumentException("The Lang must be 'CSV'!");
- }
-
- }
-
- @Override
- public void read(Reader in, String baseURI, ContentType ct, StreamRDF output, Context context) {
- if ( lang == CSV){
- LangRIOT parser = new LangCSV (in, baseURI, baseURI, ErrorHandlerFactory.getDefaultErrorHandler(), output);
- if ( parserProfile != null )
- parser.setProfile(parserProfile);
- if ( errorHandler != null )
- parser.getProfile().setHandler(errorHandler) ;
- parser.parse() ;
- } else {
- throw new IllegalArgumentException("The Lang must be 'CSV'!");
- }
- }
-
- @Override public ErrorHandler getErrorHandler() { return errorHandler ; }
- @Override public void setErrorHandler(ErrorHandler errorHandler) { this.errorHandler = errorHandler ; }
-
- @Override public ParserProfile getParserProfile() { return parserProfile ; }
- @Override public void setParserProfile(ParserProfile parserProfile) { this.parserProfile = parserProfile ; }
- }
}
http://git-wip-us.apache.org/repos/asf/jena/blob/b6af5326/jena-csv/src/main/java/org/apache/jena/propertytable/lang/ReaderRIOTFactoryCSV.java
----------------------------------------------------------------------
diff --git a/jena-csv/src/main/java/org/apache/jena/propertytable/lang/ReaderRIOTFactoryCSV.java b/jena-csv/src/main/java/org/apache/jena/propertytable/lang/ReaderRIOTFactoryCSV.java
new file mode 100644
index 0000000..ec0a68f
--- /dev/null
+++ b/jena-csv/src/main/java/org/apache/jena/propertytable/lang/ReaderRIOTFactoryCSV.java
@@ -0,0 +1,31 @@
+/**
+ * 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.propertytable.lang;
+
+import org.apache.jena.riot.Lang ;
+import org.apache.jena.riot.ReaderRIOT ;
+import org.apache.jena.riot.ReaderRIOTFactory ;
+
+class ReaderRIOTFactoryCSV implements ReaderRIOTFactory
+{
+ @Override
+ public ReaderRIOT create(Lang lang) {
+ return new ReaderRIOTLangCSV(lang) ;
+ }
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/b6af5326/jena-csv/src/main/java/org/apache/jena/propertytable/lang/ReaderRIOTLangCSV.java
----------------------------------------------------------------------
diff --git a/jena-csv/src/main/java/org/apache/jena/propertytable/lang/ReaderRIOTLangCSV.java b/jena-csv/src/main/java/org/apache/jena/propertytable/lang/ReaderRIOTLangCSV.java
new file mode 100644
index 0000000..413b9f9
--- /dev/null
+++ b/jena-csv/src/main/java/org/apache/jena/propertytable/lang/ReaderRIOTLangCSV.java
@@ -0,0 +1,77 @@
+/**
+ * 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.propertytable.lang;
+
+import static org.apache.jena.riot.RDFLanguages.CSV ;
+
+import java.io.InputStream ;
+import java.io.Reader ;
+
+import org.apache.jena.atlas.web.ContentType ;
+import org.apache.jena.riot.Lang ;
+import org.apache.jena.riot.ReaderRIOT ;
+import org.apache.jena.riot.lang.LangRIOT ;
+import org.apache.jena.riot.system.ErrorHandler ;
+import org.apache.jena.riot.system.ErrorHandlerFactory ;
+import org.apache.jena.riot.system.ParserProfile ;
+import org.apache.jena.riot.system.StreamRDF ;
+
+import com.hp.hpl.jena.sparql.util.Context ;
+
+class ReaderRIOTLangCSV implements ReaderRIOT
+{
+ private final Lang lang ;
+ private ErrorHandler errorHandler ;
+ private ParserProfile parserProfile = null ;
+
+ ReaderRIOTLangCSV(Lang lang) {
+ this.lang = lang ;
+ errorHandler = ErrorHandlerFactory.getDefaultErrorHandler() ;
+ }
+
+ @Override
+ public void read(InputStream in, String baseURI, ContentType ct, StreamRDF output, Context context) {
+ if ( lang != CSV)
+ throw new IllegalArgumentException("The Lang must be 'CSV'!");
+ LangRIOT parser = new LangCSV (in, baseURI, baseURI, ErrorHandlerFactory.getDefaultErrorHandler(), output);
+ if ( parserProfile != null )
+ parser.setProfile(parserProfile);
+ if ( errorHandler != null )
+ parser.getProfile().setHandler(errorHandler) ;
+ parser.parse() ;
+ }
+
+ @Override
+ public void read(Reader in, String baseURI, ContentType ct, StreamRDF output, Context context) {
+ if ( lang != CSV)
+ throw new IllegalArgumentException("The Lang must be 'CSV'!");
+ LangRIOT parser = new LangCSV (in, baseURI, baseURI, ErrorHandlerFactory.getDefaultErrorHandler(), output);
+ if ( parserProfile != null )
+ parser.setProfile(parserProfile);
+ if ( errorHandler != null )
+ parser.getProfile().setHandler(errorHandler) ;
+ parser.parse() ;
+ }
+
+ @Override public ErrorHandler getErrorHandler() { return errorHandler ; }
+ @Override public void setErrorHandler(ErrorHandler errorHandler) { this.errorHandler = errorHandler ; }
+
+ @Override public ParserProfile getParserProfile() { return parserProfile ; }
+ @Override public void setParserProfile(ParserProfile parserProfile) { this.parserProfile = parserProfile ; }
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/b6af5326/jena-csv/src/main/java/riotcmd/LocatorOupputFile.java
----------------------------------------------------------------------
diff --git a/jena-csv/src/main/java/riotcmd/LocatorOupputFile.java b/jena-csv/src/main/java/riotcmd/LocatorOupputFile.java
deleted file mode 100644
index 14caeeb..0000000
--- a/jena-csv/src/main/java/riotcmd/LocatorOupputFile.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * 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 riotcmd;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.security.AccessControlException;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.hp.hpl.jena.util.FileManager;
-import com.hp.hpl.jena.util.FileUtils;
-import com.hp.hpl.jena.util.LocatorFile;
-
-class LocatorOupputFile {
- static Logger log = LoggerFactory.getLogger(LocatorOupputFile.class) ;
- private String thisDir = null ;
- private String thisDirLogStr = "" ;
-
- public LocatorOupputFile(String dir)
- {
- if ( dir != null )
- {
- if ( dir.endsWith("/") || dir.endsWith(java.io.File.separator) )
- dir = dir.substring(0,dir.length()-1) ;
- thisDirLogStr = " ["+dir+"]" ;
- }
- thisDir = dir ;
- }
-
- LocatorOupputFile()
- {
- this(null) ;
- }
-
- @Override
- public boolean equals( Object other )
- {
- return
- other instanceof LocatorFile
- && equals( thisDir, ((LocatorOupputFile) other).thisDir );
- }
-
- private boolean equals( String a, String b )
- {
- return a == null ? b == null : a.equals( b );
- }
-
- @Override
- public int hashCode()
- {
- if ( thisDir == null )
- return 157 ;
- return thisDir.hashCode();
- }
-
- private File toFile(String filenameOrURI)
- {
- String fn = FileUtils.toFilename(filenameOrURI) ;
- if ( fn == null )
- return null ;
-
- if ( thisDir != null && ! fn.startsWith("/") && ! fn.startsWith(FileManager.filePathSeparator) )
- fn = thisDir+java.io.File.separator+fn ;
-
- return new File(fn) ;
- }
-
-
- public boolean exists(String filenameOrURI)
- {
- File f = toFile(filenameOrURI) ;
-
- if ( f == null )
- return false ;
-
- return f.exists() ;
- }
-
-
- public OutputStream open(String filenameOrURI)
- {
- // Worry about %20.
- // toFile calls FileUtils.toFilename(filenameOrURI) ;
- File f = toFile(filenameOrURI) ;
-
- try {
- if ( f == null )
- {
- if ( log.isTraceEnabled())
- log.trace("Not found: "+filenameOrURI+thisDirLogStr) ;
- return null ;
- }
- } catch (AccessControlException e) {
- log.warn("Security problem testing for file", e);
- return null;
- }
-
- try {
- OutputStream out = new FileOutputStream(f) ;
-
- if ( log.isTraceEnabled() )
- log.trace("Found: "+filenameOrURI+thisDirLogStr) ;
-
-
- // Create base -- Java 1.4-isms
- //base = f.toURI().toURL().toExternalForm() ;
- //base = base.replaceFirst("^file:/([^/])", "file:///$1") ;
- return out ;
- } catch (IOException ioEx)
- {
- // Includes FileNotFoundException
- // We already tested whether the file exists or not.
- // log.warn("File unreadable (but exists): "+f.getPath()+" Exception: "+ioEx.getMessage()) ;
- return null ;
- }
- }
-
- public String getDir() { return thisDir ; }
-
-
- public String getName()
- {
- String tmp = "LocatorFile" ;
- if ( thisDir != null )
- tmp = tmp+"("+thisDir+")" ;
- return tmp ;
- }
-}
http://git-wip-us.apache.org/repos/asf/jena/blob/b6af5326/jena-csv/src/main/java/riotcmd/ModDest.java
----------------------------------------------------------------------
diff --git a/jena-csv/src/main/java/riotcmd/ModDest.java b/jena-csv/src/main/java/riotcmd/ModDest.java
deleted file mode 100644
index e5560f0..0000000
--- a/jena-csv/src/main/java/riotcmd/ModDest.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * 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 riotcmd;
-
-import arq.cmd.CmdException;
-import arq.cmdline.ArgDecl;
-import arq.cmdline.ArgModuleGeneral;
-import arq.cmdline.CmdArgModule;
-import arq.cmdline.CmdGeneral;
-
-class ModDest implements ArgModuleGeneral{
-
- private ArgDecl argDest = new ArgDecl(ArgDecl.HasValue, "dest") ;
- private String dest = null ;
-
- @Override
- public void processArgs(CmdArgModule cmdLine) {
- if ( cmdLine.contains(argDest) ) {
- dest = cmdLine.getValue(argDest) ;
- } else {
- throw new CmdException("No destination output file! Please add '--dest=file' in the program arguements") ;
- }
- }
-
- @Override
- public void registerWith(CmdGeneral cmdLine) {
- cmdLine.getUsage().startCategory("Destination Output") ;
- cmdLine.add(argDest, "--dest=file", "The destination output file") ;
- }
-
- public String getDest() {
- return dest ;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jena/blob/b6af5326/jena-csv/src/main/java/riotcmd/csv2rdf.java
----------------------------------------------------------------------
diff --git a/jena-csv/src/main/java/riotcmd/csv2rdf.java b/jena-csv/src/main/java/riotcmd/csv2rdf.java
deleted file mode 100644
index 882a29a..0000000
--- a/jena-csv/src/main/java/riotcmd/csv2rdf.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- * 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 riotcmd;
-
-import java.io.OutputStream;
-
-import org.apache.jena.atlas.io.IO;
-import org.apache.jena.atlas.web.ContentType;
-import org.apache.jena.atlas.web.TypedInputStream;
-import org.apache.jena.riot.Lang;
-import org.apache.jena.riot.RDFDataMgr;
-import org.apache.jena.riot.RDFLanguages;
-import org.apache.jena.riot.ReaderRIOT;
-import org.apache.jena.riot.RiotException;
-import org.apache.jena.riot.SysRIOT;
-import org.apache.jena.riot.lang.LabelToNode;
-import org.apache.jena.riot.lang.StreamRDFCounting;
-import org.apache.jena.riot.out.NodeToLabel;
-import org.apache.jena.riot.process.inf.InfFactory;
-import org.apache.jena.riot.system.ErrorHandler;
-import org.apache.jena.riot.system.ErrorHandlerFactory;
-import org.apache.jena.riot.system.RiotLib;
-import org.apache.jena.riot.system.StreamRDF;
-import org.apache.jena.riot.system.StreamRDF2;
-import org.apache.jena.riot.system.StreamRDFLib;
-import org.apache.jena.riot.system.SyntaxLabels;
-
-import arq.cmd.CmdException;
-
-import com.hp.hpl.jena.sparql.util.Utils;
-
-/**
- * It's a command line tool for direct and scalable transforming from CSV to the formatted RDF syntax (i.e. N-Triples),
- * with no intermediary Graph or PropertyTable.
- *
- * It reuses the parsing functions from CmdLangParse and sinks the triples into the destination output file.
- *
- */
-public class csv2rdf extends CmdLangParse{
-
- protected ModDest modDest = new ModDest() ;
- protected OutputStream destOut;
-
- public static void main(String... argv)
- {
- new csv2rdf(argv).mainRun() ;
- }
-
- protected csv2rdf(String[] argv)
- {
- super(argv) ;
- super.addModule(modDest) ;
-
- }
-
- @Override
- protected Lang selectLang(String filename, ContentType contentType,
- Lang dftLang) {
- return RDFLanguages.CSV;
- }
-
- @Override
- protected String getCommandName() {
- return Utils.classShortName(csv2rdf.class) ;
- }
-
- @Override
- protected String getSummary()
- {
- return getCommandName()+" --dest=outputFile inputFile ..." ;
- }
-
- // override the original CmdLangParse.parseRIOT()
- protected void parseRIOT(String baseURI, String filename, TypedInputStream in)
- {
-
- String dest = modDest.getDest();
- LocatorOupputFile l = new LocatorOupputFile();
- destOut = l.open(dest);
-
- if (destOut == null){
- System.err.println("Can't write to destination output file: '"+dest+"' ") ;
- return ;
- }
-
- // I ti s shame we effectively duplicate deciding thelnaguage but we want to control the
- // pasrer at a deep level (in validation, we want line numbers get into error message)
- // This code predates RDFDataMgr.
-
- ContentType ct = in.getMediaType() ;
-
- baseURI = SysRIOT.chooseBaseIRI(baseURI, filename) ;
-
- boolean checking = true ;
- if ( modLangParse.explicitChecking() ) checking = true ;
- if ( modLangParse.explicitNoChecking() ) checking = false ;
-
- ErrorHandler errHandler = null ;
- if ( checking )
- {
- if ( modLangParse.stopOnBadTerm() )
- errHandler = ErrorHandlerFactory.errorHandlerStd ;
- else
- // Try to go on if possible. This is the default behaviour.
- errHandler = ErrorHandlerFactory.errorHandlerWarn ;
- }
-
- if ( modLangParse.skipOnBadTerm() )
- {
- // TODO skipOnBadterm
- }
-
- Lang lang = selectLang(filename, ct, RDFLanguages.NQUADS) ;
- LangHandler handler = dispatch.get(lang) ;
- if ( handler == null )
- throw new CmdException("Undefined language: "+lang) ;
-
- // If multiple files, choose the overall labels.
- if ( langHandlerOverall == null )
- langHandlerOverall = handler ;
- else
- {
- if ( langHandlerOverall != langHandlerAny )
- {
- if ( langHandlerOverall != handler )
- langHandlerOverall = langHandlerAny ;
- }
- }
-
- // Make a flag.
- // Input and output subflags.
- // If input is "label, then output using NodeToLabel.createBNodeByLabelRaw() ;
- // else use NodeToLabel.createBNodeByLabel() ;
- // Also, as URI.
- final boolean labelsAsGiven = false ;
-
- NodeToLabel labels = SyntaxLabels.createNodeToLabel() ;
- if ( labelsAsGiven )
- labels = NodeToLabel.createBNodeByLabelEncoded() ;
-
- StreamRDF s = StreamRDFLib.sinkNull() ;
- if ( ! modLangParse.toBitBucket() )
- s = StreamRDFLib.writer(output) ;
-
- // add dest output
- if ( destOut != null)
- s = new StreamRDF2(s, StreamRDFLib.writer(destOut));
-
- if ( setup != null )
- s = InfFactory.inf(s, setup) ;
-
- StreamRDFCounting sink = StreamRDFLib.count(s) ;
- s = null ;
-
- ReaderRIOT reader = RDFDataMgr.createReader(lang) ;
- try {
- if ( checking ) {
- if ( lang == RDFLanguages.NTRIPLES || lang == RDFLanguages.NQUADS )
- reader.setParserProfile(RiotLib.profile(baseURI, false, true, errHandler)) ;
- else
- reader.setParserProfile(RiotLib.profile(baseURI, true, true, errHandler)) ;
- } else
- reader.setParserProfile(RiotLib.profile(baseURI, false, false, errHandler)) ;
-
- if ( labelsAsGiven )
- reader.getParserProfile().setLabelToNode(LabelToNode.createUseLabelAsGiven()) ;
- modTime.startTimer() ;
- reader.read(in, baseURI, ct, sink, null) ;
- } catch (RiotException ex) {
- // Should have handled the exception and logged a message by now.
- // System.err.println("++++"+ex.getMessage());
-
- if ( modLangParse.stopOnBadTerm() )
- return ;
- } finally {
- // Not close - we may write again to the underlying output stream in another call to parse a file.
- sink.finish() ;
- IO.close(in) ;
- }
- long x = modTime.endTimer() ;
- long n = sink.countTriples()+sink.countQuads() ;
-
- if ( modTime.timingEnabled() )
- output(filename, n, x, handler) ;
-
- totalMillis += x ;
- totalTuples += n ;
- }
-}
http://git-wip-us.apache.org/repos/asf/jena/blob/b6af5326/jena-csv/src/main/java/riotcmdx/csv2rdf.java
----------------------------------------------------------------------
diff --git a/jena-csv/src/main/java/riotcmdx/csv2rdf.java b/jena-csv/src/main/java/riotcmdx/csv2rdf.java
new file mode 100644
index 0000000..7bd1a87
--- /dev/null
+++ b/jena-csv/src/main/java/riotcmdx/csv2rdf.java
@@ -0,0 +1,53 @@
+/*
+ * 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 riotcmdx;
+
+import org.apache.jena.atlas.web.ContentType ;
+import org.apache.jena.riot.Lang ;
+import org.apache.jena.riot.RDFLanguages ;
+import riotcmd.CmdLangParse ;
+
+import com.hp.hpl.jena.sparql.util.Utils ;
+
+/**
+ * A command line tool for direct and scalable transforming from CSV to the formatted RDF syntax (i.e. N-Triples),
+ * with no intermediary Graph or PropertyTable.
+ */
+public class csv2rdf extends CmdLangParse{
+
+ public static void main(String... argv)
+ {
+ new csv2rdf(argv).mainRun() ;
+ }
+
+ protected csv2rdf(String[] argv)
+ {
+ super(argv) ;
+ }
+
+ @Override
+ protected Lang selectLang(String filename, ContentType contentType, Lang dftLang) {
+ return RDFLanguages.CSV;
+ }
+
+ @Override
+ protected String getCommandName() {
+ return Utils.classShortName(csv2rdf.class) ;
+ }
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/b6af5326/jena-csv/src/test/java/org/apache/jena/propertytable/graph/GraphCSVTest.java
----------------------------------------------------------------------
diff --git a/jena-csv/src/test/java/org/apache/jena/propertytable/graph/GraphCSVTest.java b/jena-csv/src/test/java/org/apache/jena/propertytable/graph/GraphCSVTest.java
index 3d23f86..2915ac9 100644
--- a/jena-csv/src/test/java/org/apache/jena/propertytable/graph/GraphCSVTest.java
+++ b/jena-csv/src/test/java/org/apache/jena/propertytable/graph/GraphCSVTest.java
@@ -18,23 +18,17 @@
package org.apache.jena.propertytable.graph;
-import org.apache.jena.propertytable.graph.GraphCSV;
-import org.apache.jena.propertytable.lang.LangCSV;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.apache.jena.atlas.lib.StrUtils ;
+import org.apache.jena.propertytable.lang.CSV2RDF ;
+import org.junit.Assert ;
+import org.junit.BeforeClass ;
+import org.junit.Test ;
-import com.hp.hpl.jena.query.ARQ;
-import com.hp.hpl.jena.query.Query;
-import com.hp.hpl.jena.query.QueryExecution;
-import com.hp.hpl.jena.query.QueryExecutionFactory;
-import com.hp.hpl.jena.query.QueryFactory;
-import com.hp.hpl.jena.query.QuerySolution;
-import com.hp.hpl.jena.query.ResultSet;
-import com.hp.hpl.jena.rdf.model.Model;
-import com.hp.hpl.jena.rdf.model.ModelFactory;
-import com.hp.hpl.jena.sparql.engine.main.StageBuilder;
-import com.hp.hpl.jena.sparql.engine.main.StageGenerator;
+import com.hp.hpl.jena.query.* ;
+import com.hp.hpl.jena.rdf.model.Model ;
+import com.hp.hpl.jena.rdf.model.ModelFactory ;
+import com.hp.hpl.jena.sparql.engine.main.StageBuilder ;
+import com.hp.hpl.jena.sparql.engine.main.StageGenerator ;
/**
* Tests related to GraphCSV with some real world data.
@@ -44,7 +38,7 @@ public class GraphCSVTest extends Assert {
@BeforeClass
public static void init(){
- LangCSV.register();
+ CSV2RDF.init() ;
}
@Test
@@ -90,8 +84,17 @@ public class GraphCSVTest extends Assert {
Model csv = ModelFactory.createModelForGraph(new GraphCSV(file));
assertEquals(72, csv.size());
- Query query = QueryFactory
- .create("PREFIX : <src/test/resources/HEFCE_organogram_senior_data_31032011.csv#> SELECT ?name ?unit {?x :Name ?name ; :Unit ?unit ; :Actual%20Pay%20Floor%20%28%A3%29 ?floor ; :Actual%20Pay%20Ceiling%20%28%A3%29 ?ceiling . FILTER(?floor > 100000 && ?ceiling <120000 )}");
+ String x = StrUtils.strjoinNL
+ ("PREFIX : <src/test/resources/HEFCE_organogram_senior_data_31032011.csv#>"
+ ,"SELECT ?name ?unit"
+ ,"{ ?x :Name ?name ;"
+ ," :Unit ?unit ;"
+ ," :Actual%20Pay%20Floor%20%28%A3%29 ?floor ;"
+ ," :Actual%20Pay%20Ceiling%20%28%A3%29 ?ceiling ."
+ ,"FILTER(?floor > 100000 && ?ceiling <120000 )"
+ ,"}");
+
+ Query query = QueryFactory.create(x) ;
QueryExecution qexec = QueryExecutionFactory.create(query, csv);
ResultSet results = qexec.execSelect();
http://git-wip-us.apache.org/repos/asf/jena/blob/b6af5326/jena-csv/src/test/java/org/apache/jena/propertytable/impl/AbstractPropertyTableBuilderTest.java
----------------------------------------------------------------------
diff --git a/jena-csv/src/test/java/org/apache/jena/propertytable/impl/AbstractPropertyTableBuilderTest.java b/jena-csv/src/test/java/org/apache/jena/propertytable/impl/AbstractPropertyTableBuilderTest.java
index f7a1e02..a9f5ba0 100644
--- a/jena-csv/src/test/java/org/apache/jena/propertytable/impl/AbstractPropertyTableBuilderTest.java
+++ b/jena-csv/src/test/java/org/apache/jena/propertytable/impl/AbstractPropertyTableBuilderTest.java
@@ -18,18 +18,16 @@
package org.apache.jena.propertytable.impl;
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
+import java.io.StringReader ;
-import org.apache.jena.atlas.csv.CSVTokenIterator;
-import org.apache.jena.propertytable.BaseTest;
-import org.apache.jena.propertytable.Row;
-import org.junit.Assert;
-import org.junit.Test;
+import org.apache.jena.atlas.csv.CSVParser ;
+import org.apache.jena.propertytable.BaseTest ;
+import org.apache.jena.propertytable.Row ;
+import org.junit.Assert ;
+import org.junit.Test ;
-import com.hp.hpl.jena.graph.Node;
-import com.hp.hpl.jena.graph.NodeFactory;
+import com.hp.hpl.jena.graph.Node ;
+import com.hp.hpl.jena.graph.NodeFactory ;
/**
@@ -40,7 +38,7 @@ public abstract class AbstractPropertyTableBuilderTest extends BaseTest {
@Test
public void testFillPropertyTable() {
- CSVTokenIterator iterator = csv("a,b\nc,d\ne,f");
+ CSVParser iterator = csv("a,b\nc,d\ne,f");
PropertyTableBuilder.fillPropertyTable(table, iterator, csvFilePath);
Assert.assertEquals(3, table.getColumns().size());
@@ -59,7 +57,7 @@ public abstract class AbstractPropertyTableBuilderTest extends BaseTest {
@Test
public void testIrregularTable1() {
- CSVTokenIterator iterator = csv("a,b\nc\ne,f");
+ CSVParser iterator = csv("a,b\nc\ne,f");
PropertyTableBuilder.fillPropertyTable(table, iterator, csvFilePath);
Assert.assertEquals(3, table.getColumns().size());
@@ -77,7 +75,7 @@ public abstract class AbstractPropertyTableBuilderTest extends BaseTest {
@Test
public void testIrregularTable2() {
- CSVTokenIterator iterator = csv("a,b\nc,d1,d2\ne,f");
+ CSVParser iterator = csv("a,b\nc,d1,d2\ne,f");
PropertyTableBuilder.fillPropertyTable(table, iterator, csvFilePath);
Assert.assertEquals(3, table.getColumns().size());
@@ -95,7 +93,7 @@ public abstract class AbstractPropertyTableBuilderTest extends BaseTest {
@Test
public void testIrregularTable3() {
- CSVTokenIterator iterator = csv("a,b\n,d\ne,f");
+ CSVParser iterator = csv("a,b\n,d\ne,f");
PropertyTableBuilder.fillPropertyTable(table, iterator, csvFilePath);
Assert.assertEquals(3, table.getColumns().size());
@@ -135,13 +133,7 @@ public abstract class AbstractPropertyTableBuilderTest extends BaseTest {
Assert.assertTrue(collectionContains(table.getColumns(), columnKey));
}
- private CSVTokenIterator csv(String input) {
- try {
- InputStream in = new ByteArrayInputStream(input.getBytes("UTF-8"));
- CSVTokenIterator iterator = new CSVTokenIterator(in);
- return iterator;
- } catch (UnsupportedEncodingException e) {
- throw new RuntimeException(e);
- }
+ private CSVParser csv(String input) {
+ return CSVParser.create(new StringReader(input));
}
}
http://git-wip-us.apache.org/repos/asf/jena/blob/b6af5326/jena-csv/src/test/java/org/apache/jena/propertytable/lang/TestLangCSV.java
----------------------------------------------------------------------
diff --git a/jena-csv/src/test/java/org/apache/jena/propertytable/lang/TestLangCSV.java b/jena-csv/src/test/java/org/apache/jena/propertytable/lang/TestLangCSV.java
index 697ba27..581160b 100644
--- a/jena-csv/src/test/java/org/apache/jena/propertytable/lang/TestLangCSV.java
+++ b/jena-csv/src/test/java/org/apache/jena/propertytable/lang/TestLangCSV.java
@@ -44,7 +44,7 @@ public class TestLangCSV extends BaseTest {
@BeforeClass
public static void init(){
- LangCSV.register();
+ CSV2RDF.init() ;
}
@Test
http://git-wip-us.apache.org/repos/asf/jena/blob/b6af5326/jena-csv/src/test/resources/HEFCE_organogram_senior_data_31032011.csv
----------------------------------------------------------------------
diff --git a/jena-csv/src/test/resources/HEFCE_organogram_senior_data_31032011.csv b/jena-csv/src/test/resources/HEFCE_organogram_senior_data_31032011.csv
index 77df38f..f881ac1e 100644
--- a/jena-csv/src/test/resources/HEFCE_organogram_senior_data_31032011.csv
+++ b/jena-csv/src/test/resources/HEFCE_organogram_senior_data_31032011.csv
@@ -1,5 +1,5 @@
Post Unique Reference,Name,Grade,Job Title,Job/Team Function,Parent Department,Organisation,Unit,Contact Phone,Contact E-mail,Reports to Senior Post,Salary Cost of Reports (£),FTE,Actual Pay Floor (£),Actual Pay Ceiling (£),,Profession,Notes,Valid?
90115,Steve Egan,SCS1A,Deputy Chief Executive,Finance and Corporate Resources,Department for Business Innovation and Skills,Higher Education Funding Council for England,Finance and Corporate Resources,0117 931 7408,s.egan@hefce.ac.uk,90334,5883433,1,120000,124999,,Finance,,1
-90250,David Sweeney,SCS1A,Director,"Research, Innovation and Skills",Department for Business Innovation and Skills,Higher Education Funding Council for England,"Research, Innovation and Skills",0117 931 7304,d.sweeeney@hefce.ac.uk,90334,1207171,1,110000,114999,,Policy,,1
+90250,David Sweeney,SCS1A,Director,"ResearchX Innovation and Skills",Department for Business Innovation and Skills,Higher Education Funding Council for England,"Research, Innovation and Skills",0117 931 7304,d.sweeeney@hefce.ac.uk,90334,1207171,1,110000,114999,,Policy,,1
90284,Heather Fry,SCS1A,Director,Education and Participation,Department for Business Innovation and Skills,Higher Education Funding Council for England,Education and Participation,0117 931 7280,h.fry@hefce.ac.uk,90334,1645195,1,100000,104999,,Policy,,1
90334,Sir Alan Langlands,SCS4,Chief Executive,Chief Executive,Department for Business Innovation and Skills,Higher Education Funding Council for England,HEFCE,0117 931 7300/7341,a.langlands@hefce.ac.uk,xx,0,1,230000,234999,,Policy,,1
[4/4] git commit: Revert chnage made while investigating intregation.
Posted by an...@apache.org.
Revert chnage made while investigating intregation.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/468538e1
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/468538e1
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/468538e1
Branch: refs/heads/jena-csv
Commit: 468538e1b2c4c2d6e43dbae0e1916ed79c3a173f
Parents: 56d37bd
Author: Andy Seaborne <an...@seaborne.org>
Authored: Sat Oct 4 15:28:42 2014 +0100
Committer: Andy Seaborne <an...@seaborne.org>
Committed: Sat Oct 4 15:28:42 2014 +0100
----------------------------------------------------------------------
.../src/test/resources/HEFCE_organogram_senior_data_31032011.csv | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/468538e1/jena-csv/src/test/resources/HEFCE_organogram_senior_data_31032011.csv
----------------------------------------------------------------------
diff --git a/jena-csv/src/test/resources/HEFCE_organogram_senior_data_31032011.csv b/jena-csv/src/test/resources/HEFCE_organogram_senior_data_31032011.csv
index f881ac1e..77df38f 100644
--- a/jena-csv/src/test/resources/HEFCE_organogram_senior_data_31032011.csv
+++ b/jena-csv/src/test/resources/HEFCE_organogram_senior_data_31032011.csv
@@ -1,5 +1,5 @@
Post Unique Reference,Name,Grade,Job Title,Job/Team Function,Parent Department,Organisation,Unit,Contact Phone,Contact E-mail,Reports to Senior Post,Salary Cost of Reports (£),FTE,Actual Pay Floor (£),Actual Pay Ceiling (£),,Profession,Notes,Valid?
90115,Steve Egan,SCS1A,Deputy Chief Executive,Finance and Corporate Resources,Department for Business Innovation and Skills,Higher Education Funding Council for England,Finance and Corporate Resources,0117 931 7408,s.egan@hefce.ac.uk,90334,5883433,1,120000,124999,,Finance,,1
-90250,David Sweeney,SCS1A,Director,"ResearchX Innovation and Skills",Department for Business Innovation and Skills,Higher Education Funding Council for England,"Research, Innovation and Skills",0117 931 7304,d.sweeeney@hefce.ac.uk,90334,1207171,1,110000,114999,,Policy,,1
+90250,David Sweeney,SCS1A,Director,"Research, Innovation and Skills",Department for Business Innovation and Skills,Higher Education Funding Council for England,"Research, Innovation and Skills",0117 931 7304,d.sweeeney@hefce.ac.uk,90334,1207171,1,110000,114999,,Policy,,1
90284,Heather Fry,SCS1A,Director,Education and Participation,Department for Business Innovation and Skills,Higher Education Funding Council for England,Education and Participation,0117 931 7280,h.fry@hefce.ac.uk,90334,1645195,1,100000,104999,,Policy,,1
90334,Sir Alan Langlands,SCS4,Chief Executive,Chief Executive,Department for Business Innovation and Skills,Higher Education Funding Council for England,HEFCE,0117 931 7300/7341,a.langlands@hefce.ac.uk,xx,0,1,230000,234999,,Policy,,1