/*
  * @see ASTVisitor#visit(CompilationUnit)
  */
 @Override
 public boolean visit(CompilationUnit node) {
   if (node.getPackage() != null) {
     node.getPackage().accept(this);
   }
   for (Iterator<ImportDeclaration> it = node.imports().iterator(); it.hasNext(); ) {
     ImportDeclaration d = it.next();
     d.accept(this);
   }
   for (Iterator<AbstractTypeDeclaration> it = node.types().iterator(); it.hasNext(); ) {
     AbstractTypeDeclaration d = it.next();
     d.accept(this);
   }
   return false;
 }
 @Override
 public void visit(final CompilationUnit n, final A arg) {
   visitComment(n.getComment(), arg);
   if (n.getPackage() != null) {
     n.getPackage().accept(this, arg);
   }
   if (n.getImports() != null) {
     for (final ImportDeclaration i : n.getImports()) {
       i.accept(this, arg);
     }
   }
   if (n.getTypes() != null) {
     for (final TypeDeclaration<?> typeDeclaration : n.getTypes()) {
       typeDeclaration.accept(this, arg);
     }
   }
 }