class NestedClassListBuilder extends polyglot.visit.NodeVisitor {

  private final ArrayList<Node> classDeclsList;
  private final ArrayList<Node> anonClassBodyList;
  private final ArrayList<Node> nestedUsedList;

  public ArrayList<Node> getClassDeclsList() {
    return classDeclsList;
  }

  public ArrayList<Node> getAnonClassBodyList() {
    return anonClassBodyList;
  }

  public ArrayList<Node> getNestedUsedList() {
    return nestedUsedList;
  }

  public NestedClassListBuilder() {
    classDeclsList = new ArrayList<Node>();
    anonClassBodyList = new ArrayList<Node>();
    nestedUsedList = new ArrayList<Node>();
  }

  public polyglot.visit.NodeVisitor enter(polyglot.ast.Node parent, polyglot.ast.Node n) {<FILL_FUNCTION_BODY>}
}


    if (n instanceof polyglot.ast.New) {

      if ((((polyglot.ast.New) n).anonType() != null) && (((polyglot.ast.New) n).body() != null)) {
        anonClassBodyList.add(n);
      } else if (((polyglot.types.ClassType) ((polyglot.ast.New) n).objectType().type()).isNested()) {
        nestedUsedList.add(n);
      }
    }
    if (n instanceof polyglot.ast.ClassDecl) {

      if (((polyglot.types.ClassType) ((polyglot.ast.ClassDecl) n).type()).isNested()) {
        classDeclsList.add(n);
      }
    }
    return enter(n);
  
<methods>public void <init>() ,public polyglot.visit.NodeVisitor begin() ,public polyglot.visit.NodeVisitor enter(polyglot.ast.Node) ,public polyglot.visit.NodeVisitor enter(polyglot.ast.Node, polyglot.ast.Node) ,public void finish() ,public void finish(polyglot.ast.Node) ,public polyglot.ast.Node leave(polyglot.ast.Node, polyglot.ast.Node, polyglot.visit.NodeVisitor) ,public polyglot.ast.Node leave(polyglot.ast.Node, polyglot.ast.Node, polyglot.ast.Node, polyglot.visit.NodeVisitor) ,public polyglot.ast.Node override(polyglot.ast.Node) ,public polyglot.ast.Node override(polyglot.ast.Node, polyglot.ast.Node) ,public java.lang.String toString() ,public polyglot.ast.Node visitEdge(polyglot.ast.Node, polyglot.ast.Node) <variables>