package org.aksw.jena_sparql_api.algebra.transform; import org.apache.jena.sparql.algebra.Op; import org.apache.jena.sparql.algebra.TransformCopy; import org.apache.jena.sparql.algebra.op.OpJoin; import org.apache.jena.sparql.algebra.op.OpSequence; public class TransformJoinToSequence extends TransformCopy { public static final TransformJoinToSequence fn = new TransformJoinToSequence(); @Override public Op transform(OpJoin opJoin, Op left, Op right) { //OpDisjunction result = OpDisjunction.create(); OpSequence result = OpSequence.create(); add(result, left); add(result, right); return result; } public static void add(OpSequence dest, Op op) { if(op instanceof OpSequence) { OpSequence o = (OpSequence)op; for(Op subOp : o.getElements()) { dest.add(subOp); } } else if(op instanceof OpJoin) { OpJoin o = (OpJoin)op; dest.add(o.getLeft()); dest.add(o.getRight()); } else { dest.add(op); } } }