/**
  * @param pkgDecl AST node for package declaration
  * @param importDecls AST node for import declarations
  * @param scene scene for visitor methods to fill in
  */
 public ToIndexFileConverter(
     PackageDeclaration pkgDecl, List<ImportDeclaration> importDecls, AScene scene) {
   this.scene = scene;
   if (pkgDecl == null) {
     pkgName = "";
   } else {
     Matcher m = packagePattern.matcher(pkgDecl.toString());
     String s = m.find() ? m.group(1) : null;
     pkgName = s == null ? "" : s;
   }
   if (importDecls == null) {
     imports = Collections.emptyList();
   } else {
     ArrayList<String> imps = new ArrayList<String>(importDecls.size());
     for (ImportDeclaration decl : importDecls) {
       if (!decl.isStatic()) {
         Matcher m = importPattern.matcher(decl.toString());
         if (m.find()) {
           String s = m.group(1);
           if (s != null) {
             imps.add(s);
           }
         }
       }
     }
     imps.trimToSize();
     imports = Collections.unmodifiableList(imps);
   }
 }
 @Override
 public void visit(ImportDeclaration n, Object arg) {
   printer.print("import ");
   if (n.isStatic()) {
     printer.print("static ");
   }
   n.getName().accept(this, arg);
   if (n.isAsterisk()) {
     printer.print(".*");
   }
   printer.printLn(";");
 }