You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by br...@apache.org on 2010/10/06 22:00:03 UTC

svn commit: r1005220 - in /incubator/thrift/trunk: compiler/cpp/src/generate/t_java_generator.cc lib/java/src/org/apache/thrift/meta_data/FieldValueMetaData.java lib/java/test/org/apache/thrift/TestStruct.java test/ThriftTest.thrift

Author: bryanduxbury
Date: Wed Oct  6 20:00:03 2010
New Revision: 1005220

URL: http://svn.apache.org/viewvc?rev=1005220&view=rev
Log:
THRIFT-946. java: Augment FieldValueMetaData so it differentiates 'string' and 'binary' fields.

This patch adds a new method to the FieldMetaData class that indicates binary or not.

Patch: Mathias Herberts

Modified:
    incubator/thrift/trunk/compiler/cpp/src/generate/t_java_generator.cc
    incubator/thrift/trunk/lib/java/src/org/apache/thrift/meta_data/FieldValueMetaData.java
    incubator/thrift/trunk/lib/java/test/org/apache/thrift/TestStruct.java
    incubator/thrift/trunk/test/ThriftTest.thrift

Modified: incubator/thrift/trunk/compiler/cpp/src/generate/t_java_generator.cc
URL: http://svn.apache.org/viewvc/incubator/thrift/trunk/compiler/cpp/src/generate/t_java_generator.cc?rev=1005220&r1=1005219&r2=1005220&view=diff
==============================================================================
--- incubator/thrift/trunk/compiler/cpp/src/generate/t_java_generator.cc (original)
+++ incubator/thrift/trunk/compiler/cpp/src/generate/t_java_generator.cc Wed Oct  6 20:00:03 2010
@@ -2112,6 +2112,8 @@ void t_java_generator::generate_field_va
     indent(out) << "new FieldValueMetaData(" << get_java_type_string(type);
     if (type->is_typedef()) {
       indent(out) << ", \"" << ((t_typedef*)type)->get_symbolic() << "\"";
+    } else if (((t_base_type*)type)->is_binary()) {
+      indent(out) << ", true";
     }
   }
   out << ")";

Modified: incubator/thrift/trunk/lib/java/src/org/apache/thrift/meta_data/FieldValueMetaData.java
URL: http://svn.apache.org/viewvc/incubator/thrift/trunk/lib/java/src/org/apache/thrift/meta_data/FieldValueMetaData.java?rev=1005220&r1=1005219&r2=1005220&view=diff
==============================================================================
--- incubator/thrift/trunk/lib/java/src/org/apache/thrift/meta_data/FieldValueMetaData.java (original)
+++ incubator/thrift/trunk/lib/java/src/org/apache/thrift/meta_data/FieldValueMetaData.java Wed Oct  6 20:00:03 2010
@@ -30,17 +30,24 @@ public class FieldValueMetaData implemen
 
   private final boolean isTypedefType;
   private final String typedefName;
+  private final boolean isBinary;
 
-  public FieldValueMetaData(byte type) {
+  public FieldValueMetaData(byte type, boolean binary) {
     this.type = type;
     this.isTypedefType = false;
     this.typedefName = null;
+    this.isBinary = binary;
+  }
+
+  public FieldValueMetaData(byte type) {
+    this(type, false);
   }
 
   public FieldValueMetaData(byte type, String typedefName) {
     this.type = type;
     this.isTypedefType = true;
     this.typedefName = typedefName;
+    this.isBinary = false;
   }
 
   public boolean isTypedef() {
@@ -58,4 +65,8 @@ public class FieldValueMetaData implemen
   public boolean isContainer() {
     return type == TType.LIST || type == TType.MAP || type == TType.SET;
   }
+
+  public boolean isBinary() {
+    return isBinary;
+  }
 }

Modified: incubator/thrift/trunk/lib/java/test/org/apache/thrift/TestStruct.java
URL: http://svn.apache.org/viewvc/incubator/thrift/trunk/lib/java/test/org/apache/thrift/TestStruct.java?rev=1005220&r1=1005219&r2=1005220&view=diff
==============================================================================
--- incubator/thrift/trunk/lib/java/test/org/apache/thrift/TestStruct.java (original)
+++ incubator/thrift/trunk/lib/java/test/org/apache/thrift/TestStruct.java Wed Oct  6 20:00:03 2010
@@ -196,23 +196,28 @@ public class TestStruct extends TestCase
     Map<CrazyNesting._Fields, FieldMetaData> mdMap = CrazyNesting.metaDataMap;
 
     // Check for struct fields existence
-    assertEquals(3, mdMap.size());
+    assertEquals(4, mdMap.size());
     assertTrue(mdMap.containsKey(CrazyNesting._Fields.SET_FIELD));
     assertTrue(mdMap.containsKey(CrazyNesting._Fields.LIST_FIELD));
     assertTrue(mdMap.containsKey(CrazyNesting._Fields.STRING_FIELD));
+    assertTrue(mdMap.containsKey(CrazyNesting._Fields.BINARY_FIELD));
 
     // Check for struct fields contents
     assertEquals("string_field", mdMap.get(CrazyNesting._Fields.STRING_FIELD).fieldName);
     assertEquals("list_field", mdMap.get(CrazyNesting._Fields.LIST_FIELD).fieldName);
     assertEquals("set_field", mdMap.get(CrazyNesting._Fields.SET_FIELD).fieldName);
+    assertEquals("binary_field", mdMap.get(CrazyNesting._Fields.BINARY_FIELD).fieldName);
 
     assertEquals(TFieldRequirementType.DEFAULT, mdMap.get(CrazyNesting._Fields.STRING_FIELD).requirementType);
     assertEquals(TFieldRequirementType.REQUIRED, mdMap.get(CrazyNesting._Fields.LIST_FIELD).requirementType);
     assertEquals(TFieldRequirementType.OPTIONAL, mdMap.get(CrazyNesting._Fields.SET_FIELD).requirementType);
 
     assertEquals(TType.STRING, mdMap.get(CrazyNesting._Fields.STRING_FIELD).valueMetaData.type);
+    assertFalse(mdMap.get(CrazyNesting._Fields.STRING_FIELD).valueMetaData.isBinary());
     assertEquals(TType.LIST, mdMap.get(CrazyNesting._Fields.LIST_FIELD).valueMetaData.type);
     assertEquals(TType.SET, mdMap.get(CrazyNesting._Fields.SET_FIELD).valueMetaData.type);
+    assertEquals(TType.STRING, mdMap.get(CrazyNesting._Fields.BINARY_FIELD).valueMetaData.type);
+    assertTrue(mdMap.get(CrazyNesting._Fields.BINARY_FIELD).valueMetaData.isBinary());
 
     // Check nested structures
     assertTrue(mdMap.get(CrazyNesting._Fields.LIST_FIELD).valueMetaData.isContainer());

Modified: incubator/thrift/trunk/test/ThriftTest.thrift
URL: http://svn.apache.org/viewvc/incubator/thrift/trunk/test/ThriftTest.thrift?rev=1005220&r1=1005219&r2=1005220&view=diff
==============================================================================
--- incubator/thrift/trunk/test/ThriftTest.thrift (original)
+++ incubator/thrift/trunk/test/ThriftTest.thrift Wed Oct  6 20:00:03 2010
@@ -94,7 +94,8 @@ struct Insanity
 struct CrazyNesting {
   1: string string_field,
   2: optional set<Insanity> set_field,
-  3: required list< map<set<i32>,map<i32,set<list<map<Insanity,string>>>>>> list_field
+  3: required list< map<set<i32>,map<i32,set<list<map<Insanity,string>>>>>> list_field,
+  4: binary binary_field
 }
 
 exception Xception {