http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/413dd09a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/AbstractRepositoryGraphLike.java ---------------------------------------------------------------------- diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/AbstractRepositoryGraphLike.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/AbstractRepositoryGraphLike.java index 37487b4..2398194 100644 --- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/AbstractRepositoryGraphLike.java +++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/AbstractRepositoryGraphLike.java @@ -28,49 +28,48 @@ import org.eclipse.rdf4j.model.Statement; import org.eclipse.rdf4j.repository.Repository; import org.eclipse.rdf4j.repository.RepositoryConnection; -abstract class AbstractRepositoryGraphLike<T extends TripleLike> - implements RDF4JGraphLike<T> { +abstract class AbstractRepositoryGraphLike<T extends TripleLike> implements RDF4JGraphLike<T> { - protected final Repository repository; - protected final boolean includeInferred; - protected final boolean handleInitAndShutdown; - protected final RDF4J rdf4jTermFactory; - protected final UUID salt; + protected final Repository repository; + protected final boolean includeInferred; + protected final boolean handleInitAndShutdown; + protected final RDF4J rdf4jTermFactory; + protected final UUID salt; - AbstractRepositoryGraphLike(Repository repository, UUID salt, boolean handleInitAndShutdown, boolean includeInferred) { - this.repository = repository; - this.salt = salt; - this.includeInferred = includeInferred; - this.handleInitAndShutdown = handleInitAndShutdown; - if (handleInitAndShutdown && !repository.isInitialized()) { - repository.initialize(); - } - rdf4jTermFactory = new RDF4J(repository.getValueFactory(), salt); - } - - @Override - public void close() throws Exception { - if (handleInitAndShutdown) { - repository.shutDown(); - } - // else: repository was initialized outside, so we should not shut it - // down - } + AbstractRepositoryGraphLike(Repository repository, UUID salt, boolean handleInitAndShutdown, + boolean includeInferred) { + this.repository = repository; + this.salt = salt; + this.includeInferred = includeInferred; + this.handleInitAndShutdown = handleInitAndShutdown; + if (handleInitAndShutdown && !repository.isInitialized()) { + repository.initialize(); + } + rdf4jTermFactory = new RDF4J(repository.getValueFactory(), salt); + } - - protected abstract T asTripleLike(Statement s); + @Override + public void close() throws Exception { + if (handleInitAndShutdown) { + repository.shutDown(); + } + // else: repository was initialized outside, so we should not shut it + // down + } - protected RepositoryConnection getRepositoryConnection() { - return repository.getConnection(); - } + protected abstract T asTripleLike(Statement s); - public Optional<Repository> asRepository() { - return Optional.of(repository); - } + protected RepositoryConnection getRepositoryConnection() { + return repository.getConnection(); + } - @Override - public Optional<Model> asModel() { - return Optional.empty(); - } + public Optional<Repository> asRepository() { + return Optional.of(repository); + } + + @Override + public Optional<Model> asModel() { + return Optional.empty(); + } }
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/413dd09a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/BlankNodeImpl.java ---------------------------------------------------------------------- diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/BlankNodeImpl.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/BlankNodeImpl.java index bdb82d1..8c5fc30 100644 --- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/BlankNodeImpl.java +++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/BlankNodeImpl.java @@ -25,69 +25,68 @@ import org.apache.commons.rdf.rdf4j.RDF4JBlankNode; import org.eclipse.rdf4j.model.BNode; import org.eclipse.rdf4j.rio.turtle.TurtleUtil; -final class BlankNodeImpl extends AbstractRDFTerm<BNode> - implements RDF4JBlankNode { - - private transient int hashCode = 0; - private long saltUUIDleast; - private long saltUUIDmost; - - BlankNodeImpl(BNode bNode, UUID salt) { - super(bNode); - // Space-efficient storage of salt UUID - saltUUIDmost = salt.getMostSignificantBits(); - saltUUIDleast = salt.getLeastSignificantBits(); - } - - public boolean equals(Object obj) { - if (obj == this) { - return true; - } - // NOTE: Do NOT use Bnode.equals() as it has a more generous - // equality based only on the value.getID(); - if (obj instanceof BlankNode) { - BlankNode blankNode = (BlankNode) obj; - return uniqueReference().equals(blankNode.uniqueReference()); - } - return false; - } +final class BlankNodeImpl extends AbstractRDFTerm<BNode> implements RDF4JBlankNode { - @Override - public int hashCode() { - if (hashCode != 0) { - return hashCode; - } - return hashCode = uniqueReference().hashCode(); - } + private transient int hashCode = 0; + private long saltUUIDleast; + private long saltUUIDmost; - private boolean isValidBlankNodeLabel(String id) { - // FIXME: Replace with a regular expression? - if (id.isEmpty()) { - return false; - } - if (! TurtleUtil.isBLANK_NODE_LABEL_StartChar(id.codePointAt(0))) { - return false; - } - for (int i=1; i<id.length(); i++) { - if (! TurtleUtil.isBLANK_NODE_LABEL_Char(id.codePointAt(i))) { - return false; - } - } - return true; - } + BlankNodeImpl(BNode bNode, UUID salt) { + super(bNode); + // Space-efficient storage of salt UUID + saltUUIDmost = salt.getMostSignificantBits(); + saltUUIDleast = salt.getLeastSignificantBits(); + } - @Override - public String ntriplesString() { - if (isValidBlankNodeLabel(value.getID())) { - return "_:" + value.getID(); - } else { - return "_:" + UUID.nameUUIDFromBytes(value.getID().getBytes(StandardCharsets.UTF_8)); - } - } + public boolean equals(Object obj) { + if (obj == this) { + return true; + } + // NOTE: Do NOT use Bnode.equals() as it has a more generous + // equality based only on the value.getID(); + if (obj instanceof BlankNode) { + BlankNode blankNode = (BlankNode) obj; + return uniqueReference().equals(blankNode.uniqueReference()); + } + return false; + } - @Override - public String uniqueReference() { - UUID uuid = new UUID(saltUUIDmost, saltUUIDleast); - return "urn:uuid:" + uuid + "#" + value.getID(); - } + @Override + public int hashCode() { + if (hashCode != 0) { + return hashCode; + } + return hashCode = uniqueReference().hashCode(); + } + + private boolean isValidBlankNodeLabel(String id) { + // FIXME: Replace with a regular expression? + if (id.isEmpty()) { + return false; + } + if (!TurtleUtil.isBLANK_NODE_LABEL_StartChar(id.codePointAt(0))) { + return false; + } + for (int i = 1; i < id.length(); i++) { + if (!TurtleUtil.isBLANK_NODE_LABEL_Char(id.codePointAt(i))) { + return false; + } + } + return true; + } + + @Override + public String ntriplesString() { + if (isValidBlankNodeLabel(value.getID())) { + return "_:" + value.getID(); + } else { + return "_:" + UUID.nameUUIDFromBytes(value.getID().getBytes(StandardCharsets.UTF_8)); + } + } + + @Override + public String uniqueReference() { + UUID uuid = new UUID(saltUUIDmost, saltUUIDleast); + return "urn:uuid:" + uuid + "#" + value.getID(); + } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/413dd09a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/ConvertedStatements.java ---------------------------------------------------------------------- diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/ConvertedStatements.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/ConvertedStatements.java index 4c8478a..f199b8f 100644 --- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/ConvertedStatements.java +++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/ConvertedStatements.java @@ -29,43 +29,43 @@ import org.eclipse.rdf4j.repository.RepositoryConnection; import org.eclipse.rdf4j.repository.RepositoryResult; final class ConvertedStatements<T> implements ClosableIterable<T> { - - private RepositoryConnection conn; - private RepositoryResult<Statement> results; - private Function<Statement, T> statementAdapter; - ConvertedStatements(Supplier<RepositoryConnection> repositoryConnector, Function<Statement, T> statementAdapter, - Resource subj, org.eclipse.rdf4j.model.IRI pred, Value obj, Resource... contexts) { - this.statementAdapter = statementAdapter; - this.conn = repositoryConnector.get(); - this.results = conn.getStatements(subj, pred, obj, contexts); - } + private RepositoryConnection conn; + private RepositoryResult<Statement> results; + private Function<Statement, T> statementAdapter; - @Override - public Iterator<T> iterator() { - return new ConvertedIterator(); - } + ConvertedStatements(Supplier<RepositoryConnection> repositoryConnector, Function<Statement, T> statementAdapter, + Resource subj, org.eclipse.rdf4j.model.IRI pred, Value obj, Resource... contexts) { + this.statementAdapter = statementAdapter; + this.conn = repositoryConnector.get(); + this.results = conn.getStatements(subj, pred, obj, contexts); + } - @Override - public void close() { - results.close(); - conn.close(); - } + @Override + public Iterator<T> iterator() { + return new ConvertedIterator(); + } - private final class ConvertedIterator implements Iterator<T> { - @Override - public boolean hasNext() { - boolean hasNext = results.hasNext(); - if (!hasNext) { - close(); - } - return hasNext; - } + @Override + public void close() { + results.close(); + conn.close(); + } - @Override - public T next() { - return statementAdapter.apply(results.next()); - } - } + private final class ConvertedIterator implements Iterator<T> { + @Override + public boolean hasNext() { + boolean hasNext = results.hasNext(); + if (!hasNext) { + close(); + } + return hasNext; + } + + @Override + public T next() { + return statementAdapter.apply(results.next()); + } + } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/413dd09a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/IRIImpl.java ---------------------------------------------------------------------- diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/IRIImpl.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/IRIImpl.java index e88ac27..f566c21 100644 --- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/IRIImpl.java +++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/IRIImpl.java @@ -19,43 +19,46 @@ package org.apache.commons.rdf.rdf4j.impl; import org.apache.commons.rdf.rdf4j.RDF4JIRI; -final class IRIImpl extends AbstractRDFTerm<org.eclipse.rdf4j.model.IRI> - implements RDF4JIRI { - - IRIImpl(org.eclipse.rdf4j.model.IRI iri) { - super(iri); - } - @Override - public boolean equals(Object obj) { - if (obj == this) { return true; } - if (obj instanceof IRIImpl) { - IRIImpl impl = (IRIImpl) obj; - return asValue().equals(impl.asValue()); - } - if (obj instanceof org.apache.commons.rdf.api.IRI) { - org.apache.commons.rdf.api.IRI iri = (org.apache.commons.rdf.api.IRI) obj; - return value.toString().equals(iri.getIRIString()); - } - return false; - } - - @Override - public String getIRIString() { - return value.toString(); - } - - public int hashCode() { - // Same definition - return value.hashCode(); - } - - @Override - public String ntriplesString() { - return "<" + value.toString() + ">"; - } - @Override - public String toString() { - return value.toString(); - } - +final class IRIImpl extends AbstractRDFTerm<org.eclipse.rdf4j.model.IRI> implements RDF4JIRI { + + IRIImpl(org.eclipse.rdf4j.model.IRI iri) { + super(iri); + } + + @Override + public boolean equals(Object obj) { + if (obj == this) { + return true; + } + if (obj instanceof IRIImpl) { + IRIImpl impl = (IRIImpl) obj; + return asValue().equals(impl.asValue()); + } + if (obj instanceof org.apache.commons.rdf.api.IRI) { + org.apache.commons.rdf.api.IRI iri = (org.apache.commons.rdf.api.IRI) obj; + return value.toString().equals(iri.getIRIString()); + } + return false; + } + + @Override + public String getIRIString() { + return value.toString(); + } + + public int hashCode() { + // Same definition + return value.hashCode(); + } + + @Override + public String ntriplesString() { + return "<" + value.toString() + ">"; + } + + @Override + public String toString() { + return value.toString(); + } + } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/413dd09a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/InternalRDF4JFactory.java ---------------------------------------------------------------------- diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/InternalRDF4JFactory.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/InternalRDF4JFactory.java index b6d6b29..25a7620 100644 --- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/InternalRDF4JFactory.java +++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/InternalRDF4JFactory.java @@ -43,8 +43,7 @@ import org.eclipse.rdf4j.repository.Repository; * <p> * <strong>Internal class:</strong> This "abstract" class is intended for * internal use by Commons RDF and may change in any minor update. Use instead - * {@link RDF4J} methods like - * {@link RDF4J#createBlankNode()}, + * {@link RDF4J} methods like {@link RDF4J#createBlankNode()}, * {@link RDF4J#asRDFTerm(org.eclipse.rdf4j.model.Value)} and * {@link RDF4J#asGraph(Repository, Option...)} * <p> @@ -57,128 +56,129 @@ import org.eclipse.rdf4j.repository.Repository; */ public abstract class InternalRDF4JFactory { - /** - * Construct a {@link RDF4JBlankNode} from a RDF4J {@link BNode}. - * - * @param bNode - * RDF4J {@link BNode} to adapt - * @param salt - * {@link UUID} to use for {@link BlankNode#uniqueReference()} in - * combination with {@link BNode#getID()} - * @return Adapted {@link RDF4JBlankNode} - */ - public RDF4JBlankNode createBlankNodeImpl(BNode bNode, UUID salt) { - return new BlankNodeImpl(bNode, salt); - } + /** + * Construct a {@link RDF4JBlankNode} from a RDF4J {@link BNode}. + * + * @param bNode + * RDF4J {@link BNode} to adapt + * @param salt + * {@link UUID} to use for {@link BlankNode#uniqueReference()} in + * combination with {@link BNode#getID()} + * @return Adapted {@link RDF4JBlankNode} + */ + public RDF4JBlankNode createBlankNodeImpl(BNode bNode, UUID salt) { + return new BlankNodeImpl(bNode, salt); + } - /** - * Construct a {@link RDF4JIRI} from a RDF4J {@link IRI}. - * - * @param iri - * RDF4J {@link IRI} to adapt - * @return Adapted {@link RDF4JIRI} - */ - public RDF4JIRI createIRIImpl(IRI iri) { - return new IRIImpl(iri); - } + /** + * Construct a {@link RDF4JIRI} from a RDF4J {@link IRI}. + * + * @param iri + * RDF4J {@link IRI} to adapt + * @return Adapted {@link RDF4JIRI} + */ + public RDF4JIRI createIRIImpl(IRI iri) { + return new IRIImpl(iri); + } - /** - * Construct a {@link RDF4JLiteral} from a RDF4J {@link Literal}. - * - * @param literal - * RDF4J {@link Literal} - * @return Adapted {@link RDF4JLiteral} - */ - public RDF4JLiteral createLiteralImpl(Literal literal) { - return new LiteralImpl(literal); - } + /** + * Construct a {@link RDF4JLiteral} from a RDF4J {@link Literal}. + * + * @param literal + * RDF4J {@link Literal} + * @return Adapted {@link RDF4JLiteral} + */ + public RDF4JLiteral createLiteralImpl(Literal literal) { + return new LiteralImpl(literal); + } - /** - * Construct a {@link RDF4JGraph} from a RDF4J {@link Model}. - * <p> - * Changes in the graph will be reflected in the model, and vice versa. - * - * @param model - * RDF4J {@link Model} to adapt - * @param rdf4jTermFactory - * factory to use for adapting graph triples - * @return Adapted {@link RDF4JGraph} - */ - public RDF4JGraph createModelGraphImpl(Model model, RDF4J rdf4jTermFactory) { - return new ModelGraphImpl(model, rdf4jTermFactory); - } + /** + * Construct a {@link RDF4JGraph} from a RDF4J {@link Model}. + * <p> + * Changes in the graph will be reflected in the model, and vice versa. + * + * @param model + * RDF4J {@link Model} to adapt + * @param rdf4jTermFactory + * factory to use for adapting graph triples + * @return Adapted {@link RDF4JGraph} + */ + public RDF4JGraph createModelGraphImpl(Model model, RDF4J rdf4jTermFactory) { + return new ModelGraphImpl(model, rdf4jTermFactory); + } - /** - * Construct a {@link RDF4JQuad} from a RDF4J {@link Statement}. - * - * @param statement - * RDF4J {@link Statement} to adapt - * @param salt - * {@link UUID} for adapting any {@link BNode}s - * @return Adapted {@link RDF4JQuad} - */ - public RDF4JQuad createQuadImpl(Statement statement, UUID salt) { - return new QuadImpl(statement, salt); - } + /** + * Construct a {@link RDF4JQuad} from a RDF4J {@link Statement}. + * + * @param statement + * RDF4J {@link Statement} to adapt + * @param salt + * {@link UUID} for adapting any {@link BNode}s + * @return Adapted {@link RDF4JQuad} + */ + public RDF4JQuad createQuadImpl(Statement statement, UUID salt) { + return new QuadImpl(statement, salt); + } - /** - * Construct a {@link RDF4JDataset} from a RDF4J {@link Repository}. - * <p> - * Changes in the dataset will be reflected in the repsitory, and vice - * versa. - * - * @param repository - * RDF4J {@link Repository} to adapt - * @param handleInitAndShutdown - * If <code>true</code>, the {@link RDF4JDataset} will initialize - * the repository (if needed), and shut it down on - * {@link RDF4JDataset#close()}. - * @param includeInferred - * If true, any inferred quads are included in the dataset - * - * @return Adapted {@link RDF4JDataset} - */ - public RDF4JDataset createRepositoryDatasetImpl(Repository repository, boolean handleInitAndShutdown, - boolean includeInferred) { - return new RepositoryDatasetImpl(repository, UUID.randomUUID(), handleInitAndShutdown, includeInferred); - } + /** + * Construct a {@link RDF4JDataset} from a RDF4J {@link Repository}. + * <p> + * Changes in the dataset will be reflected in the repsitory, and vice + * versa. + * + * @param repository + * RDF4J {@link Repository} to adapt + * @param handleInitAndShutdown + * If <code>true</code>, the {@link RDF4JDataset} will initialize + * the repository (if needed), and shut it down on + * {@link RDF4JDataset#close()}. + * @param includeInferred + * If true, any inferred quads are included in the dataset + * + * @return Adapted {@link RDF4JDataset} + */ + public RDF4JDataset createRepositoryDatasetImpl(Repository repository, boolean handleInitAndShutdown, + boolean includeInferred) { + return new RepositoryDatasetImpl(repository, UUID.randomUUID(), handleInitAndShutdown, includeInferred); + } - /** - * Construct a {@link RDF4JGraph} from a RDF4J {@link Model}. - * <p> - * Changes in the graph will be reflected in the model, and vice versa. - * - * @param repository - * RDF4J {@link Repository} to adapt - * @param handleInitAndShutdown - * If <code>true</code>, the {@link RDF4JGraph} will initialize - * the repository (if needed), and shut it down on - * {@link RDF4JGraph#close()}. - * @param includeInferred - * If true, any inferred quads are included in the dataset - * @param contextMask - * Zero or more {@link Resource}s contexts. The array may contain - * the value <code>null</code> for the default graph - however - * care must be taken to not provide a null-array - * <code>(Resource[]) null</code>. - * @return Adapted {@link RDF4JGraph} - */ - public RDF4JGraph createRepositoryGraphImpl(Repository repository, boolean handleInitAndShutdown, - boolean includeInferred, Resource... contextMask) { - return new RepositoryGraphImpl(repository, UUID.randomUUID(), handleInitAndShutdown, includeInferred, contextMask); - } + /** + * Construct a {@link RDF4JGraph} from a RDF4J {@link Model}. + * <p> + * Changes in the graph will be reflected in the model, and vice versa. + * + * @param repository + * RDF4J {@link Repository} to adapt + * @param handleInitAndShutdown + * If <code>true</code>, the {@link RDF4JGraph} will initialize + * the repository (if needed), and shut it down on + * {@link RDF4JGraph#close()}. + * @param includeInferred + * If true, any inferred quads are included in the dataset + * @param contextMask + * Zero or more {@link Resource}s contexts. The array may contain + * the value <code>null</code> for the default graph - however + * care must be taken to not provide a null-array + * <code>(Resource[]) null</code>. + * @return Adapted {@link RDF4JGraph} + */ + public RDF4JGraph createRepositoryGraphImpl(Repository repository, boolean handleInitAndShutdown, + boolean includeInferred, Resource... contextMask) { + return new RepositoryGraphImpl(repository, UUID.randomUUID(), handleInitAndShutdown, includeInferred, + contextMask); + } - /** - * Construct a {@link RDF4JTriple} from a RDF4J {@link Statement}. - * - * @param statement - * RDF4J {@link Statement} to adapt - * @param salt - * {@link UUID} for adapting any {@link BNode}s - * @return Adapted {@link RDF4JTriple} - */ - public RDF4JTriple createTripleImpl(Statement statement, UUID salt) { - return new TripleImpl(statement, salt); - } + /** + * Construct a {@link RDF4JTriple} from a RDF4J {@link Statement}. + * + * @param statement + * RDF4J {@link Statement} to adapt + * @param salt + * {@link UUID} for adapting any {@link BNode}s + * @return Adapted {@link RDF4JTriple} + */ + public RDF4JTriple createTripleImpl(Statement statement, UUID salt) { + return new TripleImpl(statement, salt); + } } http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/413dd09a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/LiteralImpl.java ---------------------------------------------------------------------- diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/LiteralImpl.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/LiteralImpl.java index aef298d..9fa93b1 100644 --- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/LiteralImpl.java +++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/LiteralImpl.java @@ -24,62 +24,62 @@ import org.apache.commons.rdf.rdf4j.RDF4JLiteral; import org.eclipse.rdf4j.model.vocabulary.XMLSchema; import org.eclipse.rdf4j.rio.turtle.TurtleUtil; -final class LiteralImpl - extends AbstractRDFTerm<org.eclipse.rdf4j.model.Literal> - implements RDF4JLiteral { +final class LiteralImpl extends AbstractRDFTerm<org.eclipse.rdf4j.model.Literal> implements RDF4JLiteral { - private static final String QUOTE = "\""; - - LiteralImpl(org.eclipse.rdf4j.model.Literal literal) { - super(literal); - } - @Override - public boolean equals(Object obj) { - if (obj == this) { return true; } - if (obj instanceof org.apache.commons.rdf.api.Literal) { - org.apache.commons.rdf.api.Literal other = (org.apache.commons.rdf.api.Literal) obj; - return getLexicalForm().equals(other.getLexicalForm()) && - getDatatype().equals(other.getDatatype()) && - getLanguageTag().equals(other.getLanguageTag()); - - } - return false; - } + private static final String QUOTE = "\""; - @Override - public org.apache.commons.rdf.api.IRI getDatatype() { - return new IRIImpl(value.getDatatype()); - } + LiteralImpl(org.eclipse.rdf4j.model.Literal literal) { + super(literal); + } - @Override - public Optional<String> getLanguageTag() { - return value.getLanguage(); - } + @Override + public boolean equals(Object obj) { + if (obj == this) { + return true; + } + if (obj instanceof org.apache.commons.rdf.api.Literal) { + org.apache.commons.rdf.api.Literal other = (org.apache.commons.rdf.api.Literal) obj; + return getLexicalForm().equals(other.getLexicalForm()) && getDatatype().equals(other.getDatatype()) + && getLanguageTag().equals(other.getLanguageTag()); - @Override - public String getLexicalForm() { - return value.getLabel(); - } + } + return false; + } - public int hashCode() { - return Objects.hash(value.getLabel(), value.getDatatype(), value.getLanguage()); - } + @Override + public org.apache.commons.rdf.api.IRI getDatatype() { + return new IRIImpl(value.getDatatype()); + } - @Override - public String ntriplesString() { - // TODO: Use a more efficient StringBuffer - String escaped = QUOTE + TurtleUtil.encodeString(value.getLabel()) + QUOTE; - if (value.getLanguage().isPresent()) { - return escaped + "@" + value.getLanguage().get(); - } - if (value.getDatatype().equals(XMLSchema.STRING)) { - return escaped; - } - return escaped + "^^<" + TurtleUtil.encodeURIString(value.getDatatype().toString()) + ">"; - } + @Override + public Optional<String> getLanguageTag() { + return value.getLanguage(); + } - @Override - public String toString() { - return ntriplesString(); - } + @Override + public String getLexicalForm() { + return value.getLabel(); + } + + public int hashCode() { + return Objects.hash(value.getLabel(), value.getDatatype(), value.getLanguage()); + } + + @Override + public String ntriplesString() { + // TODO: Use a more efficient StringBuffer + String escaped = QUOTE + TurtleUtil.encodeString(value.getLabel()) + QUOTE; + if (value.getLanguage().isPresent()) { + return escaped + "@" + value.getLanguage().get(); + } + if (value.getDatatype().equals(XMLSchema.STRING)) { + return escaped; + } + return escaped + "^^<" + TurtleUtil.encodeURIString(value.getDatatype().toString()) + ">"; + } + + @Override + public String toString() { + return ntriplesString(); + } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/413dd09a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/ModelGraphImpl.java ---------------------------------------------------------------------- diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/ModelGraphImpl.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/ModelGraphImpl.java index ced9c99..7debacc 100644 --- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/ModelGraphImpl.java +++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/ModelGraphImpl.java @@ -38,121 +38,115 @@ import org.eclipse.rdf4j.model.Resource; import org.eclipse.rdf4j.repository.Repository; final class ModelGraphImpl implements RDF4JGraph { - - private Model model; - private RDF4J rdf4jTermFactory; - - ModelGraphImpl(Model model, RDF4J rdf4jTermFactory) { - this.model = model; - this.rdf4jTermFactory = rdf4jTermFactory; - } - - @Override - public void add(BlankNodeOrIRI subject, org.apache.commons.rdf.api.IRI predicate, RDFTerm object) { - model.add( - (Resource)rdf4jTermFactory.asValue(subject), - (org.eclipse.rdf4j.model.IRI)rdf4jTermFactory.asValue(predicate), - rdf4jTermFactory.asValue(object)); - } - - @Override - public void add(Triple triple) { - model.add(rdf4jTermFactory.asStatement(triple)); - } - - public Optional<Model> asModel() { - return Optional.of(model); - } - - @Override - public Optional<Repository> asRepository() { - return Optional.empty(); - } - - @Override - public void clear() { - model.clear(); - } - - @Override - public boolean contains(BlankNodeOrIRI subject, org.apache.commons.rdf.api.IRI predicate, RDFTerm object) { - return model.contains( - (Resource)rdf4jTermFactory.asValue(subject), - (org.eclipse.rdf4j.model.IRI)rdf4jTermFactory.asValue(predicate), - rdf4jTermFactory.asValue(object)); - } - - @Override - public boolean contains(Triple triple) { - return model.contains(rdf4jTermFactory.asStatement(triple)); - } - - @Override - public void remove(BlankNodeOrIRI subject, org.apache.commons.rdf.api.IRI predicate, RDFTerm object) { - model.remove( - (Resource)rdf4jTermFactory.asValue(subject), - (org.eclipse.rdf4j.model.IRI)rdf4jTermFactory.asValue(predicate), - rdf4jTermFactory.asValue(object)); - } - - @Override - public void remove(Triple triple) { - model.remove(rdf4jTermFactory.asStatement(triple)); - } - - @Override - public long size() { - int size = model.size(); - if (size < Integer.MAX_VALUE) { - return size; - } else { - // TODO: Check if this can really happen with RDF4J models - // Collection.size() can't help us, we'll have to count - return model.parallelStream().count(); - } - } - - @Override - public Stream<RDF4JTriple> stream() { - return model.parallelStream().map(rdf4jTermFactory::asTriple); - } - - @Override - public Stream<RDF4JTriple> stream(BlankNodeOrIRI subject, org.apache.commons.rdf.api.IRI predicate, RDFTerm object) { - return model.filter( - (Resource)rdf4jTermFactory.asValue(subject), - (org.eclipse.rdf4j.model.IRI)rdf4jTermFactory.asValue(predicate), - rdf4jTermFactory.asValue(object)).parallelStream() - .map(rdf4jTermFactory::asTriple); - } - - @Override - public Set<RDF4JBlankNodeOrIRI> getContextMask() { - // ModelGraph always do the unionGraph - return Collections.emptySet(); - // TODO: Should we support contextMask like in RepositoryGraphImpl? - } - - @Override - public ClosableIterable<Triple> iterate(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) { - return new ClosableIterable<Triple>() { - @SuppressWarnings("unchecked") - @Override - public Iterator<Triple> iterator() { - // double-cast to fight Java generics.. - Stream<? extends Triple> s = stream(subject, predicate, object); - return (Iterator<Triple>) s.iterator(); - } - @Override - public void close() throws Exception { - // no-op as Model don't have transaction - } - }; - } - - @Override - public ClosableIterable<Triple> iterate() throws ConcurrentModificationException, IllegalStateException { - return iterate(null, null, null); - } - + + private Model model; + private RDF4J rdf4jTermFactory; + + ModelGraphImpl(Model model, RDF4J rdf4jTermFactory) { + this.model = model; + this.rdf4jTermFactory = rdf4jTermFactory; + } + + @Override + public void add(BlankNodeOrIRI subject, org.apache.commons.rdf.api.IRI predicate, RDFTerm object) { + model.add((Resource) rdf4jTermFactory.asValue(subject), + (org.eclipse.rdf4j.model.IRI) rdf4jTermFactory.asValue(predicate), rdf4jTermFactory.asValue(object)); + } + + @Override + public void add(Triple triple) { + model.add(rdf4jTermFactory.asStatement(triple)); + } + + public Optional<Model> asModel() { + return Optional.of(model); + } + + @Override + public Optional<Repository> asRepository() { + return Optional.empty(); + } + + @Override + public void clear() { + model.clear(); + } + + @Override + public boolean contains(BlankNodeOrIRI subject, org.apache.commons.rdf.api.IRI predicate, RDFTerm object) { + return model.contains((Resource) rdf4jTermFactory.asValue(subject), + (org.eclipse.rdf4j.model.IRI) rdf4jTermFactory.asValue(predicate), rdf4jTermFactory.asValue(object)); + } + + @Override + public boolean contains(Triple triple) { + return model.contains(rdf4jTermFactory.asStatement(triple)); + } + + @Override + public void remove(BlankNodeOrIRI subject, org.apache.commons.rdf.api.IRI predicate, RDFTerm object) { + model.remove((Resource) rdf4jTermFactory.asValue(subject), + (org.eclipse.rdf4j.model.IRI) rdf4jTermFactory.asValue(predicate), rdf4jTermFactory.asValue(object)); + } + + @Override + public void remove(Triple triple) { + model.remove(rdf4jTermFactory.asStatement(triple)); + } + + @Override + public long size() { + int size = model.size(); + if (size < Integer.MAX_VALUE) { + return size; + } else { + // TODO: Check if this can really happen with RDF4J models + // Collection.size() can't help us, we'll have to count + return model.parallelStream().count(); + } + } + + @Override + public Stream<RDF4JTriple> stream() { + return model.parallelStream().map(rdf4jTermFactory::asTriple); + } + + @Override + public Stream<RDF4JTriple> stream(BlankNodeOrIRI subject, org.apache.commons.rdf.api.IRI predicate, + RDFTerm object) { + return model.filter((Resource) rdf4jTermFactory.asValue(subject), + (org.eclipse.rdf4j.model.IRI) rdf4jTermFactory.asValue(predicate), rdf4jTermFactory.asValue(object)) + .parallelStream().map(rdf4jTermFactory::asTriple); + } + + @Override + public Set<RDF4JBlankNodeOrIRI> getContextMask() { + // ModelGraph always do the unionGraph + return Collections.emptySet(); + // TODO: Should we support contextMask like in RepositoryGraphImpl? + } + + @Override + public ClosableIterable<Triple> iterate(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) { + return new ClosableIterable<Triple>() { + @SuppressWarnings("unchecked") + @Override + public Iterator<Triple> iterator() { + // double-cast to fight Java generics.. + Stream<? extends Triple> s = stream(subject, predicate, object); + return (Iterator<Triple>) s.iterator(); + } + + @Override + public void close() throws Exception { + // no-op as Model don't have transaction + } + }; + } + + @Override + public ClosableIterable<Triple> iterate() throws ConcurrentModificationException, IllegalStateException { + return iterate(null, null, null); + } + } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/413dd09a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/QuadImpl.java ---------------------------------------------------------------------- diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/QuadImpl.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/QuadImpl.java index 8da29b6..6962803 100644 --- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/QuadImpl.java +++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/QuadImpl.java @@ -30,70 +30,69 @@ import org.apache.commons.rdf.rdf4j.RDF4J; import org.eclipse.rdf4j.model.Statement; final class QuadImpl implements Quad, RDF4JQuad { - private transient int hashCode = 0; - private UUID salt; - private final Statement statement; - - QuadImpl(Statement statement, UUID salt) { - this.statement = statement; - this.salt = salt; - } - - @Override - public Statement asStatement() { - return statement; - } - - @Override - public Triple asTriple() { - return new TripleImpl(statement, salt); - } - - @Override - public boolean equals(Object obj) { - if (obj instanceof Triple) { - Triple triple = (Triple) obj; - return getSubject().equals(triple.getSubject()) && - getPredicate().equals(triple.getPredicate()) && - getObject().equals(triple.getObject()); - } - return false; - } - - @Override - public Optional<BlankNodeOrIRI> getGraphName() { - if (statement.getContext() == null) { - return Optional.empty(); - } - BlankNodeOrIRI g = (BlankNodeOrIRI) RDF4J.asRDFTerm(statement.getContext(), salt); - return Optional.of(g); - } - - @Override - public RDFTerm getObject() { - return RDF4J.asRDFTerm(statement.getObject(), salt); - } - - @Override - public org.apache.commons.rdf.api.IRI getPredicate() { - return (org.apache.commons.rdf.api.IRI) RDF4J.asRDFTerm(statement.getPredicate(), null); - } - - @Override - public BlankNodeOrIRI getSubject() { - return (BlankNodeOrIRI) RDF4J.asRDFTerm(statement.getSubject(), salt); - } + private transient int hashCode = 0; + private UUID salt; + private final Statement statement; - @Override - public int hashCode() { - if (hashCode != 0) { - return hashCode; - } - return hashCode = Objects.hash(getSubject(), getPredicate(), getObject(), getGraphName()); - } - - @Override - public String toString() { - return statement.toString(); - } + QuadImpl(Statement statement, UUID salt) { + this.statement = statement; + this.salt = salt; + } + + @Override + public Statement asStatement() { + return statement; + } + + @Override + public Triple asTriple() { + return new TripleImpl(statement, salt); + } + + @Override + public boolean equals(Object obj) { + if (obj instanceof Triple) { + Triple triple = (Triple) obj; + return getSubject().equals(triple.getSubject()) && getPredicate().equals(triple.getPredicate()) + && getObject().equals(triple.getObject()); + } + return false; + } + + @Override + public Optional<BlankNodeOrIRI> getGraphName() { + if (statement.getContext() == null) { + return Optional.empty(); + } + BlankNodeOrIRI g = (BlankNodeOrIRI) RDF4J.asRDFTerm(statement.getContext(), salt); + return Optional.of(g); + } + + @Override + public RDFTerm getObject() { + return RDF4J.asRDFTerm(statement.getObject(), salt); + } + + @Override + public org.apache.commons.rdf.api.IRI getPredicate() { + return (org.apache.commons.rdf.api.IRI) RDF4J.asRDFTerm(statement.getPredicate(), null); + } + + @Override + public BlankNodeOrIRI getSubject() { + return (BlankNodeOrIRI) RDF4J.asRDFTerm(statement.getSubject(), salt); + } + + @Override + public int hashCode() { + if (hashCode != 0) { + return hashCode; + } + return hashCode = Objects.hash(getSubject(), getPredicate(), getObject(), getGraphName()); + } + + @Override + public String toString() { + return statement.toString(); + } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/413dd09a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryDatasetImpl.java ---------------------------------------------------------------------- diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryDatasetImpl.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryDatasetImpl.java index 64f3bbd..8c266a9 100644 --- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryDatasetImpl.java +++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryDatasetImpl.java @@ -41,183 +41,188 @@ import org.eclipse.rdf4j.repository.RepositoryResult; class RepositoryDatasetImpl extends AbstractRepositoryGraphLike<Quad> implements RDF4JDataset, Dataset { - RepositoryDatasetImpl(Repository repository, UUID salt, boolean handleInitAndShutdown, boolean includeInferred) { - super(repository, salt, handleInitAndShutdown, includeInferred); - } - - @Override - public void add(Quad tripleLike) { - Statement statement = rdf4jTermFactory.asStatement(tripleLike); - try (RepositoryConnection conn = getRepositoryConnection()) { - conn.add(statement); - conn.commit(); - } - } - - - @Override - public boolean contains(Quad tripleLike) { - Statement statement = rdf4jTermFactory.asStatement(tripleLike); - try (RepositoryConnection conn = getRepositoryConnection()) { - return conn.hasStatement(statement, includeInferred); - } - } - - @Override - public void remove(Quad tripleLike) { - Statement statement = rdf4jTermFactory.asStatement(tripleLike); - try (RepositoryConnection conn = getRepositoryConnection()) { - conn.remove(statement); - conn.commit(); - } - } - - @Override - public void clear() { - try (RepositoryConnection conn = getRepositoryConnection()) { - conn.clear(); - conn.commit(); - } - } - - @Override - public long size() { - if (includeInferred) { - // We'll need to count them all - return stream().count(); - } - // else: Ask directly - try (RepositoryConnection conn = getRepositoryConnection()) { - return conn.size(); - } - } - - @Override - public void add(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) { - Resource context = (Resource) rdf4jTermFactory.asValue(graphName); - Resource subj = (Resource) rdf4jTermFactory.asValue(subject); - org.eclipse.rdf4j.model.IRI pred = (org.eclipse.rdf4j.model.IRI) rdf4jTermFactory.asValue(predicate); - Value obj = rdf4jTermFactory.asValue(object); - try (RepositoryConnection conn = getRepositoryConnection()) { - conn.add(subj, pred, obj, context); - conn.commit(); - } - } - - @Override - public boolean contains(Optional<BlankNodeOrIRI> graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) { - Resource subj = (Resource) rdf4jTermFactory.asValue(subject); - org.eclipse.rdf4j.model.IRI pred = (org.eclipse.rdf4j.model.IRI) rdf4jTermFactory.asValue(predicate); - Value obj = rdf4jTermFactory.asValue(object); - Resource[] contexts = asContexts(graphName); - try (RepositoryConnection conn = getRepositoryConnection()) { - return conn.hasStatement(subj, pred, obj, includeInferred, contexts); - } - } - - private Resource[] asContexts(Optional<BlankNodeOrIRI> graphName) { - Resource[] contexts; - if (graphName == null) { - // no contexts == any contexts - contexts = new Resource[0]; - } else { - BlankNodeOrIRI g = graphName.orElse(null); - Resource context = (Resource) rdf4jTermFactory.asValue(g); - contexts = new Resource[] { context }; - } - return contexts; - } - - @Override - public void remove(Optional<BlankNodeOrIRI> graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) { - Resource subj = (Resource) rdf4jTermFactory.asValue(subject); - org.eclipse.rdf4j.model.IRI pred = (org.eclipse.rdf4j.model.IRI) rdf4jTermFactory.asValue(predicate); - Value obj = rdf4jTermFactory.asValue(object); - Resource[] contexts = asContexts(graphName); - - try (RepositoryConnection conn = getRepositoryConnection()) { - conn.remove(subj, pred, obj, contexts); - conn.commit(); - } - } - - @Override - public Stream<RDF4JQuad> stream() { - return stream(null, null, null, null); - } - - @Override - public Stream<RDF4JQuad> stream(Optional<BlankNodeOrIRI> graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) { - Resource subj = (Resource) rdf4jTermFactory.asValue(subject); - org.eclipse.rdf4j.model.IRI pred = (org.eclipse.rdf4j.model.IRI) rdf4jTermFactory.asValue(predicate); - Value obj = rdf4jTermFactory.asValue(object); - Resource[] contexts = asContexts(graphName); - - // NOTE: We can't do the usual try..with closing of the - // RepositoryConnection here as it will have to be closed outside - // by the user of the returned stream - RepositoryConnection conn = getRepositoryConnection(); - Stream<RDF4JQuad> stream = null; - try { - RepositoryResult<Statement> statements = conn.getStatements(subj, pred, obj, includeInferred, contexts); - // NOTE: Iterations.stream should close RepositoryResult as long as our caller closes the stream - stream = Iterations.stream(statements).map(rdf4jTermFactory::asQuad); - } finally { - if (stream == null) { - // Some exception before we made the stream, close connection here - conn.close(); - } - } - // Make sure the RepositoryConnection is closed - return stream.onClose(conn::close); - - } - - - @Override - public ClosableIterable<Quad> iterate() throws ConcurrentModificationException, IllegalStateException { - return iterate(null, null, null, null); - } - - @Override - public ClosableIterable<Quad> iterate(Optional<BlankNodeOrIRI> graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) - throws ConcurrentModificationException, IllegalStateException { - Resource[] contexts = asContexts(graphName); - Resource subj = (Resource) rdf4jTermFactory.asValue(subject); - org.eclipse.rdf4j.model.IRI pred = (org.eclipse.rdf4j.model.IRI) rdf4jTermFactory.asValue(predicate); - Value obj = rdf4jTermFactory.asValue(object); - return new ConvertedStatements<Quad>(this::getRepositoryConnection, - rdf4jTermFactory::asQuad, subj, pred, obj, contexts); - } - - @Override - protected RDF4JQuad asTripleLike(Statement s) { - return rdf4jTermFactory.asQuad(s); - } - - @Override - public Graph getGraph() { - // default context only - // NOTE: We carry over the 'salt' as the graph's BlankNode should be equal to our BlankNodes - return new RepositoryGraphImpl(repository, salt, false, includeInferred, (Resource)null); - } - - @Override - public Optional<Graph> getGraph(BlankNodeOrIRI graphName) { - // NOTE: May be null to indicate default context - Resource context = (Resource) rdf4jTermFactory.asValue(graphName); - // NOTE: We carry over the 'salt' as the graph's BlankNode should be equal to our BlankNodes - return Optional.of(new RepositoryGraphImpl(repository, salt, false, includeInferred, context)); - } - - @Override - public Stream<BlankNodeOrIRI> getGraphNames() { - // FIXME: Will the below close the connection before the stream has been consumed outside? - try (RepositoryConnection conn = getRepositoryConnection()) { - RepositoryResult<Resource> contexts = conn.getContextIDs(); - // NOTE: connection will be closed outside by the Iterations.stream() - return Iterations.stream(contexts).map(g -> (BlankNodeOrIRI) rdf4jTermFactory.asRDFTerm(g)); - } - } + RepositoryDatasetImpl(Repository repository, UUID salt, boolean handleInitAndShutdown, boolean includeInferred) { + super(repository, salt, handleInitAndShutdown, includeInferred); + } + + @Override + public void add(Quad tripleLike) { + Statement statement = rdf4jTermFactory.asStatement(tripleLike); + try (RepositoryConnection conn = getRepositoryConnection()) { + conn.add(statement); + conn.commit(); + } + } + + @Override + public boolean contains(Quad tripleLike) { + Statement statement = rdf4jTermFactory.asStatement(tripleLike); + try (RepositoryConnection conn = getRepositoryConnection()) { + return conn.hasStatement(statement, includeInferred); + } + } + + @Override + public void remove(Quad tripleLike) { + Statement statement = rdf4jTermFactory.asStatement(tripleLike); + try (RepositoryConnection conn = getRepositoryConnection()) { + conn.remove(statement); + conn.commit(); + } + } + + @Override + public void clear() { + try (RepositoryConnection conn = getRepositoryConnection()) { + conn.clear(); + conn.commit(); + } + } + + @Override + public long size() { + if (includeInferred) { + // We'll need to count them all + return stream().count(); + } + // else: Ask directly + try (RepositoryConnection conn = getRepositoryConnection()) { + return conn.size(); + } + } + + @Override + public void add(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) { + Resource context = (Resource) rdf4jTermFactory.asValue(graphName); + Resource subj = (Resource) rdf4jTermFactory.asValue(subject); + org.eclipse.rdf4j.model.IRI pred = (org.eclipse.rdf4j.model.IRI) rdf4jTermFactory.asValue(predicate); + Value obj = rdf4jTermFactory.asValue(object); + try (RepositoryConnection conn = getRepositoryConnection()) { + conn.add(subj, pred, obj, context); + conn.commit(); + } + } + + @Override + public boolean contains(Optional<BlankNodeOrIRI> graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) { + Resource subj = (Resource) rdf4jTermFactory.asValue(subject); + org.eclipse.rdf4j.model.IRI pred = (org.eclipse.rdf4j.model.IRI) rdf4jTermFactory.asValue(predicate); + Value obj = rdf4jTermFactory.asValue(object); + Resource[] contexts = asContexts(graphName); + try (RepositoryConnection conn = getRepositoryConnection()) { + return conn.hasStatement(subj, pred, obj, includeInferred, contexts); + } + } + + private Resource[] asContexts(Optional<BlankNodeOrIRI> graphName) { + Resource[] contexts; + if (graphName == null) { + // no contexts == any contexts + contexts = new Resource[0]; + } else { + BlankNodeOrIRI g = graphName.orElse(null); + Resource context = (Resource) rdf4jTermFactory.asValue(g); + contexts = new Resource[] { context }; + } + return contexts; + } + + @Override + public void remove(Optional<BlankNodeOrIRI> graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) { + Resource subj = (Resource) rdf4jTermFactory.asValue(subject); + org.eclipse.rdf4j.model.IRI pred = (org.eclipse.rdf4j.model.IRI) rdf4jTermFactory.asValue(predicate); + Value obj = rdf4jTermFactory.asValue(object); + Resource[] contexts = asContexts(graphName); + + try (RepositoryConnection conn = getRepositoryConnection()) { + conn.remove(subj, pred, obj, contexts); + conn.commit(); + } + } + + @Override + public Stream<RDF4JQuad> stream() { + return stream(null, null, null, null); + } + + @Override + public Stream<RDF4JQuad> stream(Optional<BlankNodeOrIRI> graphName, BlankNodeOrIRI subject, IRI predicate, + RDFTerm object) { + Resource subj = (Resource) rdf4jTermFactory.asValue(subject); + org.eclipse.rdf4j.model.IRI pred = (org.eclipse.rdf4j.model.IRI) rdf4jTermFactory.asValue(predicate); + Value obj = rdf4jTermFactory.asValue(object); + Resource[] contexts = asContexts(graphName); + + // NOTE: We can't do the usual try..with closing of the + // RepositoryConnection here as it will have to be closed outside + // by the user of the returned stream + RepositoryConnection conn = getRepositoryConnection(); + Stream<RDF4JQuad> stream = null; + try { + RepositoryResult<Statement> statements = conn.getStatements(subj, pred, obj, includeInferred, contexts); + // NOTE: Iterations.stream should close RepositoryResult as long as + // our caller closes the stream + stream = Iterations.stream(statements).map(rdf4jTermFactory::asQuad); + } finally { + if (stream == null) { + // Some exception before we made the stream, close connection + // here + conn.close(); + } + } + // Make sure the RepositoryConnection is closed + return stream.onClose(conn::close); + + } + + @Override + public ClosableIterable<Quad> iterate() throws ConcurrentModificationException, IllegalStateException { + return iterate(null, null, null, null); + } + + @Override + public ClosableIterable<Quad> iterate(Optional<BlankNodeOrIRI> graphName, BlankNodeOrIRI subject, IRI predicate, + RDFTerm object) throws ConcurrentModificationException, IllegalStateException { + Resource[] contexts = asContexts(graphName); + Resource subj = (Resource) rdf4jTermFactory.asValue(subject); + org.eclipse.rdf4j.model.IRI pred = (org.eclipse.rdf4j.model.IRI) rdf4jTermFactory.asValue(predicate); + Value obj = rdf4jTermFactory.asValue(object); + return new ConvertedStatements<Quad>(this::getRepositoryConnection, rdf4jTermFactory::asQuad, subj, pred, obj, + contexts); + } + + @Override + protected RDF4JQuad asTripleLike(Statement s) { + return rdf4jTermFactory.asQuad(s); + } + + @Override + public Graph getGraph() { + // default context only + // NOTE: We carry over the 'salt' as the graph's BlankNode should be + // equal to our BlankNodes + return new RepositoryGraphImpl(repository, salt, false, includeInferred, (Resource) null); + } + + @Override + public Optional<Graph> getGraph(BlankNodeOrIRI graphName) { + // NOTE: May be null to indicate default context + Resource context = (Resource) rdf4jTermFactory.asValue(graphName); + // NOTE: We carry over the 'salt' as the graph's BlankNode should be + // equal to our BlankNodes + return Optional.of(new RepositoryGraphImpl(repository, salt, false, includeInferred, context)); + } + + @Override + public Stream<BlankNodeOrIRI> getGraphNames() { + // FIXME: Will the below close the connection before the stream has been + // consumed outside? + try (RepositoryConnection conn = getRepositoryConnection()) { + RepositoryResult<Resource> contexts = conn.getContextIDs(); + // NOTE: connection will be closed outside by the + // Iterations.stream() + return Iterations.stream(contexts).map(g -> (BlankNodeOrIRI) rdf4jTermFactory.asRDFTerm(g)); + } + } } http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/413dd09a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryGraphImpl.java ---------------------------------------------------------------------- diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryGraphImpl.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryGraphImpl.java index 55b909e..ca07f9e 100644 --- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryGraphImpl.java +++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/RepositoryGraphImpl.java @@ -43,152 +43,153 @@ import org.eclipse.rdf4j.repository.RepositoryConnection; import org.eclipse.rdf4j.repository.RepositoryResult; class RepositoryGraphImpl extends AbstractRepositoryGraphLike<Triple> implements Graph, RDF4JGraph { - - private final Resource[] contextMask; - - RepositoryGraphImpl(Repository repository, UUID salt, boolean handleInitAndShutdown, boolean includeInferred, Resource... contextMask) { - super(repository, salt, handleInitAndShutdown, includeInferred); - this.contextMask = Objects.requireNonNull(contextMask); - } - - - @Override - public void add(Triple tripleLike) { - Statement statement = rdf4jTermFactory.asStatement(tripleLike); - try (RepositoryConnection conn = getRepositoryConnection()) { - conn.add(statement, contextMask); - conn.commit(); - } - } - - - @Override - public boolean contains(Triple tripleLike) { - Statement statement = rdf4jTermFactory.asStatement(tripleLike); - try (RepositoryConnection conn = getRepositoryConnection()) { - return conn.hasStatement(statement, includeInferred, contextMask); - } - } - - @Override - public void remove(Triple tripleLike) { - Statement statement = rdf4jTermFactory.asStatement(tripleLike); - try (RepositoryConnection conn = getRepositoryConnection()) { - conn.remove(statement, contextMask); - conn.commit(); - } - } - - @Override - public void clear() { - try (RepositoryConnection conn = getRepositoryConnection()) { - conn.clear(contextMask); - conn.commit(); - } - } - - @Override - public long size() { - if (!includeInferred && contextMask.length == 0) { - try (RepositoryConnection conn = getRepositoryConnection()) { - return conn.size(); - } - } else { - try (Stream<RDF4JTriple> stream = stream()) { - return stream.count(); - } - } - } - - @Override - public void add(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) { - Resource subj = (Resource) rdf4jTermFactory.asValue(subject); - org.eclipse.rdf4j.model.IRI pred = (org.eclipse.rdf4j.model.IRI) rdf4jTermFactory.asValue(predicate); - Value obj = rdf4jTermFactory.asValue(object); - try (RepositoryConnection conn = getRepositoryConnection()) { - conn.add(subj, pred, obj, contextMask); - conn.commit(); - } - } - - @Override - public boolean contains(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) { - Resource subj = (Resource) rdf4jTermFactory.asValue(subject); - org.eclipse.rdf4j.model.IRI pred = (org.eclipse.rdf4j.model.IRI) rdf4jTermFactory.asValue(predicate); - Value obj = rdf4jTermFactory.asValue(object); - try (RepositoryConnection conn = getRepositoryConnection()) { - return conn.hasStatement(subj, pred, obj, includeInferred, contextMask); - } - } - - @Override - public void remove(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) { - Resource subj = (Resource) rdf4jTermFactory.asValue(subject); - org.eclipse.rdf4j.model.IRI pred = (org.eclipse.rdf4j.model.IRI) rdf4jTermFactory.asValue(predicate); - Value obj = rdf4jTermFactory.asValue(object); - try (RepositoryConnection conn = getRepositoryConnection()) { - conn.remove(subj, pred, obj, contextMask); - conn.commit(); - } - } - - @Override - public ClosableIterable<Triple> iterate() throws ConcurrentModificationException, IllegalStateException { - return iterate(null, null, null); - } - - @Override - public ClosableIterable<Triple> iterate(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) - throws ConcurrentModificationException, IllegalStateException { - Resource subj = (Resource) rdf4jTermFactory.asValue(subject); - org.eclipse.rdf4j.model.IRI pred = (org.eclipse.rdf4j.model.IRI) rdf4jTermFactory.asValue(predicate); - Value obj = rdf4jTermFactory.asValue(object); - return new ConvertedStatements<Triple>(this::getRepositoryConnection, rdf4jTermFactory::asTriple, - subj, pred, obj, contextMask); - } - - @Override - public Stream<RDF4JTriple> stream() { - return stream(null, null, null); - } - - @Override - public Stream<RDF4JTriple> stream(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) { - Resource subj = (Resource) rdf4jTermFactory.asValue(subject); - org.eclipse.rdf4j.model.IRI pred = (org.eclipse.rdf4j.model.IRI) rdf4jTermFactory.asValue(predicate); - Value obj = rdf4jTermFactory.asValue(object); - - // NOTE: We can't do the usual try..with closing of the - // RepositoryConnection here as it will have to be closed outside - // by the user of the returned stream - RepositoryConnection conn = getRepositoryConnection(); - Stream<RDF4JTriple> stream = null; - try { - RepositoryResult<Statement> statements = conn.getStatements(subj, pred, obj, includeInferred, contextMask); - // NOTE: Iterations.stream should close RepositoryResult as long as our caller closes the stream - stream = Iterations.stream(statements).map(this::asTripleLike); - } finally { - if (stream == null) { - // Some exception before we made the stream, close connection here - conn.close(); - } - } - // Make sure the RepositoryConnection is closed - return stream.onClose(conn::close); - } - - @Override - protected RDF4JTriple asTripleLike(Statement statement) { - return rdf4jTermFactory.asTriple(statement); - } - - @Override - public Set<RDF4JBlankNodeOrIRI> getContextMask() { - Set<RDF4JBlankNodeOrIRI> mask = new HashSet<>(); - for (Resource s : contextMask) { - mask.add((RDF4JBlankNodeOrIRI) rdf4jTermFactory.asRDFTerm(s)); - } - return Collections.unmodifiableSet(mask); - } - + + private final Resource[] contextMask; + + RepositoryGraphImpl(Repository repository, UUID salt, boolean handleInitAndShutdown, boolean includeInferred, + Resource... contextMask) { + super(repository, salt, handleInitAndShutdown, includeInferred); + this.contextMask = Objects.requireNonNull(contextMask); + } + + @Override + public void add(Triple tripleLike) { + Statement statement = rdf4jTermFactory.asStatement(tripleLike); + try (RepositoryConnection conn = getRepositoryConnection()) { + conn.add(statement, contextMask); + conn.commit(); + } + } + + @Override + public boolean contains(Triple tripleLike) { + Statement statement = rdf4jTermFactory.asStatement(tripleLike); + try (RepositoryConnection conn = getRepositoryConnection()) { + return conn.hasStatement(statement, includeInferred, contextMask); + } + } + + @Override + public void remove(Triple tripleLike) { + Statement statement = rdf4jTermFactory.asStatement(tripleLike); + try (RepositoryConnection conn = getRepositoryConnection()) { + conn.remove(statement, contextMask); + conn.commit(); + } + } + + @Override + public void clear() { + try (RepositoryConnection conn = getRepositoryConnection()) { + conn.clear(contextMask); + conn.commit(); + } + } + + @Override + public long size() { + if (!includeInferred && contextMask.length == 0) { + try (RepositoryConnection conn = getRepositoryConnection()) { + return conn.size(); + } + } else { + try (Stream<RDF4JTriple> stream = stream()) { + return stream.count(); + } + } + } + + @Override + public void add(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) { + Resource subj = (Resource) rdf4jTermFactory.asValue(subject); + org.eclipse.rdf4j.model.IRI pred = (org.eclipse.rdf4j.model.IRI) rdf4jTermFactory.asValue(predicate); + Value obj = rdf4jTermFactory.asValue(object); + try (RepositoryConnection conn = getRepositoryConnection()) { + conn.add(subj, pred, obj, contextMask); + conn.commit(); + } + } + + @Override + public boolean contains(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) { + Resource subj = (Resource) rdf4jTermFactory.asValue(subject); + org.eclipse.rdf4j.model.IRI pred = (org.eclipse.rdf4j.model.IRI) rdf4jTermFactory.asValue(predicate); + Value obj = rdf4jTermFactory.asValue(object); + try (RepositoryConnection conn = getRepositoryConnection()) { + return conn.hasStatement(subj, pred, obj, includeInferred, contextMask); + } + } + + @Override + public void remove(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) { + Resource subj = (Resource) rdf4jTermFactory.asValue(subject); + org.eclipse.rdf4j.model.IRI pred = (org.eclipse.rdf4j.model.IRI) rdf4jTermFactory.asValue(predicate); + Value obj = rdf4jTermFactory.asValue(object); + try (RepositoryConnection conn = getRepositoryConnection()) { + conn.remove(subj, pred, obj, contextMask); + conn.commit(); + } + } + + @Override + public ClosableIterable<Triple> iterate() throws ConcurrentModificationException, IllegalStateException { + return iterate(null, null, null); + } + + @Override + public ClosableIterable<Triple> iterate(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) + throws ConcurrentModificationException, IllegalStateException { + Resource subj = (Resource) rdf4jTermFactory.asValue(subject); + org.eclipse.rdf4j.model.IRI pred = (org.eclipse.rdf4j.model.IRI) rdf4jTermFactory.asValue(predicate); + Value obj = rdf4jTermFactory.asValue(object); + return new ConvertedStatements<Triple>(this::getRepositoryConnection, rdf4jTermFactory::asTriple, subj, pred, + obj, contextMask); + } + + @Override + public Stream<RDF4JTriple> stream() { + return stream(null, null, null); + } + + @Override + public Stream<RDF4JTriple> stream(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) { + Resource subj = (Resource) rdf4jTermFactory.asValue(subject); + org.eclipse.rdf4j.model.IRI pred = (org.eclipse.rdf4j.model.IRI) rdf4jTermFactory.asValue(predicate); + Value obj = rdf4jTermFactory.asValue(object); + + // NOTE: We can't do the usual try..with closing of the + // RepositoryConnection here as it will have to be closed outside + // by the user of the returned stream + RepositoryConnection conn = getRepositoryConnection(); + Stream<RDF4JTriple> stream = null; + try { + RepositoryResult<Statement> statements = conn.getStatements(subj, pred, obj, includeInferred, contextMask); + // NOTE: Iterations.stream should close RepositoryResult as long as + // our caller closes the stream + stream = Iterations.stream(statements).map(this::asTripleLike); + } finally { + if (stream == null) { + // Some exception before we made the stream, close connection + // here + conn.close(); + } + } + // Make sure the RepositoryConnection is closed + return stream.onClose(conn::close); + } + + @Override + protected RDF4JTriple asTripleLike(Statement statement) { + return rdf4jTermFactory.asTriple(statement); + } + + @Override + public Set<RDF4JBlankNodeOrIRI> getContextMask() { + Set<RDF4JBlankNodeOrIRI> mask = new HashSet<>(); + for (Resource s : contextMask) { + mask.add((RDF4JBlankNodeOrIRI) rdf4jTermFactory.asRDFTerm(s)); + } + return Collections.unmodifiableSet(mask); + } + } http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/413dd09a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/TripleImpl.java ---------------------------------------------------------------------- diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/TripleImpl.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/TripleImpl.java index 0526c77..4ed3946 100644 --- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/TripleImpl.java +++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/impl/TripleImpl.java @@ -28,52 +28,51 @@ import org.apache.commons.rdf.rdf4j.RDF4JTriple; import org.eclipse.rdf4j.model.Statement; final class TripleImpl implements Triple, RDF4JTriple { - private UUID salt; - private final Statement statement; - - TripleImpl(Statement statement, UUID salt) { - this.statement = statement; - this.salt = salt; - } - - @Override - public Statement asStatement() { - return statement; - } - - @Override - public boolean equals(Object obj) { - if (obj instanceof Triple) { - Triple triple = (Triple) obj; - return getSubject().equals(triple.getSubject()) && - getPredicate().equals(triple.getPredicate()) && - getObject().equals(triple.getObject()); - } - return false; - } - - @Override - public RDFTerm getObject() { - return RDF4J.asRDFTerm(statement.getObject(), salt); - } - - @Override - public org.apache.commons.rdf.api.IRI getPredicate() { - return (org.apache.commons.rdf.api.IRI) RDF4J.asRDFTerm(statement.getPredicate(), null); - } - - @Override - public BlankNodeOrIRI getSubject() { - return (BlankNodeOrIRI) RDF4J.asRDFTerm(statement.getSubject(), salt); - } - - @Override - public int hashCode() { - return Objects.hash(getSubject(), getPredicate(), getObject()); - } - - @Override - public String toString() { - return statement.toString(); - } + private UUID salt; + private final Statement statement; + + TripleImpl(Statement statement, UUID salt) { + this.statement = statement; + this.salt = salt; + } + + @Override + public Statement asStatement() { + return statement; + } + + @Override + public boolean equals(Object obj) { + if (obj instanceof Triple) { + Triple triple = (Triple) obj; + return getSubject().equals(triple.getSubject()) && getPredicate().equals(triple.getPredicate()) + && getObject().equals(triple.getObject()); + } + return false; + } + + @Override + public RDFTerm getObject() { + return RDF4J.asRDFTerm(statement.getObject(), salt); + } + + @Override + public org.apache.commons.rdf.api.IRI getPredicate() { + return (org.apache.commons.rdf.api.IRI) RDF4J.asRDFTerm(statement.getPredicate(), null); + } + + @Override + public BlankNodeOrIRI getSubject() { + return (BlankNodeOrIRI) RDF4J.asRDFTerm(statement.getSubject(), salt); + } + + @Override + public int hashCode() { + return Objects.hash(getSubject(), getPredicate(), getObject()); + } + + @Override + public String toString() { + return statement.toString(); + } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/413dd09a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/package-info.java ---------------------------------------------------------------------- diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/package-info.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/package-info.java index f4bfb7a..e40e985 100644 --- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/package-info.java +++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/package-info.java @@ -18,39 +18,33 @@ /** * Commons RDF integration with <a href="http://rdf4j.org/">RDF4J</a>. * <p> - * Use the {@link RDF4J} to convert - * between Commons RDF and RDF4J types, for instance - * {@link RDF4J#asQuad(org.eclipse.rdf4j.model.Statement)} - * converts a RDF4J {@link org.eclipse.rdf4j.model.Statement} to a + * Use the {@link RDF4J} to convert between Commons RDF and RDF4J types, for + * instance {@link RDF4J#asQuad(org.eclipse.rdf4j.model.Statement)} converts a + * RDF4J {@link org.eclipse.rdf4j.model.Statement} to a * {@link org.apache.commons.rdf.api.Quad}. Converted RDF terms implement the - * {@link RDF4JTerm} interface, and converted - * statements the {@link RDF4JTripleLike} - * interface, which provide convenience access to the underlying RDF4J - * implementations. + * {@link RDF4JTerm} interface, and converted statements the + * {@link RDF4JTripleLike} interface, which provide convenience access to the + * underlying RDF4J implementations. * <p> * RDF4J {@link org.eclipse.rdf4j.model.Model}s and * {@link org.eclipse.rdf4j.repository.Repository} instances can be adapted to - * Commons RDF {@link Graph} and - * {@link Dataset}, e.g. using - * {@link RDF4J#asGraph(org.eclipse.rdf4j.model.Model)} - * or + * Commons RDF {@link Graph} and {@link Dataset}, e.g. using + * {@link RDF4J#asGraph(org.eclipse.rdf4j.model.Model)} or * {@link RDF4J#asDataset(org.eclipse.rdf4j.repository.Repository, RDF4J.Option...)} * The returned adapted graph/dataset is directly mapped, so changes are * propagated both ways. For convenience, the marker interface - * {@link RDF4JGraph} and - * {@link RDF4JDataset} provide access to the - * underlying RDF4J implementations. + * {@link RDF4JGraph} and {@link RDF4JDataset} provide access to the underlying + * RDF4J implementations. * <p> - * The {@link RDF4JParser} can be used to - * parse RDF files using RDF4j. It should be most efficient if used with - * {@link RDF4JParser#target(Dataset)} - * and an adapted {@link RDF4JDataset}, or - * {@link RDF4JParser#target(Graph)} - * and a an adapted {@link RDF4JGraph} + * The {@link RDF4JParser} can be used to parse RDF files using RDF4j. It should + * be most efficient if used with {@link RDF4JParser#target(Dataset)} and an + * adapted {@link RDF4JDataset}, or {@link RDF4JParser#target(Graph)} and a an + * adapted {@link RDF4JGraph} * * */ package org.apache.commons.rdf.rdf4j; + // Imports for Javadoc, do not remove import org.apache.commons.rdf.api.Dataset; import org.apache.commons.rdf.api.Graph; http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/413dd09a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/BlankNodeTest.java ---------------------------------------------------------------------- diff --git a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/BlankNodeTest.java b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/BlankNodeTest.java index d31c24d..f068040 100644 --- a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/BlankNodeTest.java +++ b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/BlankNodeTest.java @@ -22,16 +22,16 @@ import org.apache.commons.rdf.api.BlankNode; public class BlankNodeTest extends AbstractBlankNodeTest { - RDF4J factory = new RDF4J(); - - @Override - protected BlankNode getBlankNode() { - return factory.createBlankNode(); - } + RDF4J factory = new RDF4J(); - @Override - protected BlankNode getBlankNode(String identifier) { - return factory.createBlankNode(identifier); - } + @Override + protected BlankNode getBlankNode() { + return factory.createBlankNode(); + } + + @Override + protected BlankNode getBlankNode(String identifier) { + return factory.createBlankNode(identifier); + } } http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/413dd09a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/GraphTest.java ---------------------------------------------------------------------- diff --git a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/GraphTest.java b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/GraphTest.java index 4ad8969..81c77da 100644 --- a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/GraphTest.java +++ b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/GraphTest.java @@ -20,11 +20,11 @@ package org.apache.commons.rdf.rdf4j; import org.apache.commons.rdf.api.AbstractGraphTest; import org.apache.commons.rdf.api.RDF; -public class GraphTest extends AbstractGraphTest{ +public class GraphTest extends AbstractGraphTest { - @Override - public RDF createFactory() { - return new RDF4J(); - } + @Override + public RDF createFactory() { + return new RDF4J(); + } } http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/413dd09a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryGraphTest.java ---------------------------------------------------------------------- diff --git a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryGraphTest.java b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryGraphTest.java index ab7a459..9d9c802 100644 --- a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryGraphTest.java +++ b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryGraphTest.java @@ -33,57 +33,57 @@ import org.eclipse.rdf4j.sail.memory.model.MemValueFactory; public class MemoryGraphTest extends AbstractGraphTest { - public static final class MemoryStoreRDF implements RDF { - - RDF4J rdf4jFactory = new RDF4J(new MemValueFactory()); - - public RDF4JBlankNode createBlankNode() { - return rdf4jFactory.createBlankNode(); - } - - public RDF4JBlankNode createBlankNode(String name) { - return rdf4jFactory.createBlankNode(name); - } - - public Dataset createDataset() { - return rdf4jFactory.createDataset(); - } - - public RDF4JIRI createIRI(String iri) throws IllegalArgumentException, UnsupportedOperationException { - return rdf4jFactory.createIRI(iri); - } - - public RDF4JLiteral createLiteral(String lexicalForm) { - return rdf4jFactory.createLiteral(lexicalForm); - } - - public Literal createLiteral(String lexicalForm, IRI dataType) { - return rdf4jFactory.createLiteral(lexicalForm, dataType); - } - - public Literal createLiteral(String lexicalForm, String languageTag) { - return rdf4jFactory.createLiteral(lexicalForm, languageTag); - } - - public RDF4JTriple createTriple(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) { - return rdf4jFactory.createTriple(subject, predicate, object); - } - - public Quad createQuad(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) { - return rdf4jFactory.createQuad(graphName, subject, predicate, object); - } - - public RDF4JGraph createGraph() { - Sail sail = new MemoryStore(); - Repository repository = new SailRepository(sail); - repository.initialize(); - return rdf4jFactory.asGraph(repository); - } - } - - @Override - public RDF createFactory() { - return new MemoryStoreRDF(); - } + public static final class MemoryStoreRDF implements RDF { + + RDF4J rdf4jFactory = new RDF4J(new MemValueFactory()); + + public RDF4JBlankNode createBlankNode() { + return rdf4jFactory.createBlankNode(); + } + + public RDF4JBlankNode createBlankNode(String name) { + return rdf4jFactory.createBlankNode(name); + } + + public Dataset createDataset() { + return rdf4jFactory.createDataset(); + } + + public RDF4JIRI createIRI(String iri) throws IllegalArgumentException, UnsupportedOperationException { + return rdf4jFactory.createIRI(iri); + } + + public RDF4JLiteral createLiteral(String lexicalForm) { + return rdf4jFactory.createLiteral(lexicalForm); + } + + public Literal createLiteral(String lexicalForm, IRI dataType) { + return rdf4jFactory.createLiteral(lexicalForm, dataType); + } + + public Literal createLiteral(String lexicalForm, String languageTag) { + return rdf4jFactory.createLiteral(lexicalForm, languageTag); + } + + public RDF4JTriple createTriple(BlankNodeOrIRI subject, IRI predicate, RDFTerm object) { + return rdf4jFactory.createTriple(subject, predicate, object); + } + + public Quad createQuad(BlankNodeOrIRI graphName, BlankNodeOrIRI subject, IRI predicate, RDFTerm object) { + return rdf4jFactory.createQuad(graphName, subject, predicate, object); + } + + public RDF4JGraph createGraph() { + Sail sail = new MemoryStore(); + Repository repository = new SailRepository(sail); + repository.initialize(); + return rdf4jFactory.asGraph(repository); + } + } + + @Override + public RDF createFactory() { + return new MemoryStoreRDF(); + } } http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/413dd09a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryStoreRDFTest.java ---------------------------------------------------------------------- diff --git a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryStoreRDFTest.java b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryStoreRDFTest.java index fd4efcb..5954d13 100644 --- a/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryStoreRDFTest.java +++ b/rdf4j/src/test/java/org/apache/commons/rdf/rdf4j/MemoryStoreRDFTest.java @@ -23,15 +23,15 @@ import org.junit.Assume; public class MemoryStoreRDFTest extends AbstractRDFTest { - @Override - public RDF createFactory() { - return new MemoryGraphTest.MemoryStoreRDF(); - } - - @Override - public void testInvalidLiteralLang() throws Exception { - Assume.assumeTrue("RDF4J doesn't check Lang strings",false); - super.testInvalidLiteralLang(); - } - + @Override + public RDF createFactory() { + return new MemoryGraphTest.MemoryStoreRDF(); + } + + @Override + public void testInvalidLiteralLang() throws Exception { + Assume.assumeTrue("RDF4J doesn't check Lang strings", false); + super.testInvalidLiteralLang(); + } + }