This is an automated email from the ASF dual-hosted git repository.

rskraba pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/avro.git


The following commit(s) were added to refs/heads/master by this push:
     new 1034773  AVRO-3048: Use SpecificRecord's MODEL$ in builder creation 
(#1206)
1034773 is described below

commit 103477369fcb49a5372f9f5c1353fcd575119287
Author: Martin Jubelgas <[email protected]>
AuthorDate: Tue May 4 16:04:06 2021 +0200

    AVRO-3048: Use SpecificRecord's MODEL$ in builder creation (#1206)
    
    * AVRO-3048: Use SpecificRecord's MODEL$ in builder creation
    
    * AVRO-3048: fix formatting of code templates
---
 .../org/apache/avro/specific/SpecificErrorBuilderBase.java     | 10 ++++++++++
 .../org/apache/avro/specific/SpecificRecordBuilderBase.java    | 10 ++++++++++
 .../avro/compiler/specific/templates/java/classic/record.vm    |  4 ++--
 .../output-string/avro/examples/baseball/FieldTest.java        |  4 ++--
 .../compiler/output-string/avro/examples/baseball/Player.java  |  4 ++--
 .../compiler/output-string/avro/examples/baseball/Proto.java   |  2 +-
 .../src/test/compiler/output/AddExtraOptionalGettersTest.java  |  4 ++--
 lang/java/tools/src/test/compiler/output/NoSettersTest.java    |  4 ++--
 .../src/test/compiler/output/OptionalGettersAllFieldsTest.java |  4 ++--
 .../compiler/output/OptionalGettersNullableFieldsTest.java     |  4 ++--
 lang/java/tools/src/test/compiler/output/Player.java           |  4 ++--
 11 files changed, 37 insertions(+), 17 deletions(-)

diff --git 
a/lang/java/avro/src/main/java/org/apache/avro/specific/SpecificErrorBuilderBase.java
 
b/lang/java/avro/src/main/java/org/apache/avro/specific/SpecificErrorBuilderBase.java
index 5390a67..2aac97d 100644
--- 
a/lang/java/avro/src/main/java/org/apache/avro/specific/SpecificErrorBuilderBase.java
+++ 
b/lang/java/avro/src/main/java/org/apache/avro/specific/SpecificErrorBuilderBase.java
@@ -45,6 +45,16 @@ abstract public class SpecificErrorBuilderBase<T extends 
SpecificExceptionBase>
   }
 
   /**
+   * Creates a SpecificErrorBuilderBase for building errors of the given type.
+   * 
+   * @param schema the schema associated with the error class.
+   * @param model  the SpecificData instance associated with the error class
+   */
+  protected SpecificErrorBuilderBase(Schema schema, SpecificData model) {
+    super(schema, model);
+  }
+
+  /**
    * SpecificErrorBuilderBase copy constructor.
    * 
    * @param other SpecificErrorBuilderBase instance to copy.
diff --git 
a/lang/java/avro/src/main/java/org/apache/avro/specific/SpecificRecordBuilderBase.java
 
b/lang/java/avro/src/main/java/org/apache/avro/specific/SpecificRecordBuilderBase.java
index 533e9f9..ba5d26a 100644
--- 
a/lang/java/avro/src/main/java/org/apache/avro/specific/SpecificRecordBuilderBase.java
+++ 
b/lang/java/avro/src/main/java/org/apache/avro/specific/SpecificRecordBuilderBase.java
@@ -36,6 +36,16 @@ abstract public class SpecificRecordBuilderBase<T extends 
SpecificRecord> extend
   }
 
   /**
+   * Creates a SpecificRecordBuilderBase for building records of the given 
type.
+   * 
+   * @param schema the schema associated with the record class.
+   * @param model  the SpecificData associated with the specific record class
+   */
+  protected SpecificRecordBuilderBase(Schema schema, SpecificData model) {
+    super(schema, model);
+  }
+
+  /**
    * SpecificRecordBuilderBase copy constructor.
    * 
    * @param other SpecificRecordBuilderBase instance to copy.
diff --git 
a/lang/java/compiler/src/main/velocity/org/apache/avro/compiler/specific/templates/java/classic/record.vm
 
b/lang/java/compiler/src/main/velocity/org/apache/avro/compiler/specific/templates/java/classic/record.vm
index 0eac87b..6449e8f 100755
--- 
a/lang/java/compiler/src/main/velocity/org/apache/avro/compiler/specific/templates/java/classic/record.vm
+++ 
b/lang/java/compiler/src/main/velocity/org/apache/avro/compiler/specific/templates/java/classic/record.vm
@@ -310,7 +310,7 @@ static {
 
     /** Creates a new Builder */
     private Builder() {
-      super(SCHEMA$);
+      super(SCHEMA$, MODEL$);
     }
 
     /**
@@ -338,7 +338,7 @@ static {
      */
     private Builder(#if 
($schema.getNamespace())$this.mangle($schema.getNamespace()).#end${this.mangle($schema.getName())}
 other) {
 #if ($schema.isError())      super(other)#else
-      super(SCHEMA$)#end;
+      super(SCHEMA$, MODEL$)#end;
 #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())});
diff --git 
a/lang/java/tools/src/test/compiler/output-string/avro/examples/baseball/FieldTest.java
 
b/lang/java/tools/src/test/compiler/output-string/avro/examples/baseball/FieldTest.java
index 7a9bb2a..92d81f7 100644
--- 
a/lang/java/tools/src/test/compiler/output-string/avro/examples/baseball/FieldTest.java
+++ 
b/lang/java/tools/src/test/compiler/output-string/avro/examples/baseball/FieldTest.java
@@ -310,7 +310,7 @@ static {
 
     /** Creates a new Builder */
     private Builder() {
-      super(SCHEMA$);
+      super(SCHEMA$, MODEL$);
     }
 
     /**
@@ -350,7 +350,7 @@ static {
      * @param other The existing instance to copy.
      */
     private Builder(avro.examples.baseball.FieldTest other) {
-      super(SCHEMA$);
+      super(SCHEMA$, MODEL$);
       if (isValidValue(fields()[0], other.number)) {
         this.number = data().deepCopy(fields()[0].schema(), other.number);
         fieldSetFlags()[0] = true;
diff --git 
a/lang/java/tools/src/test/compiler/output-string/avro/examples/baseball/Player.java
 
b/lang/java/tools/src/test/compiler/output-string/avro/examples/baseball/Player.java
index c24fdb8..63d475c 100644
--- 
a/lang/java/tools/src/test/compiler/output-string/avro/examples/baseball/Player.java
+++ 
b/lang/java/tools/src/test/compiler/output-string/avro/examples/baseball/Player.java
@@ -242,7 +242,7 @@ public class Player extends 
org.apache.avro.specific.SpecificRecordBase implemen
 
     /** Creates a new Builder */
     private Builder() {
-      super(SCHEMA$);
+      super(SCHEMA$, MODEL$);
     }
 
     /**
@@ -274,7 +274,7 @@ public class Player extends 
org.apache.avro.specific.SpecificRecordBase implemen
      * @param other The existing instance to copy.
      */
     private Builder(avro.examples.baseball.Player other) {
-      super(SCHEMA$);
+      super(SCHEMA$, MODEL$);
       if (isValidValue(fields()[0], other.number)) {
         this.number = data().deepCopy(fields()[0].schema(), other.number);
         fieldSetFlags()[0] = true;
diff --git 
a/lang/java/tools/src/test/compiler/output-string/avro/examples/baseball/Proto.java
 
b/lang/java/tools/src/test/compiler/output-string/avro/examples/baseball/Proto.java
index 4c8a6d0..2046310 100644
--- 
a/lang/java/tools/src/test/compiler/output-string/avro/examples/baseball/Proto.java
+++ 
b/lang/java/tools/src/test/compiler/output-string/avro/examples/baseball/Proto.java
@@ -24,4 +24,4 @@ public interface Proto {
      */
     void bar(org.apache.avro.ipc.Callback<java.lang.Void> callback) throws 
java.io.IOException;
   }
-}
+}
\ No newline at end of file
diff --git 
a/lang/java/tools/src/test/compiler/output/AddExtraOptionalGettersTest.java 
b/lang/java/tools/src/test/compiler/output/AddExtraOptionalGettersTest.java
index 3a545db..d9fe084 100644
--- a/lang/java/tools/src/test/compiler/output/AddExtraOptionalGettersTest.java
+++ b/lang/java/tools/src/test/compiler/output/AddExtraOptionalGettersTest.java
@@ -207,7 +207,7 @@ public class AddExtraOptionalGettersTest extends 
org.apache.avro.specific.Specif
 
     /** Creates a new Builder */
     private Builder() {
-      super(SCHEMA$);
+      super(SCHEMA$, MODEL$);
     }
 
     /**
@@ -231,7 +231,7 @@ public class AddExtraOptionalGettersTest extends 
org.apache.avro.specific.Specif
      * @param other The existing instance to copy.
      */
     private Builder(avro.examples.baseball.AddExtraOptionalGettersTest other) {
-      super(SCHEMA$);
+      super(SCHEMA$, MODEL$);
       if (isValidValue(fields()[0], other.name)) {
         this.name = data().deepCopy(fields()[0].schema(), other.name);
         fieldSetFlags()[0] = true;
diff --git a/lang/java/tools/src/test/compiler/output/NoSettersTest.java 
b/lang/java/tools/src/test/compiler/output/NoSettersTest.java
index 266096a..12d1de5 100644
--- a/lang/java/tools/src/test/compiler/output/NoSettersTest.java
+++ b/lang/java/tools/src/test/compiler/output/NoSettersTest.java
@@ -179,7 +179,7 @@ public class NoSettersTest extends 
org.apache.avro.specific.SpecificRecordBase i
 
     /** Creates a new Builder */
     private Builder() {
-      super(SCHEMA$);
+      super(SCHEMA$, MODEL$);
     }
 
     /**
@@ -203,7 +203,7 @@ public class NoSettersTest extends 
org.apache.avro.specific.SpecificRecordBase i
      * @param other The existing instance to copy.
      */
     private Builder(avro.examples.baseball.NoSettersTest other) {
-      super(SCHEMA$);
+      super(SCHEMA$, MODEL$);
       if (isValidValue(fields()[0], other.name)) {
         this.name = data().deepCopy(fields()[0].schema(), other.name);
         fieldSetFlags()[0] = true;
diff --git 
a/lang/java/tools/src/test/compiler/output/OptionalGettersAllFieldsTest.java 
b/lang/java/tools/src/test/compiler/output/OptionalGettersAllFieldsTest.java
index 5570d8d..6abbfe4 100644
--- a/lang/java/tools/src/test/compiler/output/OptionalGettersAllFieldsTest.java
+++ b/lang/java/tools/src/test/compiler/output/OptionalGettersAllFieldsTest.java
@@ -239,7 +239,7 @@ public class OptionalGettersAllFieldsTest extends 
org.apache.avro.specific.Speci
 
     /** Creates a new Builder */
     private Builder() {
-      super(SCHEMA$);
+      super(SCHEMA$, MODEL$);
     }
 
     /**
@@ -271,7 +271,7 @@ public class OptionalGettersAllFieldsTest extends 
org.apache.avro.specific.Speci
      * @param other The existing instance to copy.
      */
     private Builder(avro.examples.baseball.OptionalGettersAllFieldsTest other) 
{
-      super(SCHEMA$);
+      super(SCHEMA$, MODEL$);
       if (isValidValue(fields()[0], other.name)) {
         this.name = data().deepCopy(fields()[0].schema(), other.name);
         fieldSetFlags()[0] = true;
diff --git 
a/lang/java/tools/src/test/compiler/output/OptionalGettersNullableFieldsTest.java
 
b/lang/java/tools/src/test/compiler/output/OptionalGettersNullableFieldsTest.java
index 6a733a2..bc9b756 100644
--- 
a/lang/java/tools/src/test/compiler/output/OptionalGettersNullableFieldsTest.java
+++ 
b/lang/java/tools/src/test/compiler/output/OptionalGettersNullableFieldsTest.java
@@ -239,7 +239,7 @@ public class OptionalGettersNullableFieldsTest extends 
org.apache.avro.specific.
 
     /** Creates a new Builder */
     private Builder() {
-      super(SCHEMA$);
+      super(SCHEMA$, MODEL$);
     }
 
     /**
@@ -271,7 +271,7 @@ public class OptionalGettersNullableFieldsTest extends 
org.apache.avro.specific.
      * @param other The existing instance to copy.
      */
     private Builder(avro.examples.baseball.OptionalGettersNullableFieldsTest 
other) {
-      super(SCHEMA$);
+      super(SCHEMA$, MODEL$);
       if (isValidValue(fields()[0], other.name)) {
         this.name = data().deepCopy(fields()[0].schema(), other.name);
         fieldSetFlags()[0] = true;
diff --git a/lang/java/tools/src/test/compiler/output/Player.java 
b/lang/java/tools/src/test/compiler/output/Player.java
index 61cc22f..731ced7 100644
--- a/lang/java/tools/src/test/compiler/output/Player.java
+++ b/lang/java/tools/src/test/compiler/output/Player.java
@@ -242,7 +242,7 @@ public class Player extends 
org.apache.avro.specific.SpecificRecordBase implemen
 
     /** Creates a new Builder */
     private Builder() {
-      super(SCHEMA$);
+      super(SCHEMA$, MODEL$);
     }
 
     /**
@@ -274,7 +274,7 @@ public class Player extends 
org.apache.avro.specific.SpecificRecordBase implemen
      * @param other The existing instance to copy.
      */
     private Builder(avro.examples.baseball.Player other) {
-      super(SCHEMA$);
+      super(SCHEMA$, MODEL$);
       if (isValidValue(fields()[0], other.number)) {
         this.number = data().deepCopy(fields()[0].schema(), other.number);
         fieldSetFlags()[0] = true;

Reply via email to