You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commonsrdf.apache.org by st...@apache.org on 2016/10/07 15:01:43 UTC
[40/50] incubator-commonsrdf git commit: Option... instead of boolean
parameters
Option... instead of boolean parameters
Project: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/commit/7f4fe0b0
Tree: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/tree/7f4fe0b0
Diff: http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/diff/7f4fe0b0
Branch: refs/heads/master
Commit: 7f4fe0b04b3c56c4c205fbc55a9e1045ecce0d36
Parents: 756977a
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri Oct 7 09:12:37 2016 +0100
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri Oct 7 09:12:37 2016 +0100
----------------------------------------------------------------------
.../commons/rdf/rdf4j/RDF4JTermFactory.java | 96 +++++++++-----------
1 file changed, 45 insertions(+), 51 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-commonsrdf/blob/7f4fe0b0/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JTermFactory.java
----------------------------------------------------------------------
diff --git a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JTermFactory.java b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JTermFactory.java
index d35ed47..634648a 100644
--- a/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JTermFactory.java
+++ b/rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4JTermFactory.java
@@ -17,6 +17,8 @@
*/
package org.apache.commons.rdf.rdf4j;
+import java.util.Arrays;
+import java.util.EnumSet;
import java.util.Objects;
import java.util.Set;
import java.util.UUID;
@@ -102,6 +104,19 @@ public final class RDF4JTermFactory implements RDFTermFactory {
private static InternalRDF4JFactory rdf4j = new InternalRDF4JFactory() {
};
+ public enum Option {
+ /**
+ * The Graph/Dataset should include any inferred statements
+ */
+ includeInferred,
+ /**
+ * The graph/dataset should handle {@link Repository#initialize()} (if
+ * needed) and {@link Repository#shutDown()} on {@link Graph#close()} /
+ * {@link Dataset#close()}.
+ */
+ handleInitAndShutdown
+ }
+
/**
* Adapt a RDF4J {@link Value} as a Commons RDF {@link RDFTerm}.
* <p>
@@ -266,34 +281,18 @@ public final class RDF4JTermFactory implements RDFTermFactory {
* {@link RepositoryConnection}s, including
* {@link RDF4JDataset#iterate()},
* {@link RDF4JDataset#stream()} and {@link RDF4JDataset#getGraphNames()}.
- *
- * @param repository
- * RDF4J {@link Repository} to connect to.
- * @return A {@link Dataset} backed by the RDF4J repository.
- */
- public RDF4JDataset asRDFTermDataset(Repository repository) {
- return rdf4j.createRepositoryDatasetImpl(repository, false, false);
- }
-
- /**
- * Adapt an RDF4J {@link Repository} as a Commons RDF {@link Dataset}.
- * <p>
- * Changes to the dataset are reflected in the repository, and vice versa.
- * <p>
- * <strong>Note:</strong> Some operations on the {@link RDF4JDataset}
- * requires the use of try-with-resources to close underlying
- * {@link RepositoryConnection}s, including
- * {@link RDF4JDataset#iterate()},
- * {@link RDF4JDataset#stream()} and {@link RDF4JDataset#getGraphNames()}.
*
* @param repository
* RDF4J {@link Repository} to connect to.
- * @param includeInferred
- * If true, any inferred quads are included in the dataset
+ * @param options
+ * Zero or more {@link Option}
* @return A {@link Dataset} backed by the RDF4J repository.
*/
- public RDF4JDataset asRDFTermDataset(Repository repository, boolean includeInferred) {
- return rdf4j.createRepositoryDatasetImpl(repository, false, includeInferred);
+ public RDF4JDataset asRDFTermDataset(Repository repository, Option... options) {
+ EnumSet<Option> opts = optionSet(options);
+ return rdf4j.createRepositoryDatasetImpl(repository,
+ opts.contains(Option.handleInitAndShutdown),
+ opts.contains(Option.includeInferred));
}
/**
@@ -325,10 +324,16 @@ public final class RDF4JTermFactory implements RDFTermFactory {
*
* @param repository
* RDF4J {@link Repository} to connect to.
+ * @param options
+ * Zero or more {@link Option}
* @return A {@link Graph} backed by the RDF4J repository.
*/
- public RDF4JGraph asRDFTermGraph(Repository repository) {
- return rdf4j.createRepositoryGraphImpl(repository, false, false);
+ public RDF4JGraph asRDFTermGraph(Repository repository, Option... options) {
+ EnumSet<Option> opts = optionSet(options);
+ return rdf4j.createRepositoryGraphImpl(repository,
+ opts.contains(Option.handleInitAndShutdown),
+ opts.contains(Option.includeInferred),
+ new Resource[0]);
}
/**
@@ -368,36 +373,19 @@ public final class RDF4JTermFactory implements RDFTermFactory {
* names to use as a context. The set may include the value
* <code>null</code> to indicate the default graph. The empty set
* indicates any context, e.g. the <em>union graph</em>.
- *
+ * @param option
+ * Zero or more {@link Option}s
* @return A {@link Graph} backed by the RDF4J repository.
*/
- public RDF4JGraph asRDFTermGraph(Repository repository, Set<? extends BlankNodeOrIRI> contexts) {
+ public RDF4JGraph asRDFTermGraph(Repository repository, Set<? extends BlankNodeOrIRI> contexts,
+ Option... option) {
+ EnumSet<Option> opts = optionSet(option);
/** NOTE: asValue() deliberately CAN handle <code>null</code> */
Resource[] resources = contexts.stream().map(g -> (Resource) asValue(g)).toArray(Resource[]::new);
- return rdf4j.createRepositoryGraphImpl(Objects.requireNonNull(repository), false, true, resources);
- }
-
- /**
- * Adapt an RDF4J {@link Repository} as a Commons RDF {@link Graph}.
- * <p>
- * The graph will include triples in any contexts (e.g. the union graph).
- * <p>
- * Changes to the graph are reflected in the repository, and vice versa.
- * <p>
- * <strong>Note:</strong> Some operations on the {@link RDF4JGraph}
- * requires the use of try-with-resources to close underlying
- * {@link RepositoryConnection}s, including
- * {@link RDF4JGraph#iterate()} and
- * {@link RDF4JGraph#stream()}.
- *
- * @param repository
- * RDF4J {@link Repository} to connect to.
- * @param includeInferred
- * If true, any inferred triples are included in the graph
- * @return A {@link Graph} backed by the RDF4J repository.
- */
- public RDF4JGraph asRDFTermGraph(Repository repository, boolean includeInferred) {
- return rdf4j.createRepositoryGraphImpl(repository, false, includeInferred);
+ return rdf4j.createRepositoryGraphImpl(Objects.requireNonNull(repository),
+ opts.contains(Option.handleInitAndShutdown),
+ opts.contains(Option.includeInferred),
+ resources);
}
/**
@@ -598,4 +586,10 @@ public final class RDF4JTermFactory implements RDFTermFactory {
return valueFactory;
}
+ private EnumSet<Option> optionSet(Option... options) {
+ EnumSet<Option> opts = EnumSet.noneOf(Option.class);
+ opts.addAll(Arrays.asList(options));
+ return opts;
+ }
+
}