package aspectEditor.aspectEditorUtils;
import java.util.jar.JarFile;
import java.util.*;
import java.io.*;
import edu.neu.ccs.demeter.aplib.*;
import edu.neu.ccs.demeter.*;
abstract class Constraint {
  protected GlobSpec glob;
  public GlobSpec get_glob() { return glob; }
  public void set_glob(GlobSpec new_glob) { glob = new_glob; }
  public Constraint() { super(); }
  public Constraint(GlobSpec glob) {
    super();
    set_glob(glob);
  }
  void universal_trv0_bef(UniversalVisitor _v_) {
    ((UniversalVisitor) _v_).before(this);
  }

  void universal_trv0_aft(UniversalVisitor _v_) {
    ((UniversalVisitor) _v_).after(this);
  }

  void universal_trv0(UniversalVisitor _v_) {
    ((UniversalVisitor) _v_).before_glob(this, glob);
    glob.universal_trv0(_v_);
    ((UniversalVisitor) _v_).after_glob(this, glob);
  }

  void __trav_checkConstraint_Node_SGEdge_trv_bef(__V_SGEdge_checkConstraint_Node __v0) {  }

  void __trav_checkConstraint_Node_SGEdge_trv_aft(__V_SGEdge_checkConstraint_Node __v0) {  }

  void __trav_checkConstraint_Node_SGEdge_trv(java.util.BitSet nodes, __V_SGEdge_checkConstraint_Node __v0) {
    if (nodes.get(0)) nodes.set(1);
    { java.util.BitSet newnodes = new java.util.BitSet();
      newnodes.set(1);
      newnodes.and(nodes);
      if (!newnodes.equals(new java.util.BitSet())) {
        glob.__trav_checkConstraint_Node_SGEdge_trv(newnodes, __v0);
      }
    }
  }

  void __trav_checkConstraint_Edge_SGEdge_trv_bef(__V_SGEdge_checkConstraint_Edge __v0) {  }

  void __trav_checkConstraint_Edge_SGEdge_trv_aft(__V_SGEdge_checkConstraint_Edge __v0) {  }

  void __trav_checkConstraint_Edge_SGEdge_trv(java.util.BitSet nodes, __V_SGEdge_checkConstraint_Edge __v0) {
    if (nodes.get(0)) nodes.set(1);
    { java.util.BitSet newnodes = new java.util.BitSet();
      newnodes.set(1);
      newnodes.and(nodes);
      if (!newnodes.equals(new java.util.BitSet())) {
        glob.__trav_checkConstraint_Edge_SGEdge_trv(newnodes, __v0);
      }
    }
  }

  void __trav_toGraph_PathDirective_trv_bef(__V_PathDirective_toGraph __v0) {  }

  void __trav_toGraph_PathDirective_trv_aft(__V_PathDirective_toGraph __v0) {  }

  void __trav_toGraph_PathDirective_trv(__V_PathDirective_toGraph __v0) {  }

}
