package EDU.neu.ccs.demeter.tools.apstudio.graphedit;
import java.awt.*;
import java.io.*;
import java.util.*;
import EDU.neu.ccs.demeter.*;
import EDU.neu.ccs.demeter.common.tg.*;


import EDU.neu.ccs.demeter.*;
class SourceEdgeCollector extends ClassGlobVisitor {
  protected StrategyGraph sg;
  public StrategyGraph get_sg() { return sg; }
  public void set_sg(StrategyGraph new_sg)
    { sg = new_sg; }
  protected Integer_NList edges;
  public Integer_NList get_edges() { return edges; }
  public void set_edges(Integer_NList new_edges)
    { edges = new_edges; }
  SourceEdgeCollector() { super(); }
  public SourceEdgeCollector(StrategyGraph sg, Integer_NList edges) {
    super();
    set_sg(sg);
    set_edges(edges);
  }
  public void before(ClassName host) {
    edges.setadd(sg.getOutgoingIndices(host));
  }
  public void before(AnyClass host) {
    // Add every edge in the strategy graph.
    int n = sg.get_edgeVec().size();
    for (int i = 0; i < n; i++) edges.addElement(new Integer(i));
  }
  void universal_trv0_bef(UniversalVisitor _v_) {
    super.universal_trv0_bef(_v_);
  }
  void universal_trv0_aft(UniversalVisitor _v_) {
    super.universal_trv0_aft(_v_);
  }
  void universal_trv0(UniversalVisitor _v_) {
    universal_trv0_bef(_v_);
    sg.universal_trv0(_v_);
    edges.universal_trv0(_v_);
    super.universal_trv0(_v_);
    universal_trv0_aft(_v_);
  }
}

