// Path: src/main/java/org/deri/cqels/data/EnQuad.java
// public class EnQuad {
// 	long gID,sID,pID,oID;
// 	long time;
// 	public EnQuad(long gID,long sID, long pID, long oID){
// 		this.gID=gID;
// 		this.sID=sID;
// 		this.pID=pID;
// 		this.oID=oID;
// 		time=System.nanoTime();
// 	}
// 	
// 	public long getGID(){
// 		return gID;
// 	}
// 	
// 	public long getSID(){
// 		return sID;
// 	}
// 	
// 	public long getPID(){
// 		return pID;
// 	}
// 	
// 	public long getOID(){
// 		return oID;
// 	}
// 	
// 	public long time(){ return time;};
// }


import java.util.HashMap;
import org.deri.cqels.data.EnQuad;
import com.hp.hpl.jena.sparql.algebra.Op;
import com.hp.hpl.jena.sparql.algebra.OpVisitorByType;
import com.hp.hpl.jena.sparql.algebra.op.Op0;
import com.hp.hpl.jena.sparql.algebra.op.Op1;
import com.hp.hpl.jena.sparql.algebra.op.Op2;
import com.hp.hpl.jena.sparql.algebra.op.OpExt;
import com.hp.hpl.jena.sparql.algebra.op.OpFilter;
import com.hp.hpl.jena.sparql.algebra.op.OpLeftJoin;
import com.hp.hpl.jena.sparql.algebra.op.OpN;

            @Override
            protected void visit1(Op1 _op) {
                _visit(_op.getSubOp(), _op);
            }

            @Override
            protected void visit0(Op0 _op) {
                // TODO do nothing?
            }

            protected void _visit(Op child, Op parent) {
                //plan.put(child, context.op2Id(parent));
                child.visit(this);
            }

            @Override
            protected void visitFilter(OpFilter of) {
                throw new UnsupportedOperationException("Not supported yet.");
            }

            @Override
            protected void visitLeftJoin(OpLeftJoin op) {
                throw new UnsupportedOperationException("Not supported yet.");
            }
        });
        plan.put(op, 0);
        System.out.println(" Plan " + plan);
    }

// Path: src/main/java/org/deri/cqels/data/EnQuad.java
// public class EnQuad {
// 	long gID,sID,pID,oID;
// 	long time;
// 	public EnQuad(long gID,long sID, long pID, long oID){
// 		this.gID=gID;
// 		this.sID=sID;
// 		this.pID=pID;
// 		this.oID=oID;
// 		time=System.nanoTime();
// 	}
// 	
// 	public long getGID(){
// 		return gID;
// 	}
// 	
// 	public long getSID(){
// 		return sID;
// 	}
// 	
// 	public long getPID(){
// 		return pID;
// 	}
// 	
// 	public long getOID(){
// 		return oID;
// 	}
// 	
// 	public long time(){ return time;};
// }


// Path: src/main/java/org/deri/cqels/engine/FixedPlanner.java
import java.util.HashMap;
import org.deri.cqels.data.EnQuad;
import com.hp.hpl.jena.sparql.algebra.Op;
import com.hp.hpl.jena.sparql.algebra.OpVisitorByType;
import com.hp.hpl.jena.sparql.algebra.op.Op0;
import com.hp.hpl.jena.sparql.algebra.op.Op1;
import com.hp.hpl.jena.sparql.algebra.op.Op2;
import com.hp.hpl.jena.sparql.algebra.op.OpExt;
import com.hp.hpl.jena.sparql.algebra.op.OpFilter;
import com.hp.hpl.jena.sparql.algebra.op.OpLeftJoin;
import com.hp.hpl.jena.sparql.algebra.op.OpN;


            @Override
            protected void visit1(Op1 _op) {
                _visit(_op.getSubOp(), _op);
            }

            @Override
            protected void visit0(Op0 _op) {
                // TODO do nothing?
            }

            protected void _visit(Op child, Op parent) {
                //plan.put(child, context.op2Id(parent));
                child.visit(this);
            }

            @Override
            protected void visitFilter(OpFilter of) {
                throw new UnsupportedOperationException("Not supported yet.");
            }

            @Override
            protected void visitLeftJoin(OpLeftJoin op) {
                throw new UnsupportedOperationException("Not supported yet.");
            }
        });
        plan.put(op, 0);
        System.out.println(" Plan " + plan);
    }

    public HashMap<Op, Integer> getPlan(Op op, EnQuad quad) {