opwvhk commented on code in PR #2142:
URL: https://github.com/apache/avro/pull/2142#discussion_r1135209276


##########
lang/java/tools/src/test/compiler/output-string/avro/examples/baseball/NullSafeAnnotationsFieldsTest.java:
##########
@@ -0,0 +1,597 @@
+/**
+ * Autogenerated by Avro
+ *
+ * DO NOT EDIT DIRECTLY
+ */
+package avro.examples.baseball;
+
+import org.apache.avro.generic.GenericArray;
+import org.apache.avro.specific.SpecificData;
+import org.apache.avro.util.Utf8;
+import org.apache.avro.message.BinaryMessageEncoder;
+import org.apache.avro.message.BinaryMessageDecoder;
+import org.apache.avro.message.SchemaStore;
+import org.jetbrains.annotations.Nullable;
+import org.jetbrains.annotations.NotNull;
+
+/** Test that @Nullable and @NotNull annotations are created for all fields */
[email protected]
+public class NullSafeAnnotationsFieldsTest extends 
org.apache.avro.specific.SpecificRecordBase implements 
org.apache.avro.specific.SpecificRecord {
+  private static final long serialVersionUID = 2020521726426674816L;
+
+
+  public static final org.apache.avro.Schema SCHEMA$ = new 
org.apache.avro.Schema.Parser().parse("{\"type\":\"record\",\"name\":\"NullSafeAnnotationsFieldsTest\",\"namespace\":\"avro.examples.baseball\",\"doc\":\"Test
 that @Nullable and @NotNull annotations are created for all 
fields\",\"fields\":[{\"name\":\"name\",\"type\":{\"type\":\"string\",\"avro.java.string\":\"String\"}},{\"name\":\"nullable_name\",\"type\":[{\"type\":\"string\",\"avro.java.string\":\"String\"},\"null\"]},{\"name\":\"favorite_number\",\"type\":\"int\"},{\"name\":\"nullable_favorite_number\",\"type\":[\"int\",\"null\"]}]}");
+  public static org.apache.avro.Schema getClassSchema() { return SCHEMA$; }
+
+  private static final SpecificData MODEL$ = new SpecificData();
+
+  private static final BinaryMessageEncoder<NullSafeAnnotationsFieldsTest> 
ENCODER =
+      new BinaryMessageEncoder<>(MODEL$, SCHEMA$);
+
+  private static final BinaryMessageDecoder<NullSafeAnnotationsFieldsTest> 
DECODER =
+      new BinaryMessageDecoder<>(MODEL$, SCHEMA$);
+
+  /**
+   * Return the BinaryMessageEncoder instance used by this class.
+   * @return the message encoder used by this class
+   */
+  public static BinaryMessageEncoder<NullSafeAnnotationsFieldsTest> 
getEncoder() {
+    return ENCODER;
+  }
+
+  /**
+   * Return the BinaryMessageDecoder instance used by this class.
+   * @return the message decoder used by this class
+   */
+  public static BinaryMessageDecoder<NullSafeAnnotationsFieldsTest> 
getDecoder() {
+    return DECODER;
+  }
+
+  /**
+   * Create a new BinaryMessageDecoder instance for this class that uses the 
specified {@link SchemaStore}.
+   * @param resolver a {@link SchemaStore} used to find schemas by fingerprint
+   * @return a BinaryMessageDecoder instance for this class backed by the 
given SchemaStore
+   */
+  public static BinaryMessageDecoder<NullSafeAnnotationsFieldsTest> 
createDecoder(SchemaStore resolver) {
+    return new BinaryMessageDecoder<>(MODEL$, SCHEMA$, resolver);
+  }
+
+  /**
+   * Serializes this NullSafeAnnotationsFieldsTest to a ByteBuffer.
+   * @return a buffer holding the serialized data for this instance
+   * @throws java.io.IOException if this instance could not be serialized
+   */
+  public java.nio.ByteBuffer toByteBuffer() throws java.io.IOException {
+    return ENCODER.encode(this);
+  }
+
+  /**
+   * Deserializes a NullSafeAnnotationsFieldsTest from a ByteBuffer.
+   * @param b a byte buffer holding serialized data for an instance of this 
class
+   * @return a NullSafeAnnotationsFieldsTest instance decoded from the given 
buffer
+   * @throws java.io.IOException if the given bytes could not be deserialized 
into an instance of this class
+   */
+  public static NullSafeAnnotationsFieldsTest fromByteBuffer(
+      java.nio.ByteBuffer b) throws java.io.IOException {
+    return DECODER.decode(b);
+  }
+
+  private java.lang.String name;
+  private java.lang.String nullable_name;
+  private int favorite_number;
+  private java.lang.Integer nullable_favorite_number;
+
+  /**
+   * Default constructor.  Note that this does not initialize fields
+   * to their default values from the schema.  If that is desired then
+   * one should use <code>newBuilder()</code>.
+   */
+  public NullSafeAnnotationsFieldsTest() {}
+
+  /**
+   * All-args constructor.
+   * @param name The new value for name
+   * @param nullable_name The new value for nullable_name
+   * @param favorite_number The new value for favorite_number
+   * @param nullable_favorite_number The new value for nullable_favorite_number
+   */
+  public NullSafeAnnotationsFieldsTest(@NotNull java.lang.String name, 
@Nullable java.lang.String nullable_name, @NotNull java.lang.Integer 
favorite_number, @Nullable java.lang.Integer nullable_favorite_number) {
+    this.name = name;
+    this.nullable_name = nullable_name;
+    this.favorite_number = favorite_number;
+    this.nullable_favorite_number = nullable_favorite_number;
+  }
+
+  @Override
+  public org.apache.avro.specific.SpecificData getSpecificData() { return 
MODEL$; }
+
+  @Override
+  public org.apache.avro.Schema getSchema() { return SCHEMA$; }
+
+  // Used by DatumWriter.  Applications should not call.
+  @Override
+  public java.lang.Object get(int field$) {
+    switch (field$) {
+    case 0: return name;
+    case 1: return nullable_name;
+    case 2: return favorite_number;
+    case 3: return nullable_favorite_number;
+    default: throw new IndexOutOfBoundsException("Invalid index: " + field$);
+    }
+  }
+
+  // Used by DatumReader.  Applications should not call.
+  @Override
+  @SuppressWarnings(value="unchecked")
+  public void put(int field$, java.lang.Object value$) {
+    switch (field$) {
+    case 0: name = value$ != null ? value$.toString() : null; break;
+    case 1: nullable_name = value$ != null ? value$.toString() : null; break;
+    case 2: favorite_number = (java.lang.Integer)value$; break;
+    case 3: nullable_favorite_number = (java.lang.Integer)value$; break;
+    default: throw new IndexOutOfBoundsException("Invalid index: " + field$);
+    }
+  }
+
+  /**
+   * Gets the value of the 'name' field.
+   * @return The value of the 'name' field.
+   */
+  @NotNull
+  public java.lang.String getName() {
+    return name;
+  }
+
+
+  /**
+   * Sets the value of the 'name' field.
+   * @param value the value to set.
+   */
+  public void setName(@NotNull java.lang.String value) {
+    this.name = value;
+  }
+
+  /**
+   * Gets the value of the 'nullable_name' field.
+   * @return The value of the 'nullable_name' field.
+   */
+  @Nullable
+  public java.lang.String getNullableName() {
+    return nullable_name;
+  }
+
+
+  /**
+   * Sets the value of the 'nullable_name' field.
+   * @param value the value to set.
+   */
+  public void setNullableName(@Nullable java.lang.String value) {
+    this.nullable_name = value;
+  }
+
+  /**
+   * Gets the value of the 'favorite_number' field.
+   * @return The value of the 'favorite_number' field.
+   */
+  @NotNull
+  public int getFavoriteNumber() {
+    return favorite_number;
+  }
+
+
+  /**
+   * Sets the value of the 'favorite_number' field.
+   * @param value the value to set.
+   */
+  public void setFavoriteNumber(@NotNull int value) {
+    this.favorite_number = value;
+  }
+
+  /**
+   * Gets the value of the 'nullable_favorite_number' field.
+   * @return The value of the 'nullable_favorite_number' field.
+   */
+  @Nullable
+  public java.lang.Integer getNullableFavoriteNumber() {
+    return nullable_favorite_number;
+  }
+
+
+  /**
+   * Sets the value of the 'nullable_favorite_number' field.
+   * @param value the value to set.
+   */
+  public void setNullableFavoriteNumber(@Nullable java.lang.Integer value) {
+    this.nullable_favorite_number = value;
+  }
+
+  /**
+   * Creates a new NullSafeAnnotationsFieldsTest RecordBuilder.
+   * @return A new NullSafeAnnotationsFieldsTest RecordBuilder
+   */
+  public static avro.examples.baseball.NullSafeAnnotationsFieldsTest.Builder 
newBuilder() {
+    return new avro.examples.baseball.NullSafeAnnotationsFieldsTest.Builder();
+  }
+
+  /**
+   * Creates a new NullSafeAnnotationsFieldsTest RecordBuilder by copying an 
existing Builder.
+   * @param other The existing builder to copy.
+   * @return A new NullSafeAnnotationsFieldsTest RecordBuilder
+   */
+  public static avro.examples.baseball.NullSafeAnnotationsFieldsTest.Builder 
newBuilder(avro.examples.baseball.NullSafeAnnotationsFieldsTest.Builder other) {
+    if (other == null) {
+      return new 
avro.examples.baseball.NullSafeAnnotationsFieldsTest.Builder();
+    } else {
+      return new 
avro.examples.baseball.NullSafeAnnotationsFieldsTest.Builder(other);
+    }
+  }
+
+  /**
+   * Creates a new NullSafeAnnotationsFieldsTest RecordBuilder by copying an 
existing NullSafeAnnotationsFieldsTest instance.
+   * @param other The existing instance to copy.
+   * @return A new NullSafeAnnotationsFieldsTest RecordBuilder
+   */
+  public static avro.examples.baseball.NullSafeAnnotationsFieldsTest.Builder 
newBuilder(avro.examples.baseball.NullSafeAnnotationsFieldsTest other) {
+    if (other == null) {
+      return new 
avro.examples.baseball.NullSafeAnnotationsFieldsTest.Builder();
+    } else {
+      return new 
avro.examples.baseball.NullSafeAnnotationsFieldsTest.Builder(other);
+    }
+  }
+
+  /**
+   * RecordBuilder for NullSafeAnnotationsFieldsTest instances.
+   */
+  @org.apache.avro.specific.AvroGenerated
+  public static class Builder extends 
org.apache.avro.specific.SpecificRecordBuilderBase<NullSafeAnnotationsFieldsTest>
+    implements 
org.apache.avro.data.RecordBuilder<NullSafeAnnotationsFieldsTest> {
+
+    private java.lang.String name;
+    private java.lang.String nullable_name;
+    private int favorite_number;
+    private java.lang.Integer nullable_favorite_number;
+
+    /** Creates a new Builder */
+    private Builder() {
+      super(SCHEMA$, MODEL$);
+    }
+
+    /**
+     * Creates a Builder by copying an existing Builder.
+     * @param other The existing Builder to copy.
+     */
+    private 
Builder(avro.examples.baseball.NullSafeAnnotationsFieldsTest.Builder other) {
+      super(other);
+      if (isValidValue(fields()[0], other.name)) {
+        this.name = data().deepCopy(fields()[0].schema(), other.name);
+        fieldSetFlags()[0] = other.fieldSetFlags()[0];
+      }
+      if (isValidValue(fields()[1], other.nullable_name)) {
+        this.nullable_name = data().deepCopy(fields()[1].schema(), 
other.nullable_name);
+        fieldSetFlags()[1] = other.fieldSetFlags()[1];
+      }
+      if (isValidValue(fields()[2], other.favorite_number)) {
+        this.favorite_number = data().deepCopy(fields()[2].schema(), 
other.favorite_number);
+        fieldSetFlags()[2] = other.fieldSetFlags()[2];
+      }
+      if (isValidValue(fields()[3], other.nullable_favorite_number)) {
+        this.nullable_favorite_number = data().deepCopy(fields()[3].schema(), 
other.nullable_favorite_number);
+        fieldSetFlags()[3] = other.fieldSetFlags()[3];
+      }
+    }
+
+    /**
+     * Creates a Builder by copying an existing NullSafeAnnotationsFieldsTest 
instance
+     * @param other The existing instance to copy.
+     */
+    private Builder(avro.examples.baseball.NullSafeAnnotationsFieldsTest 
other) {
+      super(SCHEMA$, MODEL$);
+      if (isValidValue(fields()[0], other.name)) {
+        this.name = data().deepCopy(fields()[0].schema(), other.name);
+        fieldSetFlags()[0] = true;
+      }
+      if (isValidValue(fields()[1], other.nullable_name)) {
+        this.nullable_name = data().deepCopy(fields()[1].schema(), 
other.nullable_name);
+        fieldSetFlags()[1] = true;
+      }
+      if (isValidValue(fields()[2], other.favorite_number)) {
+        this.favorite_number = data().deepCopy(fields()[2].schema(), 
other.favorite_number);
+        fieldSetFlags()[2] = true;
+      }
+      if (isValidValue(fields()[3], other.nullable_favorite_number)) {
+        this.nullable_favorite_number = data().deepCopy(fields()[3].schema(), 
other.nullable_favorite_number);
+        fieldSetFlags()[3] = true;
+      }
+    }
+
+    /**
+      * Gets the value of the 'name' field.
+      * @return The value.
+      */
+    public java.lang.String getName() {
+      return name;
+    }
+
+
+    /**
+      * Sets the value of the 'name' field.
+      * @param value The value of 'name'.
+      * @return This builder.
+      */
+    public avro.examples.baseball.NullSafeAnnotationsFieldsTest.Builder 
setName(@NotNull java.lang.String value) {
+      validate(fields()[0], value);
+      this.name = value;
+      fieldSetFlags()[0] = true;
+      return this;
+    }
+
+    /**
+      * Checks whether the 'name' field has been set.
+      * @return True if the 'name' field has been set, false otherwise.
+      */
+    public boolean hasName() {
+      return fieldSetFlags()[0];
+    }
+
+
+    /**
+      * Clears the value of the 'name' field.
+      * @return This builder.
+      */
+    public avro.examples.baseball.NullSafeAnnotationsFieldsTest.Builder 
clearName() {
+      name = null;
+      fieldSetFlags()[0] = false;
+      return this;
+    }
+
+    /**
+      * Gets the value of the 'nullable_name' field.
+      * @return The value.
+      */
+    public java.lang.String getNullableName() {
+      return nullable_name;
+    }
+
+
+    /**
+      * Sets the value of the 'nullable_name' field.
+      * @param value The value of 'nullable_name'.
+      * @return This builder.
+      */
+    public avro.examples.baseball.NullSafeAnnotationsFieldsTest.Builder 
setNullableName(@Nullable java.lang.String value) {
+      validate(fields()[1], value);
+      this.nullable_name = value;
+      fieldSetFlags()[1] = true;
+      return this;
+    }
+
+    /**
+      * Checks whether the 'nullable_name' field has been set.
+      * @return True if the 'nullable_name' field has been set, false 
otherwise.
+      */
+    public boolean hasNullableName() {
+      return fieldSetFlags()[1];
+    }
+
+
+    /**
+      * Clears the value of the 'nullable_name' field.
+      * @return This builder.
+      */
+    public avro.examples.baseball.NullSafeAnnotationsFieldsTest.Builder 
clearNullableName() {
+      nullable_name = null;
+      fieldSetFlags()[1] = false;
+      return this;
+    }
+
+    /**
+      * Gets the value of the 'favorite_number' field.
+      * @return The value.
+      */
+    public int getFavoriteNumber() {
+      return favorite_number;
+    }
+
+
+    /**
+      * Sets the value of the 'favorite_number' field.
+      * @param value The value of 'favorite_number'.
+      * @return This builder.
+      */
+    public avro.examples.baseball.NullSafeAnnotationsFieldsTest.Builder 
setFavoriteNumber(@NotNull int value) {
+      validate(fields()[2], value);
+      this.favorite_number = value;
+      fieldSetFlags()[2] = true;
+      return this;
+    }
+
+    /**
+      * Checks whether the 'favorite_number' field has been set.
+      * @return True if the 'favorite_number' field has been set, false 
otherwise.
+      */
+    public boolean hasFavoriteNumber() {
+      return fieldSetFlags()[2];
+    }
+
+
+    /**
+      * Clears the value of the 'favorite_number' field.
+      * @return This builder.
+      */
+    public avro.examples.baseball.NullSafeAnnotationsFieldsTest.Builder 
clearFavoriteNumber() {
+      fieldSetFlags()[2] = false;
+      return this;
+    }
+
+    /**
+      * Gets the value of the 'nullable_favorite_number' field.
+      * @return The value.
+      */
+    public java.lang.Integer getNullableFavoriteNumber() {
+      return nullable_favorite_number;
+    }
+
+
+    /**
+      * Sets the value of the 'nullable_favorite_number' field.
+      * @param value The value of 'nullable_favorite_number'.
+      * @return This builder.
+      */
+    public avro.examples.baseball.NullSafeAnnotationsFieldsTest.Builder 
setNullableFavoriteNumber(@Nullable java.lang.Integer value) {
+      validate(fields()[3], value);
+      this.nullable_favorite_number = value;
+      fieldSetFlags()[3] = true;
+      return this;
+    }
+
+    /**
+      * Checks whether the 'nullable_favorite_number' field has been set.
+      * @return True if the 'nullable_favorite_number' field has been set, 
false otherwise.
+      */
+    public boolean hasNullableFavoriteNumber() {
+      return fieldSetFlags()[3];
+    }
+
+
+    /**
+      * Clears the value of the 'nullable_favorite_number' field.
+      * @return This builder.
+      */
+    public avro.examples.baseball.NullSafeAnnotationsFieldsTest.Builder 
clearNullableFavoriteNumber() {
+      nullable_favorite_number = null;
+      fieldSetFlags()[3] = false;
+      return this;
+    }
+
+    @Override
+    @SuppressWarnings("unchecked")
+    public NullSafeAnnotationsFieldsTest build() {
+      try {
+        NullSafeAnnotationsFieldsTest record = new 
NullSafeAnnotationsFieldsTest();
+        record.name = fieldSetFlags()[0] ? this.name : (java.lang.String) 
defaultValue(fields()[0]);
+        record.nullable_name = fieldSetFlags()[1] ? this.nullable_name : 
(java.lang.String) defaultValue(fields()[1]);
+        record.favorite_number = fieldSetFlags()[2] ? this.favorite_number : 
(java.lang.Integer) defaultValue(fields()[2]);
+        record.nullable_favorite_number = fieldSetFlags()[3] ? 
this.nullable_favorite_number : (java.lang.Integer) defaultValue(fields()[3]);
+        return record;
+      } catch (org.apache.avro.AvroMissingFieldException e) {
+        throw e;
+      } catch (java.lang.Exception e) {
+        throw new org.apache.avro.AvroRuntimeException(e);
+      }
+    }
+  }
+
+  @SuppressWarnings("unchecked")
+  private static final 
org.apache.avro.io.DatumWriter<NullSafeAnnotationsFieldsTest>
+    WRITER$ = 
(org.apache.avro.io.DatumWriter<NullSafeAnnotationsFieldsTest>)MODEL$.createDatumWriter(SCHEMA$);
+
+  @Override public void writeExternal(java.io.ObjectOutput out)
+    throws java.io.IOException {
+    WRITER$.write(this, SpecificData.getEncoder(out));
+  }
+
+  @SuppressWarnings("unchecked")
+  private static final 
org.apache.avro.io.DatumReader<NullSafeAnnotationsFieldsTest>
+    READER$ = 
(org.apache.avro.io.DatumReader<NullSafeAnnotationsFieldsTest>)MODEL$.createDatumReader(SCHEMA$);
+
+  @Override public void readExternal(java.io.ObjectInput in)
+    throws java.io.IOException {
+    READER$.read(this, SpecificData.getDecoder(in));
+  }
+
+  @Override protected boolean hasCustomCoders() { return true; }
+
+  @Override public void customEncode(org.apache.avro.io.Encoder out)
+    throws java.io.IOException
+  {
+    out.writeString(this.name);
+
+    if (this.nullable_name == null) {
+      out.writeIndex(1);
+      out.writeNull();
+    } else {
+      out.writeIndex(0);
+      out.writeString(this.nullable_name);
+    }
+
+    out.writeInt(this.favorite_number);
+
+    if (this.nullable_favorite_number == null) {
+      out.writeIndex(1);
+      out.writeNull();
+    } else {
+      out.writeIndex(0);
+      out.writeInt(this.nullable_favorite_number);
+    }
+
+  }
+
+  @Override public void customDecode(org.apache.avro.io.ResolvingDecoder in)
+    throws java.io.IOException
+  {
+    org.apache.avro.Schema.Field[] fieldOrder = in.readFieldOrderIfDiff();
+    if (fieldOrder == null) {
+      this.name = in.readString();
+
+      if (in.readIndex() != 0) {
+        in.readNull();
+        this.nullable_name = null;
+      } else {
+        this.nullable_name = in.readString();
+      }
+
+      this.favorite_number = in.readInt();
+
+      if (in.readIndex() != 0) {
+        in.readNull();
+        this.nullable_favorite_number = null;
+      } else {
+        this.nullable_favorite_number = in.readInt();
+      }
+
+    } else {
+      for (int i = 0; i < 4; i++) {
+        switch (fieldOrder[i].pos()) {
+        case 0:
+          this.name = in.readString();
+          break;
+
+        case 1:
+          if (in.readIndex() != 0) {
+            in.readNull();
+            this.nullable_name = null;
+          } else {
+            this.nullable_name = in.readString();
+          }
+          break;
+
+        case 2:
+          this.favorite_number = in.readInt();
+          break;
+
+        case 3:
+          if (in.readIndex() != 0) {
+            in.readNull();
+            this.nullable_favorite_number = null;
+          } else {
+            this.nullable_favorite_number = in.readInt();
+          }
+          break;
+
+        default:
+          throw new java.io.IOException("Corrupt ResolvingDecoder.");
+        }
+      }
+    }
+  }
+}
+
+
+
+
+
+
+
+
+
+

Review Comment:
   Minor issue: we can to with less newlines here, can we?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to