package org.scribble.visit.context.env; import org.scribble.ast.ScribNode; import org.scribble.ast.local.LNode; import org.scribble.visit.env.Env; // Could make projection type a class parameter public class ProjectionEnv extends Env<ProjectionEnv> { private ScribNode projection; // Make local // FIXME: need to generalise for do projection (target protocol as well as the do) public ProjectionEnv() { } @Override public ProjectionEnv copy() { ProjectionEnv copy = new ProjectionEnv(); copy.projection = this.projection; return copy; } @Override public ProjectionEnv enterContext() { return copy(); } public ScribNode getProjection() { return this.projection; } public ProjectionEnv setProjection(LNode projection) { ProjectionEnv copy = new ProjectionEnv(); copy.projection = projection; return copy; } @Override public String toString() { return "projection=" + this.projection; } }