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.*;
abstract class ClassGlobSpec {
  public ClassGlobSpec() {
    super();
  }

    boolean match(Glob glob) {
      GlobMatcher matcher = new GlobMatcher(glob, false);
      allGlobs(matcher);
      return matcher.get_found_one();
    }
  
    /** Return true iff the globspec matches the class. */
    boolean match(ClassName name) {
      return match(new ClassGlob(name));
    }
  
    /** Convert a set of classes to a set of edges outgoing from the
	classes. */
    GlobSpec toOutgoingEdgeSpec() {
      OutgoingEdgeSpecConvertor c =
	new OutgoingEdgeSpecConvertor(new GlobSet());
      allGlobs(c);
      return c.get_spec();
    }
    abstract Enumeration elements();
  void universal_trv0_bef(UniversalVisitor _v_) {
    _v_.before(this);
  }
  void universal_trv0_aft(UniversalVisitor _v_) {
    _v_.after(this);
  }
  void universal_trv0(UniversalVisitor _v_) {  }
  void toAllSubclasses_Program_trv_bef(ClassNameTranspVisitor cntv, EdgeVisitor aev) {  }
  void toAllSubclasses_Program_trv_aft(ClassNameTranspVisitor cntv, EdgeVisitor aev) {  }
  void toAllSubclasses_Program_trv(ClassNameTranspVisitor cntv, EdgeVisitor aev) {  }
  void checkStars_ProgramBehavior_trv_bef(DummyVisitor dv) {  }
  void checkStars_ProgramBehavior_trv_aft(DummyVisitor dv) {  }
  void checkStars_ProgramBehavior_trv(DummyVisitor dv) {  }
  void allSources_StrategyGraph_trv_bef(GlobVisitor __v0) {
    __v0.before(this);
  }
  void allSources_StrategyGraph_trv_aft(GlobVisitor __v0) {  }
  void allSources_StrategyGraph_trv(GlobVisitor __v0) {  }
  void allDests_StrategyGraph_trv_bef(GlobVisitor __v0) {
    __v0.before(this);
  }
  void allDests_StrategyGraph_trv_aft(GlobVisitor __v0) {  }
  void allDests_StrategyGraph_trv(GlobVisitor __v0) {  }
  void __trav_markReachableForwardFromSources_StrategyGraph_trv_bef(__V_StrategyGraph_markReachableForwardFromSources __v0) {  }
  void __trav_markReachableForwardFromSources_StrategyGraph_trv_aft(__V_StrategyGraph_markReachableForwardFromSources __v0) {  }
  void __trav_markReachableForwardFromSources_StrategyGraph_trv(__V_StrategyGraph_markReachableForwardFromSources __v0) {  }
  void __trav_markReachableBackwardFromTargets_StrategyGraph_trv_bef(__V_StrategyGraph_markReachableBackwardFromTargets __v0) {  }
  void __trav_markReachableBackwardFromTargets_StrategyGraph_trv_aft(__V_StrategyGraph_markReachableBackwardFromTargets __v0) {  }
  void __trav_markReachableBackwardFromTargets_StrategyGraph_trv(__V_StrategyGraph_markReachableBackwardFromTargets __v0) {  }
  void __trav_allSourcesAndTargetsMarked_StrategyGraph_trv_bef(__V_StrategyGraph_allSourcesAndTargetsMarked __v0) {
    __v0.before(this);
  }
  void __trav_allSourcesAndTargetsMarked_StrategyGraph_trv_aft(__V_StrategyGraph_allSourcesAndTargetsMarked __v0) {
    __v0.after(this);
  }
  void __trav_allSourcesAndTargetsMarked_StrategyGraph_trv(__V_StrategyGraph_allSourcesAndTargetsMarked __v0) {  }
  void __trav_getFirst_StrategyGraph_trv_bef(__V_StrategyGraph_getFirst __v0) {  }
  void __trav_getFirst_StrategyGraph_trv_aft(__V_StrategyGraph_getFirst __v0) {  }
  void __trav_getFirst_StrategyGraph_trv(java.util.BitSet nodes, __V_StrategyGraph_getFirst __v0) {  }
  void collectSource_SGEdge_trv_bef(VecVisitor vv) {  }
  void collectSource_SGEdge_trv_aft(VecVisitor vv) {  }
  void collectSource_SGEdge_trv(VecVisitor vv) {  }
  void collectDest_SGEdge_trv_bef(VecVisitor vv) {  }
  void collectDest_SGEdge_trv_aft(VecVisitor vv) {  }
  void collectDest_SGEdge_trv(VecVisitor vv) {  }
  public void allClassNames(ClassGlobVisitor v) {
    allClassNames_ClassGlobSpec_trv(v);
  }
  void allClassNames_ClassGlobSpec_trv_bef(ClassGlobVisitor v) {  }
  void allClassNames_ClassGlobSpec_trv_aft(ClassGlobVisitor v) {  }
  void allClassNames_ClassGlobSpec_trv(ClassGlobVisitor v) {  }
  public void allGlobs(GlobVisitor v) {
    allGlobs_ClassGlobSpec_trv(v);
  }
  void allGlobs_ClassGlobSpec_trv_bef(GlobVisitor v) {
    v.before(this);
  }
  void allGlobs_ClassGlobSpec_trv_aft(GlobVisitor v) {  }
  void allGlobs_ClassGlobSpec_trv(GlobVisitor v) {  }
}

