This is an automated email from the ASF dual-hosted git repository.

andy pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/jena.git


The following commit(s) were added to refs/heads/main by this push:
     new 171a7dc492 GH-1557: Added getters to DynamicDataset to make the 
original construction parameters accessible
     new 5427fb3691 Merge pull request #1558 from Aklakan/gh-1557
171a7dc492 is described below

commit 171a7dc4925e472bd78bf401dc311bbee3a22580
Author: Claus Stadler <[email protected]>
AuthorDate: Thu Sep 29 01:55:51 2022 +0200

    GH-1557: Added getters to DynamicDataset to make the original construction 
parameters accessible
---
 .../java/org/apache/jena/sparql/ARQConstants.java  |  4 +--
 .../apache/jena/sparql/core/DynamicDatasets.java   | 38 ++++++++++++++++++----
 2 files changed, 33 insertions(+), 9 deletions(-)

diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/ARQConstants.java 
b/jena-arq/src/main/java/org/apache/jena/sparql/ARQConstants.java
index d534025682..f548ed4384 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/ARQConstants.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/ARQConstants.java
@@ -257,10 +257,10 @@ public class ARQConstants
     /** Context key for the execution-scoped bNode variable generator */
     public static final Symbol sysVarAllocAnon          = 
Symbol.create(systemVarNS+"namedVarAnon") ;
 
-    /** Graphs forming the default graph (List&lt;String&gt;) (Dynamic 
dataset) */
+    /** Graphs forming the default graph (Collection&lt;Node&gt;) (Dynamic 
dataset) */
     public static final Symbol symDatasetDefaultGraphs  = 
SystemARQ.allocSymbol("datasetDefaultGraphs") ;
 
-    /** Graphs forming the named graphs (List&lt;String&gt;) (Dynamic dataset) 
*/
+    /** Graphs forming the named graphs (Collection&lt;Node&gt;) (Dynamic 
dataset) */
     public static final Symbol symDatasetNamedGraphs    = 
SystemARQ.allocSymbol("datasetNamedGraphs") ;
 
     /** Context symbol for a supplied {@link Prologue} (used for text out of 
result sets). */
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/core/DynamicDatasets.java 
b/jena-arq/src/main/java/org/apache/jena/sparql/core/DynamicDatasets.java
index 21c48c506f..3a226bc485 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/DynamicDatasets.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/DynamicDatasets.java
@@ -21,6 +21,7 @@ package org.apache.jena.sparql.core;
 import static org.apache.jena.sparql.util.NodeUtils.convertToSetNodes;
 
 import java.util.Collection;
+import java.util.Objects;
 import java.util.Set;
 
 import org.apache.jena.graph.Graph ;
@@ -57,9 +58,9 @@ public class DynamicDatasets
     {
         if ( description == null )
             return dsg ;
-       //An empty description means leave the dataset as-is
-       if (description.isEmpty() )
-               return dsg;
+        //An empty description means leave the dataset as-is
+        if (description.isEmpty() )
+            return dsg;
 
         Set<Node> defaultGraphs = 
convertToSetNodes(description.getDefaultGraphURIs()) ;
         Set<Node> namedGraphs = 
convertToSetNodes(description.getNamedGraphURIs()) ;
@@ -112,11 +113,34 @@ public class DynamicDatasets
     }
 
     public static class DynamicDatasetGraph extends DatasetGraphReadOnly 
implements DatasetGraphWrapperView {
-        private final DatasetGraph projected;
+        private final DatasetGraph original;
 
-        public DynamicDatasetGraph(DatasetGraph viewDSG, DatasetGraph baseDSG) 
{
-            super(viewDSG, baseDSG.getContext().copy());
-            this.projected = baseDSG;
+        public DynamicDatasetGraph(DatasetGraph viewDSG, DatasetGraph 
originalDSG) {
+            super(viewDSG, originalDSG.getContext().copy());
+            this.original = Objects.requireNonNull(originalDSG);
+        }
+
+        /** Returns the original dataset graph this DynamicDatasetGraph is 
based on. Never null. */
+        public DatasetGraph getOriginal() {
+            return original;
+        }
+
+        /**
+         * Returns the collection of default graphs this DynamicDatasetGraph 
is based on.
+         *
+         * @implNote This method returns the context's value for {@link 
ARQConstants#symDatasetDefaultGraphs}.
+         */
+        public Collection<Node> getOriginalDefaultGraphs() {
+            return getContext().get(ARQConstants.symDatasetDefaultGraphs);
+        }
+
+        /**
+         * Returns the collection of named graphs this DynamicDatasetGraph is 
based on.
+         *
+         * @implNote This method returns the context's value for {@link 
ARQConstants#symDatasetNamedGraphs}.
+         */
+        public Collection<Node> getOriginalNamedGraphs() {
+            return getContext().get(ARQConstants.symDatasetNamedGraphs);
         }
     }
 }

Reply via email to