Move Java related code into a java namespace

This lets us use names like Type instead of CppType for generated
code specific to C++.  C++ code will similarly go in its own namespace.

Bug: 24472672
Test: Compiles, unittests pass

Change-Id: I10fc8ce6436e297eb36c7b63e0c6d78a45bf2a19
diff --git a/aidl.cpp b/aidl.cpp
index 96e81b6..a55724a 100644
--- a/aidl.cpp
+++ b/aidl.cpp
@@ -626,7 +626,7 @@
 int compile_aidl_to_cpp(const CppOptions& options) {
   interface_type* interface = nullptr;
   import_info* imports = nullptr;
-  unique_ptr<JavaTypeNamespace> types(new JavaTypeNamespace());
+  unique_ptr<java::JavaTypeNamespace> types(new java::JavaTypeNamespace());
   int err = load_and_validate_aidl(std::vector<std::string>{},
                                    options.ImportPaths(),
                                    options.InputFileName(),
@@ -645,7 +645,7 @@
 int compile_aidl_to_java(const JavaOptions& options) {
   interface_type* interface = nullptr;
   import_info* imports = nullptr;
-  unique_ptr<JavaTypeNamespace> types(new JavaTypeNamespace());
+  unique_ptr<java::JavaTypeNamespace> types(new java::JavaTypeNamespace());
   int err = load_and_validate_aidl(options.preprocessed_files_,
                                    options.import_paths_,
                                    options.input_file_name_,
diff --git a/ast_java.cpp b/ast_java.cpp
index b3c3a3f..c80414c 100644
--- a/ast_java.cpp
+++ b/ast_java.cpp
@@ -21,6 +21,7 @@
 
 namespace android {
 namespace aidl {
+namespace java {
 
 void
 WriteModifiers(CodeWriter* to, int mod, int mask)
@@ -931,5 +932,6 @@
     }
 }
 
+}  // namespace java
 }  // namespace aidl
 }  // namespace android
diff --git a/ast_java.h b/ast_java.h
index 401018b..8c4d825 100644
--- a/ast_java.h
+++ b/ast_java.h
@@ -45,8 +45,14 @@
 
 namespace android {
 namespace aidl {
-
 class CodeWriter;
+}  // namespace aidl
+}  // namespace android
+
+namespace android {
+namespace aidl {
+namespace java {
+
 class Type;
 
 // Write the modifiers that are set in both mod and mask
@@ -390,6 +396,7 @@
     virtual void Write(CodeWriter* to) const;
 };
 
+}  // namespace java
 }  // namespace aidl
 }  // namespace android
 
diff --git a/ast_java_unittest.cpp b/ast_java_unittest.cpp
index b7bbb5a..2b52226 100644
--- a/ast_java_unittest.cpp
+++ b/ast_java_unittest.cpp
@@ -24,6 +24,7 @@
 
 namespace android {
 namespace aidl {
+namespace java {
 namespace {
 
 const char kExpectedClassOutput[] =
@@ -52,5 +53,6 @@
   EXPECT_EQ(string(kExpectedClassOutput), actual_output);
 }
 
+}  // namespace java
 }  // namespace aidl
 }  // namespace android
diff --git a/generate_java.cpp b/generate_java.cpp
index 116b5c4..736385e 100644
--- a/generate_java.cpp
+++ b/generate_java.cpp
@@ -7,6 +7,8 @@
 #include "code_writer.h"
 #include "type_java.h"
 
+using ::android::aidl::java::Variable;
+
 namespace android {
 namespace aidl {
 
@@ -61,7 +63,8 @@
     return s;
 }
 
-// =================================================
+namespace java {
+
 int
 generate_java(const string& filename, const string& originalSrc,
                 interface_type* iface, JavaTypeNamespace* types)
@@ -84,5 +87,6 @@
     return 0;
 }
 
+}  // namespace java
 }  // namespace android
 }  // namespace aidl
diff --git a/generate_java.h b/generate_java.h
index b67a88c..7980319 100644
--- a/generate_java.h
+++ b/generate_java.h
@@ -12,13 +12,17 @@
 using std::string;
 using std::vector;
 
+namespace java {
+
 class JavaTypeNamespace;
 
 int generate_java(const string& filename, const string& originalSrc,
-                  interface_type* iface, JavaTypeNamespace* types);
+                  interface_type* iface, java::JavaTypeNamespace* types);
 
-android::aidl::Class* generate_binder_interface_class(
-    const interface_type* iface, JavaTypeNamespace* types);
+android::aidl::java::Class* generate_binder_interface_class(
+    const interface_type* iface, java::JavaTypeNamespace* types);
+
+}  // namespace java
 
 string gather_comments(extra_text_type* extra);
 string append(const char* a, const char* b);
@@ -26,8 +30,8 @@
 class VariableFactory
 {
 public:
-    using Variable = android::aidl::Variable;
-    using Type = android::aidl::Type;
+    using Variable = ::android::aidl::java::Variable;
+    using Type = ::android::aidl::java::Type;
 
     VariableFactory(const string& base); // base must be short
     Variable* Get(const Type* type);
diff --git a/generate_java_binder.cpp b/generate_java_binder.cpp
index b5aa0ce..44ff10c 100644
--- a/generate_java_binder.cpp
+++ b/generate_java_binder.cpp
@@ -12,6 +12,7 @@
 
 namespace android {
 namespace aidl {
+namespace java {
 
 // =================================================
 class StubClass : public Class
@@ -565,5 +566,6 @@
     return interface;
 }
 
+}  // namespace java
 }  // namespace android
 }  // namespace aidl
diff --git a/type_java.cpp b/type_java.cpp
index cb3ab35..bd1b700 100644
--- a/type_java.cpp
+++ b/type_java.cpp
@@ -29,6 +29,7 @@
 
 namespace android {
 namespace aidl {
+namespace java {
 
 Expression* NULL_VALUE;
 Expression* THIS_VALUE;
@@ -1103,5 +1104,6 @@
   }
 }
 
+}  // namespace java
 }  // namespace aidl
 }  // namespace android
diff --git a/type_java.h b/type_java.h
index f83c399..fc2b33d 100644
--- a/type_java.h
+++ b/type_java.h
@@ -25,6 +25,7 @@
 
 namespace android {
 namespace aidl {
+namespace java {
 
 class JavaTypeNamespace;
 
@@ -485,6 +486,7 @@
 extern Expression* TRUE_VALUE;
 extern Expression* FALSE_VALUE;
 
+}  // namespace java
 }  // namespace aidl
 }  // namespace android
 
diff --git a/type_java_unittest.cpp b/type_java_unittest.cpp
index b467b71..5d67818 100644
--- a/type_java_unittest.cpp
+++ b/type_java_unittest.cpp
@@ -25,6 +25,7 @@
 
 namespace android {
 namespace aidl {
+namespace java {
 namespace {
 
 user_data_type* MakeFakeUserDataType(const std::string& package,
@@ -68,5 +69,6 @@
   EXPECT_NE(types_.Find("List<Foo>"), nullptr);
 }
 
+}  // namespace java
 }  // namespace android
 }  // namespace aidl