Extract DumpVisitor

Moving Dump*() methods from AIDL AST to its own visitor.

Bug: n/a
Test: m aidl_unittests
Change-Id: I61c1a978b5a50582daec930b92cc9be49c31c991
diff --git a/aidl_checkapi.cpp b/aidl_checkapi.cpp
index 6337f8e..f07e7e6 100644
--- a/aidl_checkapi.cpp
+++ b/aidl_checkapi.cpp
@@ -15,10 +15,6 @@
  */
 
 #include "aidl.h"
-#include "aidl_language.h"
-#include "import_resolver.h"
-#include "logging.h"
-#include "options.h"
 
 #include <map>
 #include <string>
@@ -28,6 +24,12 @@
 #include <android-base/strings.h>
 #include <gtest/gtest.h>
 
+#include "aidl_dumpapi.h"
+#include "aidl_language.h"
+#include "import_resolver.h"
+#include "logging.h"
+#include "options.h"
+
 namespace android {
 namespace aidl {
 
@@ -40,9 +42,12 @@
 using std::vector;
 
 static std::string Dump(const AidlDefinedType& type) {
-  std::string dump;
-  type.Dump(CodeWriter::ForString(&dump).get());
-  return dump;
+  string code;
+  CodeWriterPtr out = CodeWriter::ForString(&code);
+  DumpVisitor visitor(*out);
+  type.DispatchVisit(visitor);
+  out->Close();
+  return code;
 }
 
 // Uses each type's Dump() and GTest utility(EqHelper).