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/08/31 11:34:41 UTC
svn commit: r1621573 [5/5] - in /jena/trunk/jena-arq: ./
src/main/java/org/apache/jena/riot/
src/main/java/org/apache/jena/riot/resultset/
src/main/java/org/apache/jena/riot/system/
src/main/java/org/apache/jena/riot/thrift/ src/main/java/org/apache/je...
Added: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/thrift/wire/RDF_VarTuple.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/thrift/wire/RDF_VarTuple.java?rev=1621573&view=auto
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/thrift/wire/RDF_VarTuple.java (added)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/thrift/wire/RDF_VarTuple.java Sun Aug 31 09:34:40 2014
@@ -0,0 +1,441 @@
+/**
+ * Autogenerated by Thrift Compiler (0.9.0)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ * @generated
+ */
+package org.apache.jena.riot.thrift.wire;
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+@SuppressWarnings("all")
+public class RDF_VarTuple implements org.apache.thrift.TBase<RDF_VarTuple, RDF_VarTuple._Fields>, java.io.Serializable, Cloneable {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("RDF_VarTuple");
+
+ private static final org.apache.thrift.protocol.TField VARS_FIELD_DESC = new org.apache.thrift.protocol.TField("vars", org.apache.thrift.protocol.TType.LIST, (short)1);
+
+ private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+ static {
+ schemes.put(StandardScheme.class, new RDF_VarTupleStandardSchemeFactory());
+ schemes.put(TupleScheme.class, new RDF_VarTupleTupleSchemeFactory());
+ }
+
+ public List<RDF_VAR> vars; // required
+
+ /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+ public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+ VARS((short)1, "vars");
+
+ private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+ static {
+ for (_Fields field : EnumSet.allOf(_Fields.class)) {
+ byName.put(field.getFieldName(), field);
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, or null if its not found.
+ */
+ public static _Fields findByThriftId(int fieldId) {
+ switch(fieldId) {
+ case 1: // VARS
+ return VARS;
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, throwing an exception
+ * if it is not found.
+ */
+ public static _Fields findByThriftIdOrThrow(int fieldId) {
+ _Fields fields = findByThriftId(fieldId);
+ if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+ return fields;
+ }
+
+ /**
+ * Find the _Fields constant that matches name, or null if its not found.
+ */
+ public static _Fields findByName(String name) {
+ return byName.get(name);
+ }
+
+ private final short _thriftId;
+ private final String _fieldName;
+
+ _Fields(short thriftId, String fieldName) {
+ _thriftId = thriftId;
+ _fieldName = fieldName;
+ }
+
+ public short getThriftFieldId() {
+ return _thriftId;
+ }
+
+ public String getFieldName() {
+ return _fieldName;
+ }
+ }
+
+ // isset id assignments
+ public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+ static {
+ Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+ tmpMap.put(_Fields.VARS, new org.apache.thrift.meta_data.FieldMetaData("vars", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST,
+ new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, RDF_VAR.class))));
+ metaDataMap = Collections.unmodifiableMap(tmpMap);
+ org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(RDF_VarTuple.class, metaDataMap);
+ }
+
+ public RDF_VarTuple() {
+ }
+
+ public RDF_VarTuple(
+ List<RDF_VAR> vars)
+ {
+ this();
+ this.vars = vars;
+ }
+
+ /**
+ * Performs a deep copy on <i>other</i>.
+ */
+ public RDF_VarTuple(RDF_VarTuple other) {
+ if (other.isSetVars()) {
+ List<RDF_VAR> __this__vars = new ArrayList<RDF_VAR>();
+ for (RDF_VAR other_element : other.vars) {
+ __this__vars.add(new RDF_VAR(other_element));
+ }
+ this.vars = __this__vars;
+ }
+ }
+
+ public RDF_VarTuple deepCopy() {
+ return new RDF_VarTuple(this);
+ }
+
+ @Override
+ public void clear() {
+ this.vars = null;
+ }
+
+ public int getVarsSize() {
+ return (this.vars == null) ? 0 : this.vars.size();
+ }
+
+ public java.util.Iterator<RDF_VAR> getVarsIterator() {
+ return (this.vars == null) ? null : this.vars.iterator();
+ }
+
+ public void addToVars(RDF_VAR elem) {
+ if (this.vars == null) {
+ this.vars = new ArrayList<RDF_VAR>();
+ }
+ this.vars.add(elem);
+ }
+
+ public List<RDF_VAR> getVars() {
+ return this.vars;
+ }
+
+ public RDF_VarTuple setVars(List<RDF_VAR> vars) {
+ this.vars = vars;
+ return this;
+ }
+
+ public void unsetVars() {
+ this.vars = null;
+ }
+
+ /** Returns true if field vars is set (has been assigned a value) and false otherwise */
+ public boolean isSetVars() {
+ return this.vars != null;
+ }
+
+ public void setVarsIsSet(boolean value) {
+ if (!value) {
+ this.vars = null;
+ }
+ }
+
+ public void setFieldValue(_Fields field, Object value) {
+ switch (field) {
+ case VARS:
+ if (value == null) {
+ unsetVars();
+ } else {
+ setVars((List<RDF_VAR>)value);
+ }
+ break;
+
+ }
+ }
+
+ public Object getFieldValue(_Fields field) {
+ switch (field) {
+ case VARS:
+ return getVars();
+
+ }
+ throw new IllegalStateException();
+ }
+
+ /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+ public boolean isSet(_Fields field) {
+ if (field == null) {
+ throw new IllegalArgumentException();
+ }
+
+ switch (field) {
+ case VARS:
+ return isSetVars();
+ }
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public boolean equals(Object that) {
+ if (that == null)
+ return false;
+ if (that instanceof RDF_VarTuple)
+ return this.equals((RDF_VarTuple)that);
+ return false;
+ }
+
+ public boolean equals(RDF_VarTuple that) {
+ if (that == null)
+ return false;
+
+ boolean this_present_vars = true && this.isSetVars();
+ boolean that_present_vars = true && that.isSetVars();
+ if (this_present_vars || that_present_vars) {
+ if (!(this_present_vars && that_present_vars))
+ return false;
+ if (!this.vars.equals(that.vars))
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ return 0;
+ }
+
+ public int compareTo(RDF_VarTuple other) {
+ if (!getClass().equals(other.getClass())) {
+ return getClass().getName().compareTo(other.getClass().getName());
+ }
+
+ int lastComparison = 0;
+ RDF_VarTuple typedOther = (RDF_VarTuple)other;
+
+ lastComparison = Boolean.valueOf(isSetVars()).compareTo(typedOther.isSetVars());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetVars()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.vars, typedOther.vars);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ return 0;
+ }
+
+ public _Fields fieldForId(int fieldId) {
+ return _Fields.findByThriftId(fieldId);
+ }
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+ schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+ schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder("RDF_VarTuple(");
+ boolean first = true;
+
+ sb.append("vars:");
+ if (this.vars == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.vars);
+ }
+ first = false;
+ sb.append(")");
+ return sb.toString();
+ }
+
+ public void validate() throws org.apache.thrift.TException {
+ // check for required fields
+ // check for sub-struct validity
+ }
+
+ private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+ try {
+ write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+ try {
+ read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private static class RDF_VarTupleStandardSchemeFactory implements SchemeFactory {
+ public RDF_VarTupleStandardScheme getScheme() {
+ return new RDF_VarTupleStandardScheme();
+ }
+ }
+
+ private static class RDF_VarTupleStandardScheme extends StandardScheme<RDF_VarTuple> {
+
+ public void read(org.apache.thrift.protocol.TProtocol iprot, RDF_VarTuple struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TField schemeField;
+ iprot.readStructBegin();
+ while (true)
+ {
+ schemeField = iprot.readFieldBegin();
+ if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
+ break;
+ }
+ switch (schemeField.id) {
+ case 1: // VARS
+ if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+ {
+ org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
+ struct.vars = new ArrayList<RDF_VAR>(_list0.size);
+ for (int _i1 = 0; _i1 < _list0.size; ++_i1)
+ {
+ RDF_VAR _elem2; // required
+ _elem2 = new RDF_VAR();
+ _elem2.read(iprot);
+ struct.vars.add(_elem2);
+ }
+ iprot.readListEnd();
+ }
+ struct.setVarsIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ break;
+ default:
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+ }
+ iprot.readFieldEnd();
+ }
+ iprot.readStructEnd();
+
+ // check for required fields of primitive type, which can't be checked in the validate method
+ struct.validate();
+ }
+
+ public void write(org.apache.thrift.protocol.TProtocol oprot, RDF_VarTuple struct) throws org.apache.thrift.TException {
+ struct.validate();
+
+ oprot.writeStructBegin(STRUCT_DESC);
+ if (struct.vars != null) {
+ oprot.writeFieldBegin(VARS_FIELD_DESC);
+ {
+ oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.vars.size()));
+ for (RDF_VAR _iter3 : struct.vars)
+ {
+ _iter3.write(oprot);
+ }
+ oprot.writeListEnd();
+ }
+ oprot.writeFieldEnd();
+ }
+ oprot.writeFieldStop();
+ oprot.writeStructEnd();
+ }
+
+ }
+
+ private static class RDF_VarTupleTupleSchemeFactory implements SchemeFactory {
+ public RDF_VarTupleTupleScheme getScheme() {
+ return new RDF_VarTupleTupleScheme();
+ }
+ }
+
+ private static class RDF_VarTupleTupleScheme extends TupleScheme<RDF_VarTuple> {
+
+ @Override
+ public void write(org.apache.thrift.protocol.TProtocol prot, RDF_VarTuple struct) throws org.apache.thrift.TException {
+ TTupleProtocol oprot = (TTupleProtocol) prot;
+ BitSet optionals = new BitSet();
+ if (struct.isSetVars()) {
+ optionals.set(0);
+ }
+ oprot.writeBitSet(optionals, 1);
+ if (struct.isSetVars()) {
+ {
+ oprot.writeI32(struct.vars.size());
+ for (RDF_VAR _iter4 : struct.vars)
+ {
+ _iter4.write(oprot);
+ }
+ }
+ }
+ }
+
+ @Override
+ public void read(org.apache.thrift.protocol.TProtocol prot, RDF_VarTuple struct) throws org.apache.thrift.TException {
+ TTupleProtocol iprot = (TTupleProtocol) prot;
+ BitSet incoming = iprot.readBitSet(1);
+ if (incoming.get(0)) {
+ {
+ org.apache.thrift.protocol.TList _list5 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+ struct.vars = new ArrayList<RDF_VAR>(_list5.size);
+ for (int _i6 = 0; _i6 < _list5.size; ++_i6)
+ {
+ RDF_VAR _elem7; // required
+ _elem7 = new RDF_VAR();
+ _elem7.read(iprot);
+ struct.vars.add(_elem7);
+ }
+ }
+ struct.setVarsIsSet(true);
+ }
+ }
+ }
+
+}
+
Propchange: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/thrift/wire/RDF_VarTuple.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: jena/trunk/jena-arq/src/main/java/riotcmd/dumpthrift.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/riotcmd/dumpthrift.java?rev=1621573&view=auto
==============================================================================
--- jena/trunk/jena-arq/src/main/java/riotcmd/dumpthrift.java (added)
+++ jena/trunk/jena-arq/src/main/java/riotcmd/dumpthrift.java Sun Aug 31 09:34:40 2014
@@ -0,0 +1,52 @@
+/**
+ * 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.InputStream ;
+
+import org.apache.jena.atlas.io.IO ;
+import org.apache.jena.atlas.logging.LogCtl ;
+import org.apache.jena.riot.RIOT ;
+import org.apache.jena.riot.thrift.BinRDF ;
+
+import com.hp.hpl.jena.sparql.util.Utils ;
+
+/** Dump an rdf-thrift file to show structure */
+public class dumpthrift {
+ static { LogCtl.setCmdLogging(); }
+
+ public static void main(String[] args) {
+ RIOT.init() ;
+ if ( args.length == 0 ) {
+ args = new String[] {"-"} ;
+ }
+
+ if ( args.length != 1 ) {
+ System.err.println("Usage: "+Utils.classShortName(dumpthrift.class)+" FILE") ;
+ System.exit(2) ;
+ }
+
+ // Leave a general loop ...
+ for ( String fn : args ) {
+ InputStream in = IO.openFile(fn) ;
+ BinRDF.dump(System.out, in) ;
+ }
+ }
+}
+
Propchange: jena/trunk/jena-arq/src/main/java/riotcmd/dumpthrift.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/TC_Riot.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/TC_Riot.java?rev=1621573&r1=1621572&r2=1621573&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/TC_Riot.java (original)
+++ jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/TC_Riot.java Sun Aug 31 09:34:40 2014
@@ -25,6 +25,7 @@ import org.apache.jena.riot.process.TS_P
import org.apache.jena.riot.resultset.TS_ResultSetRIOT ;
import org.apache.jena.riot.stream.TS_IO2 ;
import org.apache.jena.riot.system.TS_RiotSystem ;
+import org.apache.jena.riot.thrift.TS_RDFThrift ;
import org.apache.jena.riot.web.TS_RiotWeb ;
import org.apache.jena.riot.writer.TS_RiotWriter ;
import org.junit.BeforeClass ;
@@ -44,6 +45,7 @@ import org.junit.runners.Suite ;
, TS_RiotSystem.class
, TS_RiotWeb.class
, TS_ResultSetRIOT.class
+ , TS_RDFThrift.class
})
Added: jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/thrift/TS_RDFThrift.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/thrift/TS_RDFThrift.java?rev=1621573&view=auto
==============================================================================
--- jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/thrift/TS_RDFThrift.java (added)
+++ jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/thrift/TS_RDFThrift.java Sun Aug 31 09:34:40 2014
@@ -0,0 +1,38 @@
+/**
+ * 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.riot.thrift;
+
+import org.junit.runner.RunWith ;
+import org.junit.runners.Suite ;
+
+@RunWith(Suite.class)
+@Suite.SuiteClasses( {
+ TestThriftTerm.class
+ , TestThriftSetup.class
+ , TestStreamRDFThrift.class
+ , TestResultSetThrift.class
+ //, TestPatchThrift.class
+
+} )
+
+public class TS_RDFThrift {
+ public static final String TestingDir = "testing/RIOT/RDF-Thrift" ;
+
+}
+
Propchange: jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/thrift/TS_RDFThrift.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestResultSetThrift.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestResultSetThrift.java?rev=1621573&view=auto
==============================================================================
--- jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestResultSetThrift.java (added)
+++ jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestResultSetThrift.java Sun Aug 31 09:34:40 2014
@@ -0,0 +1,129 @@
+/**
+ * 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.riot.thrift;
+
+import java.io.ByteArrayInputStream ;
+import java.io.ByteArrayOutputStream ;
+import java.io.IOException ;
+import java.io.InputStream ;
+
+import org.apache.jena.atlas.io.IO ;
+import org.apache.jena.atlas.junit.BaseTest ;
+import org.apache.jena.atlas.lib.StrUtils ;
+import org.apache.jena.riot.thrift.BinRDF ;
+import org.junit.Test ;
+
+import com.hp.hpl.jena.graph.Node ;
+import com.hp.hpl.jena.query.ResultSet ;
+import com.hp.hpl.jena.query.ResultSetFactory ;
+import com.hp.hpl.jena.query.ResultSetRewindable ;
+import com.hp.hpl.jena.sparql.resultset.ResultSetCompare ;
+import com.hp.hpl.jena.sparql.sse.Item ;
+import com.hp.hpl.jena.sparql.sse.SSE ;
+import com.hp.hpl.jena.sparql.sse.builders.BuilderResultSet ;
+import com.hp.hpl.jena.sparql.util.NodeUtils.EqualityTest ;
+
+public class TestResultSetThrift extends BaseTest {
+ // Only datatypes that transmitted perfectly.
+ static ResultSetRewindable rs0 = make
+ ("(resultset (?x ?y)"
+ , " (row (?x _:a) (?y 3))"
+ , " (row (?x 1) (?y 'a'))"
+ , " (row (?y 'y'))"
+ , " (row (?x _:a))"
+ , " (row)"
+ , " (row (?x 2) (?y 10))"
+ , ")"
+ ) ;
+
+ static ResultSetRewindable rs1 = make
+ ("(resultset (?x ?y)"
+ , " (row (?x 1) (?y 3))"
+ , " (row (?x 1) (?y 'a'))"
+ , ")"
+ ) ;
+ static ResultSetRewindable rs2 = make
+ ("(resultset (?x ?y)"
+ , " (row (?x 1) (?y 'a'))"
+ , " (row (?x 1) (?y 3))"
+ , ")"
+ ) ;
+
+
+ static class EqualityTestExact implements EqualityTest {
+ @Override
+ public boolean equal(Node n1, Node n2) {
+ return n1.equals(n2) ;
+ }
+ }
+ private static EqualityTest exactTest = new EqualityTestExact() ;
+
+ @Test public void resultSet_01() { test(rs0) ; }
+
+ @Test public void resultSet_02() {
+ ResultSetRewindable r1 = test(rs1) ;
+ // not reordered
+ r1.reset();
+ rs2.reset() ;
+ assertFalse(ResultSetCompare.equalsByTermAndOrder(r1, rs2)) ;
+ rs2.reset() ;
+ }
+
+ @Test public void resultSet_03() {
+ ResultSetRewindable r2 = test(rs2) ;
+ // not reordered
+ r2.reset();
+ rs1.reset() ;
+ assertFalse(ResultSetCompare.equalsByTermAndOrder(r2, rs1)) ;
+ rs1.reset() ;
+ }
+
+ private static ResultSetRewindable test(ResultSetRewindable resultSet) {
+ resultSet.reset();
+ ByteArrayOutputStream out = new ByteArrayOutputStream() ;
+ BinRDF.writeResultSet(out, resultSet, true) ;
+ resultSet.reset();
+
+ ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray()) ;
+ ResultSet rs$ = BinRDF.readResultSet(in) ;
+ ResultSetRewindable resultSet2 = ResultSetFactory.makeRewindable(rs$) ;
+ // Includes bnode labels.
+ ResultSetCompare.equalsExact(resultSet, resultSet2) ;
+ resultSet.reset();
+ resultSet2.reset();
+ return resultSet2 ;
+ }
+
+ private static ResultSetRewindable make(String ... strings) {
+ String s = StrUtils.strjoinNL(strings) ;
+ Item item = SSE.parse(s) ;
+ ResultSetRewindable rs = ResultSetFactory.makeRewindable(BuilderResultSet.build(item)) ;
+ return rs ;
+ }
+
+ private static final String DIR = TS_RDFThrift.TestingDir ;
+
+ @Test public void resultSet_10() {
+ try (InputStream in = IO.openFile(DIR+"/results-1.srj")) {
+ ResultSet rs = ResultSetFactory.fromJSON(in) ;
+ test(ResultSetFactory.copyResults(rs)) ;
+ } catch (IOException ex) { IO.exception(ex) ; }
+ }
+}
+
Propchange: jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestResultSetThrift.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestStreamRDFThrift.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestStreamRDFThrift.java?rev=1621573&view=auto
==============================================================================
--- jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestStreamRDFThrift.java (added)
+++ jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestStreamRDFThrift.java Sun Aug 31 09:34:40 2014
@@ -0,0 +1,191 @@
+/**
+ * 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.riot.thrift;
+
+import java.io.ByteArrayInputStream ;
+import java.io.ByteArrayOutputStream ;
+import java.util.Iterator ;
+
+import org.apache.jena.atlas.iterator.Filter ;
+import org.apache.jena.atlas.iterator.Iter ;
+import org.apache.jena.atlas.junit.BaseTest ;
+import org.apache.jena.atlas.lib.StrUtils ;
+import org.apache.jena.riot.Lang ;
+import org.apache.jena.riot.RDFDataMgr ;
+import org.apache.jena.riot.RIOT ;
+import org.apache.jena.riot.system.StreamOps ;
+import org.apache.jena.riot.system.StreamRDF ;
+import org.apache.jena.riot.system.StreamRDFLib ;
+import org.apache.jena.riot.system.StreamRDFWriter ;
+import org.junit.BeforeClass ;
+import org.junit.Test ;
+
+import com.hp.hpl.jena.graph.Graph ;
+import com.hp.hpl.jena.graph.Node ;
+import com.hp.hpl.jena.graph.Triple ;
+import com.hp.hpl.jena.sparql.core.DatasetGraph ;
+import com.hp.hpl.jena.sparql.core.DatasetGraphFactory ;
+import com.hp.hpl.jena.sparql.core.Quad ;
+import com.hp.hpl.jena.sparql.graph.GraphFactory ;
+import com.hp.hpl.jena.sparql.sse.SSE ;
+import com.hp.hpl.jena.sparql.util.IsoMatcher ;
+
+public class TestStreamRDFThrift extends BaseTest {
+
+ private static final String DIR = TS_RDFThrift.TestingDir ;
+
+ @BeforeClass public static void beforeClassInit() { RIOT.init(); }
+
+ static String gs = StrUtils.strjoinNL(
+ "(graph",
+ " (_:a :p 123) ",
+ " (_:a :p 'foo'@en) ",
+ " (_:b :p '456') ", // Presrved values only.
+ " (_:b :p '456.5') ",
+ " (_:b :p '456.5e6') ",
+ ")") ;
+
+ static Graph graph = SSE.parseGraph(gs) ;
+
+ static String dgs = StrUtils.strjoinNL(
+ "(dataset",
+ " (graph (:s1 :p _:a) (:s2 :p _:a))" ,
+ " (graph :g (:s1 :p _:a))" ,
+ " (graph _:a (:s2 :p _:a))" ,
+ ")" ) ;
+
+ static DatasetGraph datasetGraph = SSE.parseDatasetGraph(dgs) ;
+
+ // graph_01 and graph_02 are the same test but use different ways to read/write the graph.
+ // Ditto dataset_01 and dataset_02
+
+ @Test public void graph_01() {
+ ByteArrayOutputStream out = new ByteArrayOutputStream() ;
+ StreamRDF stream = BinRDF.streamToOutputStream(out, true) ; // With values.
+ StreamOps.graphToStream(graph, stream) ;
+
+ byte[] bytes = out.toByteArray() ;
+ ByteArrayInputStream in = new ByteArrayInputStream(bytes) ;
+
+ Graph g2 = GraphFactory.createGraphMem() ;
+ StreamRDF stream2 = StreamRDFLib.graph(g2) ;
+ BinRDF.inputStreamToStream(in, stream2) ;
+
+ //assertTrue(graph.isIsomorphicWith(g2)) ;
+ boolean b = IsoMatcher.isomorphic(graph, g2) ; //****
+ assertTrue(b) ;
+
+ // Stronger - same bNodes.
+ sameTerms(graph, g2) ;
+ }
+
+ @Test public void graph_02() {
+ ByteArrayOutputStream out = new ByteArrayOutputStream() ;
+ StreamRDFWriter.write(out, graph, Lang.THRIFT) ;
+
+ byte[] bytes = out.toByteArray() ;
+ ByteArrayInputStream in = new ByteArrayInputStream(bytes) ;
+
+
+ Graph g2 = GraphFactory.createGraphMem() ;
+ RDFDataMgr.read(g2, in, Lang.THRIFT) ;
+ boolean b = IsoMatcher.isomorphic(graph, g2) ;
+ assertTrue(b) ;
+
+ // Stronger - same bNodes.
+ // ** Java8
+ //graph.find(null, null, null).forEachRemaining(t -> assertTrue(g2.contains(t))) ;
+
+ // Stronger - same bNodes.
+ sameTerms(graph, g2) ;
+ }
+
+ @Test public void dataset_01() {
+ DatasetGraph dsg1 = datasetGraph ;
+ ByteArrayOutputStream out = new ByteArrayOutputStream() ;
+ StreamRDF stream = BinRDF.streamToOutputStream(out) ;
+ StreamOps.datasetToStream(dsg1, stream) ;
+
+ byte[] bytes = out.toByteArray() ;
+ ByteArrayInputStream in = new ByteArrayInputStream(bytes) ;
+ DatasetGraph dsg2 = DatasetGraphFactory.createMem() ;
+ StreamRDF stream2 = StreamRDFLib.dataset(dsg2) ;
+ BinRDF.inputStreamToStream(in, stream2) ;
+
+ boolean b = IsoMatcher.isomorphic(dsg1, dsg2) ;
+ assertTrue(b) ;
+ // Stronger - same bNode and same as in original data.
+ Node obj = Iter.first(dsg1.listGraphNodes(), filterBlankNode) ;
+ termAsObject(dsg1, obj) ;
+ }
+
+ @Test public void dataset_02() {
+ DatasetGraph dsg1 = datasetGraph ;
+ ByteArrayOutputStream out = new ByteArrayOutputStream() ;
+ StreamRDFWriter.write(out, dsg1, Lang.THRIFT) ;
+
+ byte[] bytes = out.toByteArray() ;
+ ByteArrayInputStream in = new ByteArrayInputStream(bytes) ;
+ DatasetGraph dsg2 = DatasetGraphFactory.createMem() ;
+
+ StreamRDF stream2 = StreamRDFLib.dataset(dsg2) ;
+ BinRDF.inputStreamToStream(in, stream2) ;
+
+ boolean b = IsoMatcher.isomorphic(dsg1, dsg2) ;
+ assertTrue(b) ;
+ // Stronger - same bNode and same as in original data.
+ Node obj = Iter.first(dsg1.listGraphNodes(), filterBlankNode) ;
+ termAsObject(dsg1, obj) ;
+ }
+
+ static void sameTerms(Graph g1, Graph g2) {
+ assertEquals(g1.size() , g2.size() ) ;
+ // ** Java8
+ //g1.find(null, null, null).forEachRemaining(t -> assertTrue(g2.contains(t))) ;
+ Iterator<Triple> iter = g1.find(null, null, null) ;
+ while(iter.hasNext()) {
+ Triple t = iter.next() ;
+ g2.contains(t) ;
+ }
+ }
+
+ static void termAsObject(DatasetGraph dsg, Node term) {
+ Iterator<Quad> iter = dsg.find() ;
+ for ( ; iter.hasNext() ; ) {
+ Quad quad = iter.next() ;
+ if ( quad.getObject().equals(term) )
+ return ;
+ }
+ fail("Failed to find "+term) ;
+ }
+
+ static Filter<Node> filterBlankNode = new Filter<Node>() {
+ @Override
+ public boolean accept(Node item) {
+ return item.isBlank() ;
+ }
+ } ;
+
+ // ** Java8
+// public static <T> Stream<T> stream(Iterator<? extends T> iterator) {
+// int characteristics = Spliterator.ORDERED | Spliterator.IMMUTABLE;
+// return StreamSupport.stream(Spliterators.spliteratorUnknownSize(iterator, characteristics), false);
+// }
+}
+
Propchange: jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestStreamRDFThrift.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestThriftSetup.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestThriftSetup.java?rev=1621573&view=auto
==============================================================================
--- jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestThriftSetup.java (added)
+++ jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestThriftSetup.java Sun Aug 31 09:34:40 2014
@@ -0,0 +1,55 @@
+/**
+ * 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.riot.thrift;
+
+import static org.apache.jena.riot.RDFLanguages.THRIFT ;
+import org.apache.jena.atlas.junit.BaseTest ;
+import org.apache.jena.riot.* ;
+import org.junit.BeforeClass ;
+import org.junit.Test ;
+
+public class TestThriftSetup extends BaseTest {
+
+ @BeforeClass public static void beforeClass() { RIOT.init() ; }
+
+ @Test public void setup_01() {
+ assertTrue(RDFLanguages.isRegistered(THRIFT)) ;
+ }
+
+ @Test public void setup_02() {
+ Lang lang = RDFLanguages.filenameToLang("data.rt") ;
+ assertEquals(lang, THRIFT) ;
+ }
+
+ @Test public void setup_03() {
+ assertTrue(RDFParserRegistry.isQuads(THRIFT)) ;
+ assertTrue(RDFParserRegistry.isTriples(THRIFT)) ;
+ assertNotNull(RDFParserRegistry.getFactory(THRIFT)) ;
+ }
+
+ @Test public void setup_04() {
+ assertTrue(RDFWriterRegistry.contains(THRIFT)) ;
+ assertNotNull(RDFWriterRegistry.getWriterDatasetFactory(THRIFT)) ;
+ assertTrue(RDFWriterRegistry.contains(RDFFormat.RDF_THRIFT)) ;
+ assertNotNull(RDFWriterRegistry.getWriterDatasetFactory(RDFFormat.RDF_THRIFT)) ;
+ assertTrue(RDFWriterRegistry.contains(RDFFormat.RDF_THRIFT_VALUES)) ;
+ assertNotNull(RDFWriterRegistry.getWriterDatasetFactory(RDFFormat.RDF_THRIFT_VALUES)) ;
+ }
+}
+
Propchange: jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestThriftSetup.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestThriftTerm.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestThriftTerm.java?rev=1621573&view=auto
==============================================================================
--- jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestThriftTerm.java (added)
+++ jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestThriftTerm.java Sun Aug 31 09:34:40 2014
@@ -0,0 +1,283 @@
+/**
+ * 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.riot.thrift;
+
+import org.apache.jena.atlas.junit.BaseTest ;
+import org.apache.jena.riot.system.PrefixMap ;
+import org.apache.jena.riot.system.PrefixMapFactory ;
+import org.apache.jena.riot.thrift.TRDF ;
+import org.apache.jena.riot.thrift.ThriftConvert ;
+import org.apache.jena.riot.thrift.wire.RDF_BNode ;
+import org.apache.jena.riot.thrift.wire.RDF_IRI ;
+import org.apache.jena.riot.thrift.wire.RDF_Literal ;
+import org.apache.jena.riot.thrift.wire.RDF_Term ;
+import org.junit.Test ;
+
+import com.hp.hpl.jena.graph.Node ;
+import com.hp.hpl.jena.graph.NodeFactory ;
+import com.hp.hpl.jena.rdf.model.AnonId ;
+import com.hp.hpl.jena.sparql.sse.SSE ;
+import com.hp.hpl.jena.vocabulary.RDF ;
+import com.hp.hpl.jena.vocabulary.RDFS ;
+import com.hp.hpl.jena.vocabulary.XSD ;
+
+public class TestThriftTerm extends BaseTest {
+ static PrefixMap prefixMap = PrefixMapFactory.create() ;
+ static {
+ prefixMap.add("rdf", RDF.getURI()) ;
+ prefixMap.add("xsd", XSD.getURI()) ;
+ prefixMap.add("rdfs", RDFS.getURI()) ;
+ prefixMap.add("ex", "http://example.org/") ;
+ prefixMap.add("", "http://example/") ;
+ prefixMap.add("ns", "http://namespace/ns#") ;
+ }
+
+ // Terms
+ @Test public void term_uri_01() {
+ testTerm("<http://hostname/>") ;
+ }
+
+ @Test public void term_uri_02() {
+ RDF_Term rt = testTerm("<http://example/>") ;
+ assertTrue(rt.isSetPrefixName()) ;
+ assertEquals(rt.getPrefixName().prefix, "") ;
+ assertEquals(rt.getPrefixName().localName, "") ;
+ }
+
+ @Test public void term_uri_03() {
+ RDF_Term rt = testTerm("<http://namespace/ns#foobar>") ;
+ assertTrue(rt.isSetPrefixName()) ;
+ assertEquals(rt.getPrefixName().prefix, "ns") ;
+ assertEquals(rt.getPrefixName().localName, "foobar") ;
+ }
+
+ @Test public void term_uri_04() {
+ RDF_Term rt = testTerm("rdf:type") ;
+ assertTrue(rt.isSetPrefixName()) ;
+ assertEquals(rt.getPrefixName().prefix, "rdf") ;
+ assertEquals(rt.getPrefixName().localName, "type") ;
+ }
+
+ @Test public void term_literal_01() {
+ testTerm("'foo'") ;
+ }
+
+ @Test public void term_literal_02() {
+ testTerm("'foo'@en") ;
+ }
+
+ @Test public void term_literal_03() {
+ RDF_Term rt = testTerm("123") ;
+ assertFalse(rt.getLiteral().isSetDatatype()) ;
+ assertTrue(rt.getLiteral().isSetDtPrefix()) ;
+ assertEquals(rt.getLiteral().getDtPrefix().getPrefix(), "xsd") ;
+ assertEquals(rt.getLiteral().getDtPrefix().getLocalName(), "integer") ;
+ }
+
+ @Test public void term_literal_04() {
+ RDF_Term rt = testTerm("'foo'^^<http://dataype/>") ;
+ assertTrue(rt.getLiteral().isSetDatatype()) ;
+ assertFalse(rt.getLiteral().isSetDtPrefix()) ;
+ assertEquals(rt.getLiteral().getDatatype(), "http://dataype/") ;
+ }
+
+ @Test public void term_literal_05() {
+ RDF_Term rt = testTerm("'foo'^^<http://example/>") ;
+ assertFalse(rt.getLiteral().isSetDatatype()) ;
+ assertTrue(rt.getLiteral().isSetDtPrefix()) ;
+ assertEquals(rt.getLiteral().getDtPrefix().getPrefix(), "") ;
+ assertEquals(rt.getLiteral().getDtPrefix().getLocalName(), "") ;
+ }
+
+
+ @Test public void term_var_01() {
+ testTerm("?var") ;
+ }
+
+ @Test public void term_bnode_01() {
+ Node n = SSE.parseNode("_:blanknode") ;
+ RDF_Term rt = testTerm(n) ;
+ assertEquals(rt.getBnode().getLabel(), n.getBlankNodeLabel()) ;
+ }
+
+ @Test public void term_bnode_02() {
+ String label = "abcdefghijklmn" ;
+ Node n = NodeFactory.createAnon(new AnonId("abcdefghijklmn")) ;
+ RDF_Term rt = testTerm(n) ;
+ assertTrue(rt.isSetBnode()) ;
+ assertEquals("abcdefghijklmn", rt.getBnode().getLabel()) ;
+ }
+
+ @Test public void term_any_1() {
+ RDF_Term rt = testTerm(Node.ANY) ;
+ assertTrue(rt.isSetAny()) ;
+ }
+
+ @Test public void term_value_01() {
+ RDF_Term rt = testTermValue("123") ;
+ assertTrue(rt.isSetValInteger()) ;
+ assertEquals(123, rt.getValInteger()) ;
+ }
+
+ @Test public void term_value_02() {
+ RDF_Term rt = testTermValue("'123'^^xsd:integer") ;
+ assertTrue(rt.isSetValInteger()) ;
+ assertEquals(123, rt.getValInteger()) ;
+ }
+
+ @Test public void term_value_03() {
+ RDF_Term rt = testTermValue("'123'^^xsd:long") ;
+ assertTrue(rt.isSetValInteger()) ;
+ assertEquals(123, rt.getValInteger()) ;
+ }
+
+ @Test public void term_value_04() {
+ RDF_Term rt = testTermValue("'123'^^xsd:int") ;
+ assertTrue(rt.isSetValInteger()) ;
+ assertEquals(123, rt.getValInteger()) ;
+ }
+
+ @Test public void term_value_05() {
+ RDF_Term rt = testTermValue("'123'^^xsd:short") ;
+ assertTrue(rt.isSetValInteger()) ;
+ assertEquals(123, rt.getValInteger()) ;
+ }
+
+ @Test public void term_value_06() {
+ RDF_Term rt = testTermValue("'123'^^xsd:byte") ;
+ assertTrue(rt.isSetValInteger()) ;
+ assertEquals(123, rt.getValInteger()) ;
+ }
+
+ @Test public void term_value_10() {
+ RDF_Term rt = testTermValue("123.6") ;
+ assertTrue(rt.isSetValDecimal()) ;
+ assertEquals(1236, rt.getValDecimal().getValue()) ;
+ assertEquals(1, rt.getValDecimal().getScale()) ;
+ }
+
+ @Test public void term_value_11() {
+ RDF_Term rt = testTermValue("0.005") ;
+ assertTrue(rt.isSetValDecimal()) ;
+ assertEquals(5, rt.getValDecimal().getValue()) ;
+ assertEquals(3, rt.getValDecimal().getScale()) ;
+ }
+
+ @Test public void term_value_12() {
+ RDF_Term rt = testTermValue("50.0") ;
+ assertTrue(rt.isSetValDecimal()) ;
+ assertEquals(500, rt.getValDecimal().getValue()) ;
+ assertEquals(1, rt.getValDecimal().getScale()) ;
+ }
+
+ @Test public void term_value_13() {
+ RDF_Term rt = testTermValue("50.05") ;
+ assertTrue(rt.isSetValDecimal()) ;
+ assertEquals(5005, rt.getValDecimal().getValue()) ;
+ assertEquals(2, rt.getValDecimal().getScale()) ;
+ }
+
+ @Test public void term_value_20() {
+ RDF_Term rt = testTermValue("50e6") ;
+ assertTrue(rt.isSetValDouble()) ;
+ assertEquals(50e6, rt.getValDouble(), 0.001) ;
+ }
+
+ @Test public void term_value_21() {
+ RDF_Term rt = testTermValue("50e-6") ;
+ assertTrue(rt.isSetValDouble()) ;
+ assertEquals(50e-6, rt.getValDouble(), 0.001e6) ;
+ }
+
+ private RDF_Term testTermValue(String str) {
+ RDF_Term rt = testTerm(SSE.parseNode(str), prefixMap, true) ;
+ return rt ;
+ }
+
+ private RDF_Term testTerm(String str) {
+ RDF_Term rt = testTerm(SSE.parseNode(str), prefixMap, false) ;
+ return rt ;
+ }
+
+ private RDF_Term testTerm(Node node) {
+ return testTerm(node, null, false) ;
+ }
+
+ private RDF_Term testTerm(Node node, PrefixMap pmap, boolean asValue) {
+ RDF_Term rt = ThriftConvert.convert(node, pmap, asValue) ;
+ assertTrue(rt.isSet()) ;
+
+ if ( node.isURI() ) {
+ assertTrue(rt.isSetIri() || rt.isSetPrefixName() ) ;
+ if ( rt.isSetIri() ) {
+ RDF_IRI iri = rt.getIri() ;
+ assertEquals(node.getURI(), iri.getIri()) ;
+ }
+ if ( rt.isSetPrefixName() ) {
+ assertTrue(rt.getPrefixName().isSetPrefix()) ;
+ assertTrue(rt.getPrefixName().isSetLocalName()) ;
+ }
+ } else if ( rt.isSetValDecimal() ||
+ rt.isSetValDouble() ||
+ rt.isSetValInteger() )
+ {
+ // Nothing specific to check.
+ // And not reversible.
+ return rt ;
+ }
+ else if ( node.isLiteral() ) {
+ assertTrue(rt.isSetLiteral()) ;
+ RDF_Literal lit = rt.getLiteral() ;
+ assertTrue(lit.isSetLex()) ;
+ assertEquals(node.getLiteralLexicalForm(), lit.getLex()) ;
+ // RDF 1.1
+ if ( node.getLiteralDatatype() != null ) {
+ assertTrue(lit.isSetDatatype() || lit.isSetDtPrefix()) ;
+ }
+ } else if ( node.isBlank() ) {
+ assertTrue(rt.isSetBnode()) ;
+ RDF_BNode bnode = rt.getBnode() ;
+ assertEquals(node.getBlankNodeLabel(), bnode.getLabel()) ;
+ } else if ( node.isVariable() ) {
+ assertTrue(rt.isSetVariable()) ;
+ assertEquals(node.getName(), rt.getVariable().getName()) ;
+ } else if ( Node.ANY.equals(node) ) {
+ assertTrue(rt.isSetAny()) ;
+ } else
+ fail("Unknown node type") ;
+
+ // And reverse
+ Node n2 = ThriftConvert.convert(rt,pmap) ;
+ assertEquals(node, n2) ;
+ return rt ;
+ }
+
+ @Test public void rdfterm_01() {
+ RDF_Term rt = TRDF.tANY ;
+ Node n = ThriftConvert.convert(rt) ;
+ assertEquals(Node.ANY, n) ;
+ }
+
+// @Test public void rdfterm_02() {
+// RDF_Term rt = TRDF.UNDEF ;
+// Node n = TRDF.convert(rt) ;
+// assertNull(n) ;
+// }
+}
+
Propchange: jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestThriftTerm.java
------------------------------------------------------------------------------
svn:mime-type = text/plain