You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@avro.apache.org by cu...@apache.org on 2013/04/22 21:50:19 UTC
svn commit: r1470682 - in /avro/trunk: ./
lang/java/compiler/src/main/velocity/org/apache/avro/compiler/specific/templates/java/classic/
lang/java/tools/src/test/compiler/output-string/avro/examples/baseball/
lang/java/tools/src/test/compiler/output/
Author: cutting
Date: Mon Apr 22 19:50:19 2013
New Revision: 1470682
URL: http://svn.apache.org/r1470682
Log:
AVRO-1300. Java: Fix generated copy constructors to copy field values. Contributed by taton.
Modified:
avro/trunk/CHANGES.txt
avro/trunk/lang/java/compiler/src/main/velocity/org/apache/avro/compiler/specific/templates/java/classic/record.vm
avro/trunk/lang/java/tools/src/test/compiler/output-string/avro/examples/baseball/Player.java
avro/trunk/lang/java/tools/src/test/compiler/output/Player.java
Modified: avro/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/avro/trunk/CHANGES.txt?rev=1470682&r1=1470681&r2=1470682&view=diff
==============================================================================
--- avro/trunk/CHANGES.txt (original)
+++ avro/trunk/CHANGES.txt Mon Apr 22 19:50:19 2013
@@ -39,6 +39,9 @@ Trunk (not yet released)
AVRO-1295. Java: Fix printing of a non-null namespace within a
null namespace. (cutting)
+ AVRO-1300. Java: Fix generated copy constructors to copy field
+ values. (Christophe Taton via cutting)
+
Avro 1.7.4 (22 February 2012)
NEW FEATURES
Modified: avro/trunk/lang/java/compiler/src/main/velocity/org/apache/avro/compiler/specific/templates/java/classic/record.vm
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/compiler/src/main/velocity/org/apache/avro/compiler/specific/templates/java/classic/record.vm?rev=1470682&r1=1470681&r2=1470682&view=diff
==============================================================================
--- avro/trunk/lang/java/compiler/src/main/velocity/org/apache/avro/compiler/specific/templates/java/classic/record.vm (original)
+++ avro/trunk/lang/java/compiler/src/main/velocity/org/apache/avro/compiler/specific/templates/java/classic/record.vm Mon Apr 22 19:50:19 2013
@@ -155,6 +155,12 @@ public class ${this.mangle($schema.getNa
/** Creates a Builder by copying an existing Builder */
private Builder(#if ($schema.getNamespace())$schema.getNamespace().#end${this.mangle($schema.getName())}.Builder other) {
super(other);
+#foreach ($field in $schema.getFields())
+ if (isValidValue(fields()[$field.pos()], other.${this.mangle($field.name(), $schema.isError())})) {
+ this.${this.mangle($field.name(), $schema.isError())} = data().deepCopy(fields()[$field.pos()].schema(), other.${this.mangle($field.name(), $schema.isError())});
+ fieldSetFlags()[$field.pos()] = true;
+ }
+#end
}
/** Creates a Builder by copying an existing $this.mangle($schema.getName()) instance */
Modified: avro/trunk/lang/java/tools/src/test/compiler/output-string/avro/examples/baseball/Player.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/tools/src/test/compiler/output-string/avro/examples/baseball/Player.java?rev=1470682&r1=1470681&r2=1470682&view=diff
==============================================================================
--- avro/trunk/lang/java/tools/src/test/compiler/output-string/avro/examples/baseball/Player.java (original)
+++ avro/trunk/lang/java/tools/src/test/compiler/output-string/avro/examples/baseball/Player.java Mon Apr 22 19:50:19 2013
@@ -146,6 +146,22 @@ public class Player extends org.apache.a
/** Creates a Builder by copying an existing Builder */
private Builder(avro.examples.baseball.Player.Builder other) {
super(other);
+ if (isValidValue(fields()[0], other.number)) {
+ this.number = data().deepCopy(fields()[0].schema(), other.number);
+ fieldSetFlags()[0] = true;
+ }
+ if (isValidValue(fields()[1], other.first_name)) {
+ this.first_name = data().deepCopy(fields()[1].schema(), other.first_name);
+ fieldSetFlags()[1] = true;
+ }
+ if (isValidValue(fields()[2], other.last_name)) {
+ this.last_name = data().deepCopy(fields()[2].schema(), other.last_name);
+ fieldSetFlags()[2] = true;
+ }
+ if (isValidValue(fields()[3], other.position)) {
+ this.position = data().deepCopy(fields()[3].schema(), other.position);
+ fieldSetFlags()[3] = true;
+ }
}
/** Creates a Builder by copying an existing Player instance */
Modified: avro/trunk/lang/java/tools/src/test/compiler/output/Player.java
URL: http://svn.apache.org/viewvc/avro/trunk/lang/java/tools/src/test/compiler/output/Player.java?rev=1470682&r1=1470681&r2=1470682&view=diff
==============================================================================
--- avro/trunk/lang/java/tools/src/test/compiler/output/Player.java (original)
+++ avro/trunk/lang/java/tools/src/test/compiler/output/Player.java Mon Apr 22 19:50:19 2013
@@ -146,6 +146,22 @@ public class Player extends org.apache.a
/** Creates a Builder by copying an existing Builder */
private Builder(avro.examples.baseball.Player.Builder other) {
super(other);
+ if (isValidValue(fields()[0], other.number)) {
+ this.number = data().deepCopy(fields()[0].schema(), other.number);
+ fieldSetFlags()[0] = true;
+ }
+ if (isValidValue(fields()[1], other.first_name)) {
+ this.first_name = data().deepCopy(fields()[1].schema(), other.first_name);
+ fieldSetFlags()[1] = true;
+ }
+ if (isValidValue(fields()[2], other.last_name)) {
+ this.last_name = data().deepCopy(fields()[2].schema(), other.last_name);
+ fieldSetFlags()[2] = true;
+ }
+ if (isValidValue(fields()[3], other.position)) {
+ this.position = data().deepCopy(fields()[3].schema(), other.position);
+ fieldSetFlags()[3] = true;
+ }
}
/** Creates a Builder by copying an existing Player instance */