class JPegStmt extends AbstractHost

// public class JPegStmt implements CommunicationStmt
// public class JPegStmt extends AbstractStmt implements CommunicationStm
// public class JPegStmt extends AbstractStm

{

  protected String object;
  protected String name;
  protected String caller;
  protected Unit unit = null;
  protected UnitGraph unitGraph = null;
  // add for build dot file
  protected SootMethod sootMethod = null;

  // end add for build dot file
  protected JPegStmt() {
  }

  protected JPegStmt(String obj, String na, String ca) {

    this.object = obj;
    this.name = na;
    this.caller = ca;
  }

  protected JPegStmt(String obj, String na, String ca, SootMethod sm) {
    this.object = obj;
    this.name = na;
    this.caller = ca;
    this.sootMethod = sm;
  }

  protected JPegStmt(String obj, String na, String ca, UnitGraph ug, SootMethod sm) {
    this.object = obj;
    this.name = na;
    this.caller = ca;
    this.unitGraph = ug;
    this.sootMethod = sm;
  }

  protected JPegStmt(String obj, String na, String ca, Unit un, UnitGraph ug, SootMethod sm) {
    this.object = obj;
    this.name = na;
    this.caller = ca;
    this.unit = un;
    this.unitGraph = ug;
    this.sootMethod = sm;
  }

  protected void setUnit(Unit un) {
    unit = un;
  }

  protected void setUnitGraph(UnitGraph ug) {
    unitGraph = ug;
  }

  public UnitGraph getUnitGraph() {
    if (!containUnitGraph()) {
      throw new RuntimeException("This statement does not contain UnitGraph!");
    }

    return unitGraph;
  }

  public boolean containUnitGraph() {
    if (unitGraph == null) {
      return false;
    } else {
      return true;
    }
  }

  public Unit getUnit() {
    if (!containUnit()) {
      throw new RuntimeException("This statement does not contain Unit!");
    }

    return unit;
  }

  public boolean containUnit() {
    if (unit == null) {
      return false;
    } else {
      return true;
    }
  }

  public String getObject() {
    return object;
  }

  protected void setObject(String ob) {
    object = ob;
  }

  public String getName() {
    return name;
  }

  protected void setName(String na) {
    name = na;
  }

  public String getCaller() {
    return caller;
  }

  protected void setCaller(String ca) {
    caller = ca;
  }

  public SootMethod getMethod() {
    return sootMethod;
  }

  /*
   * public void apply(Switch sw) { ((StmtSwitch) sw).caseCommunicationStmt(this); }
   */

  /*
   * public Object clone() { if (containUnit()){ } return new JPegStmt(object,name,caller, ); }
   */

  public String toString() {

    if (sootMethod != null) {
      return "(" + getObject() + ", " + getName() + ", " + getCaller() + "," + sootMethod + ")";
    } else {
      return "(" + getObject() + ", " + getName() + ", " + getCaller() + ")";
    }

  }

  public String testToString() {<FILL_FUNCTION_BODY>}

}

    if (containUnit()) {
      if (sootMethod != null) {
        return "(" + getObject() + ", " + getName() + ", " + getCaller() + ", " + getUnit() + "," + sootMethod + ")";
      } else {
        return "(" + getObject() + ", " + getName() + ", " + getCaller() + ", " + getUnit() + ")";
      }
    } else {
      return "(" + getObject() + ", " + getName() + ", " + getCaller() + ")";
    }

  
<methods>public non-sealed void <init>() ,public void addAllTagsOf(soot.tagkit.Host) ,public void addTag(soot.tagkit.Tag) ,public int getJavaSourceStartColumnNumber() ,public int getJavaSourceStartLineNumber() ,public soot.tagkit.Tag getTag(java.lang.String) ,public List<soot.tagkit.Tag> getTags() ,public boolean hasTag(java.lang.String) ,public void removeAllTags() ,public void removeTag(java.lang.String) <variables>protected int col,protected int line,protected List<soot.tagkit.Tag> mTagList