[Mulgara-svn] r839 - branches/mgr-61-sparql/src/jar/tuples/java/org/mulgara/store/tuples
pag at mulgara.org
pag at mulgara.org
Thu Apr 24 06:45:57 UTC 2008
Author: pag
Date: 2008-04-23 23:45:56 -0700 (Wed, 23 Apr 2008)
New Revision: 839
Modified:
branches/mgr-61-sparql/src/jar/tuples/java/org/mulgara/store/tuples/FilteredTuples.java
Log:
Made this class a ContextOwner and told the associated Filter to get its context from here.
Modified: branches/mgr-61-sparql/src/jar/tuples/java/org/mulgara/store/tuples/FilteredTuples.java
===================================================================
--- branches/mgr-61-sparql/src/jar/tuples/java/org/mulgara/store/tuples/FilteredTuples.java 2008-04-24 06:24:26 UTC (rev 838)
+++ branches/mgr-61-sparql/src/jar/tuples/java/org/mulgara/store/tuples/FilteredTuples.java 2008-04-24 06:45:56 UTC (rev 839)
@@ -38,6 +38,8 @@
import org.mulgara.query.QueryException;
import org.mulgara.query.TuplesException;
import org.mulgara.query.Variable;
+import org.mulgara.query.filter.Context;
+import org.mulgara.query.filter.ContextOwner;
import org.mulgara.query.filter.Filter;
import org.mulgara.resolver.spi.QueryEvaluationContext;
import org.mulgara.resolver.spi.TuplesContext;
@@ -47,7 +49,7 @@
* Filtering operation. This class wraps another Tuples, removing those elements that don't
* pass the filter.
*/
-public class FilteredTuples extends AbstractTuples {
+public class FilteredTuples extends AbstractTuples implements ContextOwner {
@SuppressWarnings("unused")
private static Logger logger = Logger.getLogger(FilteredTuples.class.getName());
@@ -59,7 +61,7 @@
protected Filter filter;
/** The tuples context */
- protected TuplesContext context;
+ protected Context context;
/**
* Configure a tuples for filtering.
@@ -74,6 +76,7 @@
this.filter = filter;
this.unfiltered = (Tuples)unfiltered.clone();
this.context = new TuplesContext(this.unfiltered, context.getResolverSession());
+ filter.setContextOwner(this);
}
@@ -183,8 +186,28 @@
// Copy mutable fields by value
cloned.unfiltered = (Tuples)unfiltered.clone();
// update the tuples in the context to the new value
- cloned.context.setTuples(cloned.unfiltered);
+ if (context instanceof TuplesContext) {
+ ((TuplesContext)cloned.context).setTuples(cloned.unfiltered);
+ }
return cloned;
}
+
+ /**
+ * Tells a filter what the current context is.
+ * @see org.mulgara.query.filter.ContextOwner#getCurrentContext()
+ */
+ public Context getCurrentContext() {
+ return context;
+ }
+
+
+ /**
+ * Allows the context to be set manually. This is not expected.
+ * @see org.mulgara.query.filter.ContextOwner#setCurrentContext(org.mulgara.query.filter.Context)
+ */
+ public void setCurrentContext(Context context) {
+ this.context = context;
+ }
+
}
More information about the Mulgara-svn
mailing list