Make the Java generator use non-hardcoded namespaces.
- Make the Java generator use program->get_namespace("java")
instead of program->get_java_namespace()
- Eliminate the explicit "java_namespace" in t_program.
- Deprecate the java_namespace token.
- Update example .thrift files and syntax files.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665514 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/compiler/cpp/src/generate/t_java_generator.cc b/compiler/cpp/src/generate/t_java_generator.cc
index 75b114d..a7448a4 100644
--- a/compiler/cpp/src/generate/t_java_generator.cc
+++ b/compiler/cpp/src/generate/t_java_generator.cc
@@ -189,7 +189,7 @@
void t_java_generator::init_generator() {
// Make output directory
MKDIR(get_out_dir().c_str());
- package_name_ = program_->get_java_package();
+ package_name_ = program_->get_namespace("java");
string dir = package_name_;
string subdir = get_out_dir();
@@ -2000,7 +2000,7 @@
// Check for namespacing
t_program* program = ttype->get_program();
if (program != NULL && program != program_) {
- string package = program->get_java_package();
+ string package = program->get_namespace("java");
if (!package.empty()) {
return package + "." + ttype->get_name();
}
diff --git a/compiler/cpp/src/parse/t_program.h b/compiler/cpp/src/parse/t_program.h
index ef9db49..72c3cdd 100644
--- a/compiler/cpp/src/parse/t_program.h
+++ b/compiler/cpp/src/parse/t_program.h
@@ -176,14 +176,6 @@
return php_namespace_;
}
- void set_java_package(std::string java_package) {
- java_package_ = java_package;
- }
-
- const std::string& get_java_package() const {
- return java_package_;
- }
-
void set_csharp_namespace(std::string csharp_namespace) {
csharp_namespace_ = csharp_namespace;
}
@@ -289,9 +281,6 @@
// PHP namespace
std::string php_namespace_;
- // Java package
- std::string java_package_;
-
// XSD namespace
std::string xsd_namespace_;
diff --git a/compiler/cpp/src/thrifty.yy b/compiler/cpp/src/thrifty.yy
index bb68358..9aa56bd 100644
--- a/compiler/cpp/src/thrifty.yy
+++ b/compiler/cpp/src/thrifty.yy
@@ -312,11 +312,13 @@
g_program->set_smalltalk_prefix($2);
}
}
+/* TODO(dreiss): Get rid of this once everyone is using the new hotness. */
| tok_java_package tok_identifier
{
+ pwarning(1, "'cpp_namespace' is deprecated. Use 'namespace cpp' instead");
pdebug("Header -> tok_java_package tok_identifier");
if (g_parse_mode == PROGRAM) {
- g_program->set_java_package($2);
+ g_program->set_namespace("java", $2);
}
}
| tok_cocoa_prefix tok_identifier