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 2012/08/20 23:34:25 UTC
svn commit: r1375233 - in
/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra:
Transformer.java op/OpExt.java
Author: andy
Date: Mon Aug 20 21:34:25 2012
New Revision: 1375233
URL: http://svn.apache.org/viewvc?rev=1375233&view=rev
Log:
Add one-level transform operation to Transformer.
Add apply(Transform) to OpExt (but usually it's a "ARQNotImplemented" exception)
Modified:
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/Transformer.java
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/op/OpExt.java
Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/Transformer.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/Transformer.java?rev=1375233&r1=1375232&r2=1375233&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/Transformer.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/Transformer.java Mon Aug 20 21:34:25 2012
@@ -61,7 +61,6 @@ public class Transformer
return transformSkipService(transform, op, null, null) ;
}
-
/** Transform an algebra expression except skip (leave alone) any OpService nodes */
public static Op transformSkipService(Transform transform, Op op, OpVisitor beforeVisitor, OpVisitor afterVisitor)
{
@@ -82,6 +81,14 @@ public class Transformer
}
}
+ /** Transform an Op - not recursively */
+ public static Op transformOne(Transform transform, Op op)
+ {
+ OpTransformApplyOne visitor = new OpTransformApplyOne(transform) ;
+ op.visit(visitor) ;
+ return visitor.result ;
+ }
+
// To allow subclassing this class, we use a singleton pattern
// and theses protected methods.
protected Op transformation(Transform transform, Op op, OpVisitor beforeVisitor, OpVisitor afterVisitor)
@@ -385,4 +392,35 @@ public class Transformer
public Op transform(OpService opService, Op subOp)
{ return opService ; }
}
+
+ static class OpTransformApplyOne extends OpVisitorByType
+ {
+ private final Transform transform ;
+ Op result ;
+
+ OpTransformApplyOne(Transform transform)
+ {
+ this.transform = transform ;
+ }
+
+ @Override
+ protected void visitN(OpN op)
+ { result = op.apply(transform, op.getElements()) ; }
+
+ @Override
+ protected void visit2(Op2 op)
+ { result = op.apply(transform, op.getLeft(), op.getRight()) ; }
+
+ @Override
+ protected void visit1(Op1 op)
+ { result = op.apply(transform, op.getSubOp()) ; }
+
+ @Override
+ protected void visit0(Op0 op)
+ { result = op.apply(transform) ; }
+
+ @Override
+ protected void visitExt(OpExt op)
+ { op.apply(transform) ; }
+ }
}
Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/op/OpExt.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/op/OpExt.java?rev=1375233&r1=1375232&r2=1375233&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/op/OpExt.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/op/OpExt.java Mon Aug 20 21:34:25 2012
@@ -20,8 +20,10 @@ package com.hp.hpl.jena.sparql.algebra.o
import org.openjena.atlas.io.IndentedWriter ;
+import com.hp.hpl.jena.sparql.ARQNotImplemented ;
import com.hp.hpl.jena.sparql.algebra.Op ;
import com.hp.hpl.jena.sparql.algebra.OpVisitor ;
+import com.hp.hpl.jena.sparql.algebra.Transform ;
import com.hp.hpl.jena.sparql.engine.ExecutionContext ;
import com.hp.hpl.jena.sparql.engine.QueryIterator ;
import com.hp.hpl.jena.sparql.serializer.SerializationContext ;
@@ -81,6 +83,8 @@ public abstract class OpExt extends OpBa
out.ensureStartOfLine() ;
}
+ public Op apply(Transform transform) { throw new ARQNotImplemented("OpExt.appy(Transform)") ; }
+
// /** Return the sub tag - must match the builder */
// public abstract String getSubTag() ;