From f5383b663ecbfdf46d3a76553bfb3db3ea0af228 Mon Sep 17 00:00:00 2001 From: Bryan Duxbury Date: Tue, 3 Feb 2009 00:49:25 +0000 Subject: [PATCH] THRIFT-297. java: getFieldValue and setFieldValue should be abstract TBase methods This patch makes getFieldValue, setFieldValue, and isSet TBase interface methods, and adds all the previously beans-only getters and setters to all Java generated classes. git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@740169 13f79535-47bb-0310-9956-ffa450edef68 --- compiler/cpp/src/generate/t_java_generator.cc | 9 +++----- lib/java/src/org/apache/thrift/TBase.java | 23 +++++++++++++++++++ 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/compiler/cpp/src/generate/t_java_generator.cc b/compiler/cpp/src/generate/t_java_generator.cc index 3d24ece4..347a014f 100644 --- a/compiler/cpp/src/generate/t_java_generator.cc +++ b/compiler/cpp/src/generate/t_java_generator.cc @@ -740,12 +740,9 @@ void t_java_generator::generate_java_struct_definition(ofstream &out, indent(out) << " return new " << tstruct->get_name() << "(this);" << endl; indent(out) << "}" << endl << endl; - - if (bean_style_) { - generate_java_bean_boilerplate(out, tstruct); - generate_generic_field_getters_setters(out, tstruct); - generate_generic_isset_method(out, tstruct); - } + generate_java_bean_boilerplate(out, tstruct); + generate_generic_field_getters_setters(out, tstruct); + generate_generic_isset_method(out, tstruct); generate_java_struct_equality(out, tstruct); diff --git a/lib/java/src/org/apache/thrift/TBase.java b/lib/java/src/org/apache/thrift/TBase.java index aaf17e43..ef4e323a 100644 --- a/lib/java/src/org/apache/thrift/TBase.java +++ b/lib/java/src/org/apache/thrift/TBase.java @@ -28,4 +28,27 @@ public interface TBase extends Cloneable { * @param oprot Output protocol */ public void write(TProtocol oprot) throws TException; + + /** + * Check if a field is currently set or unset. + * + * @param fieldId The field's id tag as found in the IDL. + */ + public boolean isSet(int fieldId); + + /** + * Get a field's value by id. Primitive types will be wrapped in the + * appropriate "boxed" types. + * + * @param fieldId The field's id tag as found in the IDL. + */ + public Object getFieldValue(int fieldId); + + /** + * Set a field's value by id. Primitive types must be "boxed" in the + * appropriate object wrapper type. + * + * @param fieldId The field's id tag as found in the IDL. + */ + public void setFieldValue(int fieldId, Object value); } -- 2.17.1