From 9a42239eec13ae69ed6cd8b623bf438d2a5b9d74 Mon Sep 17 00:00:00 2001 From: Bryan Duxbury Date: Mon, 23 May 2011 21:41:02 +0000 Subject: [PATCH] THRIFT-1170. java: Thrift Generated Code and Java 5 This patch adds a trivial java5 option to the java generator. Patch: Greg Moulliet git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1126765 13f79535-47bb-0310-9956-ffa450edef68 --- compiler/cpp/src/generate/t_java_generator.cc | 12 +++++++++++- lib/java/src/org/apache/thrift/TUnion.java | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/compiler/cpp/src/generate/t_java_generator.cc b/compiler/cpp/src/generate/t_java_generator.cc index e453249d..3b8516aa 100644 --- a/compiler/cpp/src/generate/t_java_generator.cc +++ b/compiler/cpp/src/generate/t_java_generator.cc @@ -62,6 +62,12 @@ class t_java_generator : public t_oop_generator { iter = parsed_options.find("android_legacy"); android_legacy_ = (iter != parsed_options.end()); + iter = parsed_options.find("java5"); + java5_ = (iter != parsed_options.end()); + if (java5_) { + android_legacy_ = true; + } + out_dir_base_ = (bean_style_ ? "gen-javabean" : "gen-java"); } @@ -262,6 +268,7 @@ class t_java_generator : public t_oop_generator { bool nocamel_style_; bool gen_hash_code_; bool android_legacy_; + bool java5_; }; @@ -3789,7 +3796,9 @@ bool t_java_generator::has_bit_vector(t_struct* tstruct) { } void t_java_generator::generate_java_struct_clear(std::ofstream& out, t_struct* tstruct) { - indent(out) << "@Override" << endl; + if (!java5_) { + indent(out) << "@Override" << endl; + } indent(out) << "public void clear() {" << endl; const vector& members = tstruct->get_members(); @@ -3869,5 +3878,6 @@ THRIFT_REGISTER_GENERATOR(java, "Java", " nocamel: Do not use CamelCase field accessors with beans.\n" " hashcode: Generate quality hashCode methods.\n" " android_legacy: Do not use java.io.IOException(throwable) (available for Android 2.3 and above).\n" +" java5: Generate Java 1.5 compliant code (includes android_legacy flag)." ) diff --git a/lib/java/src/org/apache/thrift/TUnion.java b/lib/java/src/org/apache/thrift/TUnion.java index cfe910b1..1962c80b 100644 --- a/lib/java/src/org/apache/thrift/TUnion.java +++ b/lib/java/src/org/apache/thrift/TUnion.java @@ -30,7 +30,7 @@ import org.apache.thrift.protocol.TProtocol; import org.apache.thrift.protocol.TProtocolException; import org.apache.thrift.protocol.TStruct; -public abstract class TUnion implements TBase { +public abstract class TUnion, F extends TFieldIdEnum> implements TBase { protected Object value_; protected F setField_; -- 2.17.1