Fix Java types.hal generation filtering

Bug: 31470959
Change-Id: I9312ad5a73289d829548a93491a8353abf9a451a
diff --git a/AST.h b/AST.h
index 1360e7e..59fb62c 100644
--- a/AST.h
+++ b/AST.h
@@ -74,10 +74,12 @@
     status_t generateCppImpl(const std::string &outputPath) const;
 
     status_t generateJava(
-            const std::string &outputPath, const char *limitToType) const;
+            const std::string &outputPath,
+            const std::string &limitToType) const;
 
     status_t generateJavaTypes(
-            const std::string &outputPath, const char *limitToType) const;
+            const std::string &outputPath,
+            const std::string &limitToType) const;
 
     void getImportedPackages(std::set<FQName> *importSet) const;
 
diff --git a/generateJava.cpp b/generateJava.cpp
index f9b0cff..e89a577 100644
--- a/generateJava.cpp
+++ b/generateJava.cpp
@@ -43,7 +43,7 @@
 }
 
 status_t AST::generateJavaTypes(
-        const std::string &outputPath, const char *limitToType) const {
+        const std::string &outputPath, const std::string &limitToType) const {
     // Splits types.hal up into one java file per declared type.
 
     for (const auto &type : mRootScope->getSubTypes()) {
@@ -53,7 +53,7 @@
             continue;
         }
 
-        if ((limitToType != nullptr) && typeName != limitToType) {
+        if (!limitToType.empty() && typeName != limitToType) {
             continue;
         }
 
@@ -101,7 +101,7 @@
 }
 
 status_t AST::generateJava(
-        const std::string &outputPath, const char *limitToType) const {
+        const std::string &outputPath, const std::string &limitToType) const {
     if (!isJavaCompatible()) {
         fprintf(stderr,
                 "ERROR: This interface is not Java compatible. The Java backend"
diff --git a/main.cpp b/main.cpp
index 12d3e6a..bc672b1 100644
--- a/main.cpp
+++ b/main.cpp
@@ -53,12 +53,12 @@
     CHECK(fqName.isFullyQualified());
 
     AST *ast;
-    const char *limitToType = nullptr;
+    std::string limitToType;
 
     if (fqName.name().find("types.") == 0) {
         CHECK(lang == "java");  // Already verified in validate().
 
-        limitToType = fqName.name().c_str() + strlen("types.");
+        limitToType = fqName.name().substr(strlen("types."));
 
         FQName typesName(fqName.package(), fqName.version(), "types");
         ast = coordinator->parse(typesName);