class container {
    public Object o;

    public container(Object o) {
      this.o = o;
    }

    public void replaceBody(Object newBody) {
      this.o = newBody;
    }
  }

  public ASTTryNode(SETNodeLabel label, List<Object> tryBody, List<Object> catchList, Map<Object, Object> exceptionMap,
      Map<Object, Object> paramMap) {
    super(label);

    this.tryBody = tryBody;
    tryBodyContainer = new container(tryBody);

    this.catchList = new ArrayList<Object>();
    Iterator<Object> cit = catchList.iterator();
    while (cit.hasNext()) {
      this.catchList.add(new container(cit.next()));
    }

    this.exceptionMap = new HashMap<Object, Object>();
    cit = this.catchList.iterator();
    while (cit.hasNext()) {
      container c = (container) cit.next();
      this.exceptionMap.put(c, exceptionMap.get(c.o));
    }

    this.paramMap = new HashMap<Object, Object>();
    cit = this.catchList.iterator();
    while (cit.hasNext()) {
      container c = (container) cit.next();
      this.paramMap.put(c, paramMap.get(c.o));
    }

    subBodies.add(tryBodyContainer);
    cit = this.catchList.iterator();
    while (cit.hasNext()) {
      subBodies.add(cit.next());
    }
  }

  /*
   * Nomair A Naeem 21-FEB-2005 used to support UselessLabeledBlockRemover
   */
  public void replaceTryBody(List<Object> tryBody) {<FILL_FUNCTION_BODY>

    this.tryBody = tryBody;
    tryBodyContainer = new container(tryBody);

    List<Object> oldSubBodies = subBodies;
    subBodies = new ArrayList<Object>();

    subBodies.add(tryBodyContainer);

    Iterator<Object> oldIt = oldSubBodies.iterator();
    // discard the first since that was the old tryBodyContainer
    oldIt.next();

    while (oldIt.hasNext()) {
      subBodies.add(oldIt.next());
    }

  
<methods>public void <init>(soot.dava.internal.SET.SETNodeLabel) ,public soot.dava.internal.SET.SETNodeLabel get_Label() ,public void label_toString(soot.UnitPrinter) ,public java.lang.String label_toString() ,public void perform_Analysis(soot.dava.toolkits.base.AST.ASTAnalysis) ,public void set_Label(soot.dava.internal.SET.SETNodeLabel) <variables>private soot.dava.internal.SET.SETNodeLabel label