All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.adgear.anoa.test.nested.Variant Maven / Gradle / Ivy

There is a newer version: 3.1.2
Show newest version
/**
 * Autogenerated by Avro
 * 
 * DO NOT EDIT DIRECTLY
 */

package com.adgear.anoa.test.nested;

public interface Variant
  extends java.util.function.Supplier,
          java.lang.Comparable>,
          java.io.Serializable {

  /** True if all fields are set to default values. */
  default boolean isDefault() {
    return
      isDefaultIntVariant() &&
      isDefaultLongVariant() &&
      isDefaultFloatVariant() &&
      isDefaultDoubleVariant() &&
      isDefaultBooleanVariant() &&
      isDefaultStringVariant() &&
      isDefaultBytesVariant();
  }

  /** Returns underlying object. */
  T get();

  /** Creates a new builder based on this object. */
  Builder newBuilder();

  int getIntVariant();

  boolean isDefaultIntVariant();

  long getLongVariant();

  boolean isDefaultLongVariant();

  float getFloatVariant();

  boolean isDefaultFloatVariant();

  double getDoubleVariant();

  boolean isDefaultDoubleVariant();

  boolean getBooleanVariant();

  boolean isDefaultBooleanVariant();

  java.lang.String getStringVariant();

  boolean isDefaultStringVariant();

  java.util.function.Supplier getBytesVariant();

  boolean isDefaultBytesVariant();

  public interface Builder {

    Variant build();

    Builder setIntVariant(int value);

    Builder clearIntVariant();

    Builder setLongVariant(long value);

    Builder clearLongVariant();

    Builder setFloatVariant(float value);

    Builder clearFloatVariant();

    Builder setDoubleVariant(double value);

    Builder clearDoubleVariant();

    Builder setBooleanVariant(boolean value);

    Builder clearBooleanVariant();

    Builder setStringVariant(java.lang.String value);

    Builder clearStringVariant();

    Builder setBytesVariant(java.util.function.Supplier value);

    Builder clearBytesVariant();
  }


  static class Comparator implements java.util.Comparator>, java.io.Serializable {

    @Override public int compare(com.adgear.anoa.test.nested.Variant a, com.adgear.anoa.test.nested.Variant b) {
      int _cmp;
      if (0 != (_cmp = compareIntVariant(a, b))) return _cmp;
      if (0 != (_cmp = compareLongVariant(a, b))) return _cmp;
      if (0 != (_cmp = compareFloatVariant(a, b))) return _cmp;
      if (0 != (_cmp = compareDoubleVariant(a, b))) return _cmp;
      if (0 != (_cmp = compareBooleanVariant(a, b))) return _cmp;
      if (0 != (_cmp = compareStringVariant(a, b))) return _cmp;
      if (0 != (_cmp = compareBytesVariant(a, b))) return _cmp;
      return 0;
    }

    static private int compareIntVariant (com.adgear.anoa.test.nested.Variant a, com.adgear.anoa.test.nested.Variant b) {
      final java.lang.Integer fa = a.getIntVariant();
      final java.lang.Integer fb = b.getIntVariant();
      return java.lang.Integer.compareUnsigned(fa, fb);
    }

    static private int compareLongVariant (com.adgear.anoa.test.nested.Variant a, com.adgear.anoa.test.nested.Variant b) {
      final java.lang.Long fa = a.getLongVariant();
      final java.lang.Long fb = b.getLongVariant();
      return java.lang.Long.compare(fa, fb);
    }

    static private int compareFloatVariant (com.adgear.anoa.test.nested.Variant a, com.adgear.anoa.test.nested.Variant b) {
      final java.lang.Float fa = a.getFloatVariant();
      final java.lang.Float fb = b.getFloatVariant();
      return java.lang.Float.compare(fa, fb);
    }

    static private int compareDoubleVariant (com.adgear.anoa.test.nested.Variant a, com.adgear.anoa.test.nested.Variant b) {
      final java.lang.Double fa = a.getDoubleVariant();
      final java.lang.Double fb = b.getDoubleVariant();
      return java.lang.Double.compare(fa, fb);
    }

    static private int compareBooleanVariant (com.adgear.anoa.test.nested.Variant a, com.adgear.anoa.test.nested.Variant b) {
      final java.lang.Boolean fa = a.getBooleanVariant();
      final java.lang.Boolean fb = b.getBooleanVariant();
      return ((fa) ? 1 : 0) - ((fb) ? 1 : 0);
    }

    static private int compareStringVariant (com.adgear.anoa.test.nested.Variant a, com.adgear.anoa.test.nested.Variant b) {
      final java.lang.String fa = a.getStringVariant();
      final java.lang.String fb = b.getStringVariant();
      return fa.compareTo(fb);
    }

    static private int compareBytesVariant (com.adgear.anoa.test.nested.Variant a, com.adgear.anoa.test.nested.Variant b) {
      final java.util.function.Supplier fa = a.getBytesVariant();
      final java.util.function.Supplier fb = b.getBytesVariant();
      return java.nio.ByteBuffer.wrap(fa.get()).compareTo(java.nio.ByteBuffer.wrap(fb.get()));
    }

    static private final Comparator INSTANCE = new Comparator();

    static public final long serialVersionUID = 70;
  }

  /** Returns comparator instance for Variant objects. */
  static java.util.Comparator> getComparator() {
    return Comparator.INSTANCE;
  }

  @Override default int compareTo(com.adgear.anoa.test.nested.Variant other) {
    return getComparator().compare(this, other);
  }

  static class NativeImpl implements com.adgear.anoa.test.nested.Variant {

    transient private java.lang.String json;
    private int __int_variant;
    transient private java.lang.Boolean is_default$int_variant;
    private long __long_variant;
    transient private java.lang.Boolean is_default$long_variant;
    private float __float_variant;
    transient private java.lang.Boolean is_default$float_variant;
    private double __double_variant;
    transient private java.lang.Boolean is_default$double_variant;
    private boolean __boolean_variant;
    transient private java.lang.Boolean is_default$boolean_variant;
    private java.lang.String __string_variant;
    transient private java.lang.Boolean is_default$string_variant;
    private byte[] __bytes_variant;
    transient private java.lang.Boolean is_default$bytes_variant;
    transient private java.util.function.Supplier _bytes_variant;

    private NativeImpl() {
      __int_variant = 1;
      is_default$int_variant = java.lang.Boolean.TRUE;
      __long_variant = -1L;
      is_default$long_variant = java.lang.Boolean.TRUE;
      __float_variant = -0x1.0p0f;
      is_default$float_variant = java.lang.Boolean.TRUE;
      __double_variant = -0x1.0p0;
      is_default$double_variant = java.lang.Boolean.TRUE;
      __boolean_variant = true;
      is_default$boolean_variant = java.lang.Boolean.TRUE;
      __string_variant = "foo";
      is_default$string_variant = java.lang.Boolean.TRUE;
      __bytes_variant = "\1\2\3".getBytes();
      is_default$bytes_variant = java.lang.Boolean.TRUE;
      json = "{}";
    }

    private NativeImpl(NativeImpl other) {
      setIntVariant(other.getIntVariant());
      setLongVariant(other.getLongVariant());
      setFloatVariant(other.getFloatVariant());
      setDoubleVariant(other.getDoubleVariant());
      setBooleanVariant(other.getBooleanVariant());
      setStringVariant(other.getStringVariant());
      setBytesVariant(other.getBytesVariant());
      json = other.json;
    }

    @Override public NativeImpl get() {
      return this;
    }

    @Override public Builder newBuilder() {
      return newNativeImplBuilder(this);
    }

    private java.lang.String buildJson() {
      java.lang.StringBuilder sb = new StringBuilder();
      if (!isDefaultIntVariant()) {
        sb.append((0 == sb.length()) ? "{\"int_variant\": " : ", \"int_variant\": ")
          .append(__int_variant);
      }
      if (!isDefaultLongVariant()) {
        sb.append((0 == sb.length()) ? "{\"long_variant\": " : ", \"long_variant\": ")
          .append(__long_variant);
      }
      if (!isDefaultFloatVariant()) {
        sb.append((0 == sb.length()) ? "{\"float_variant\": " : ", \"float_variant\": ")
          .append(__float_variant);
      }
      if (!isDefaultDoubleVariant()) {
        sb.append((0 == sb.length()) ? "{\"double_variant\": " : ", \"double_variant\": ")
          .append(__double_variant);
      }
      if (!isDefaultBooleanVariant()) {
        sb.append((0 == sb.length()) ? "{\"boolean_variant\": " : ", \"boolean_variant\": ")
          .append(__boolean_variant);
      }
      if (!isDefaultStringVariant()) {
        sb.append((0 == sb.length()) ? "{\"string_variant\": " : ", \"string_variant\": ")
          .append("\"" + __string_variant.replace("\"","\\\"") + '\"');
      }
      if (!isDefaultBytesVariant()) {
        sb.append((0 == sb.length()) ? "{\"bytes_variant\": " : ", \"bytes_variant\": ")
          .append("\"" + java.util.Base64.getEncoder().encodeToString(__bytes_variant) + '\"');
      }
      return (0 == sb.length()) ? "{}" : sb.append('}').toString();
    }

    @Override public String toString() {
      if (null == json) {
        json = buildJson();
      }
      return json;
    }

    @Override public int hashCode() {
      return toString().hashCode();
    }

    @Override public boolean equals(Object other) {
      if (other == this) return true;
      if (other == null || !(other instanceof NativeImpl)) return false;
      return toString().equals(other.toString());
    }

    @Override public int getIntVariant() {
      return __int_variant;
    }

    @Override public boolean isDefaultIntVariant() {
      if (null == is_default$int_variant) {
        is_default$int_variant = 1 == getIntVariant();
      }
      return is_default$int_variant;
    }

    private void setIntVariant(int value) {
      this.__int_variant = value;
      this.is_default$int_variant = null;
      this.json = null;
    }

    @Override public long getLongVariant() {
      return __long_variant;
    }

    @Override public boolean isDefaultLongVariant() {
      if (null == is_default$long_variant) {
        is_default$long_variant = -1 == getLongVariant();
      }
      return is_default$long_variant;
    }

    private void setLongVariant(long value) {
      this.__long_variant = value;
      this.is_default$long_variant = null;
      this.json = null;
    }

    @Override public float getFloatVariant() {
      return __float_variant;
    }

    @Override public boolean isDefaultFloatVariant() {
      if (null == is_default$float_variant) {
        is_default$float_variant = -0x1.0p0 == getFloatVariant();
      }
      return is_default$float_variant;
    }

    private void setFloatVariant(float value) {
      this.__float_variant = value;
      this.is_default$float_variant = null;
      this.json = null;
    }

    @Override public double getDoubleVariant() {
      return __double_variant;
    }

    @Override public boolean isDefaultDoubleVariant() {
      if (null == is_default$double_variant) {
        is_default$double_variant = -0x1.0p0 == getDoubleVariant();
      }
      return is_default$double_variant;
    }

    private void setDoubleVariant(double value) {
      this.__double_variant = value;
      this.is_default$double_variant = null;
      this.json = null;
    }

    @Override public boolean getBooleanVariant() {
      return __boolean_variant;
    }

    @Override public boolean isDefaultBooleanVariant() {
      if (null == is_default$boolean_variant) {
        is_default$boolean_variant = getBooleanVariant();
      }
      return is_default$boolean_variant;
    }

    private void setBooleanVariant(boolean value) {
      this.__boolean_variant = value;
      this.is_default$boolean_variant = null;
      this.json = null;
    }

    @Override public java.lang.String getStringVariant() {
      return __string_variant;
    }

    @Override public boolean isDefaultStringVariant() {
      if (null == is_default$string_variant) {
        is_default$string_variant = "foo".equals(getStringVariant().toString());
      }
      return is_default$string_variant;
    }

    private void setStringVariant(java.lang.String value) {
      this.__string_variant = value;
      this.is_default$string_variant = null;
      this.json = null;
    }

    @Override public java.util.function.Supplier getBytesVariant() {
      if (null == _bytes_variant) {
        _bytes_variant = (java.util.function.Supplier) __bytes_variant::clone;
      }
      return _bytes_variant;
    }

    @Override public boolean isDefaultBytesVariant() {
      if (null == is_default$bytes_variant) {
        is_default$bytes_variant = java.util.Arrays.equals(getBytesVariant().get(), "\1\2\3".getBytes());
      }
      return is_default$bytes_variant;
    }

    private void setBytesVariant(java.util.function.Supplier value) {
      this.__bytes_variant = value.get().clone();
      this.is_default$bytes_variant = null;
      this.json = null;
      this._bytes_variant = null;
    }

    static class NativeImplBuilder implements Builder {

      private NativeImpl wrapped = new NativeImpl();

      @Override public com.adgear.anoa.test.nested.Variant build() {
        return new NativeImpl(wrapped);
      }

      @Override public Builder setIntVariant(int value) {
        if (1 == value) {
          return clearIntVariant();
        }
        wrapped.setIntVariant(value);
        return this;
      }

      @Override public Builder clearIntVariant() {
        wrapped.__int_variant = _DEFAULT.get().__int_variant;
        wrapped.is_default$int_variant = true;
        return this;
      }

      @Override public Builder setLongVariant(long value) {
        if (-1 == value) {
          return clearLongVariant();
        }
        wrapped.setLongVariant(value);
        return this;
      }

      @Override public Builder clearLongVariant() {
        wrapped.__long_variant = _DEFAULT.get().__long_variant;
        wrapped.is_default$long_variant = true;
        return this;
      }

      @Override public Builder setFloatVariant(float value) {
        if (-0x1.0p0 == value) {
          return clearFloatVariant();
        }
        wrapped.setFloatVariant(value);
        return this;
      }

      @Override public Builder clearFloatVariant() {
        wrapped.__float_variant = _DEFAULT.get().__float_variant;
        wrapped.is_default$float_variant = true;
        return this;
      }

      @Override public Builder setDoubleVariant(double value) {
        if (-0x1.0p0 == value) {
          return clearDoubleVariant();
        }
        wrapped.setDoubleVariant(value);
        return this;
      }

      @Override public Builder clearDoubleVariant() {
        wrapped.__double_variant = _DEFAULT.get().__double_variant;
        wrapped.is_default$double_variant = true;
        return this;
      }

      @Override public Builder setBooleanVariant(boolean value) {
        if (value) {
          return clearBooleanVariant();
        }
        wrapped.setBooleanVariant(value);
        return this;
      }

      @Override public Builder clearBooleanVariant() {
        wrapped.__boolean_variant = _DEFAULT.get().__boolean_variant;
        wrapped.is_default$boolean_variant = true;
        return this;
      }

      @Override public Builder setStringVariant(java.lang.String value) {
        if ("foo".equals(value.toString())) {
          return clearStringVariant();
        }
        wrapped.setStringVariant(value);
        return this;
      }

      @Override public Builder clearStringVariant() {
        wrapped.__string_variant = _DEFAULT.get().__string_variant;
        wrapped.is_default$string_variant = true;
        return this;
      }

      @Override public Builder setBytesVariant(java.util.function.Supplier value) {
        if (java.util.Arrays.equals(value.get(), "\1\2\3".getBytes())) {
          return clearBytesVariant();
        }
        wrapped.setBytesVariant(value);
        return this;
      }

      @Override public Builder clearBytesVariant() {
        wrapped.__bytes_variant = _DEFAULT.get().__bytes_variant;
        wrapped.is_default$bytes_variant = true;
        wrapped._bytes_variant = _DEFAULT.get()._bytes_variant;
        return this;
      }
    }

    static private java.lang.ThreadLocal _DEFAULT = new java.lang.ThreadLocal() {
      @Override protected NativeImpl initialValue() {
        NativeImpl instance = new NativeImpl();
        assert instance.isDefault();
        return instance;
      }
    };

    static public final long serialVersionUID = 70;
  }

  /** Returns a POJO builder instance with default values. */
  static Builder newNativeImplBuilder() { return new NativeImpl.NativeImplBuilder(); }

  /** Returns a POJO builder instance based on existing prototype Variant. */
  static Builder newNativeImplBuilder(com.adgear.anoa.test.nested.Variant other) {
    return newNativeImplBuilder()
      .setIntVariant(other.getIntVariant())
      .setLongVariant(other.getLongVariant())
      .setFloatVariant(other.getFloatVariant())
      .setDoubleVariant(other.getDoubleVariant())
      .setBooleanVariant(other.getBooleanVariant())
      .setStringVariant(other.getStringVariant())
      .setBytesVariant(other.getBytesVariant());
  }

  /** Returns a POJO based on an instance of Variant. */
  static NativeImpl nativeImpl(com.adgear.anoa.test.nested.Variant instance) {
    if (instance instanceof NativeImpl) {
      return (NativeImpl) instance;
    } else {
      return (NativeImpl) newNativeImplBuilder(instance).build();
    }
  }

  static class Avro implements com.adgear.anoa.test.nested.Variant {

    private byte[] binaryEncoding;
    transient private com.adgear.anoa.test.nested.VariantAvro wrapped;
    transient private java.lang.Boolean is_default$int_variant;
    transient private java.lang.Boolean is_default$long_variant;
    transient private java.lang.Boolean is_default$float_variant;
    transient private java.lang.Boolean is_default$double_variant;
    transient private java.lang.Boolean is_default$boolean_variant;
    transient private java.lang.Boolean is_default$string_variant;
    transient private java.lang.String _string_variant;
    transient private java.lang.Boolean is_default$bytes_variant;
    transient private java.util.function.Supplier _bytes_variant;

    private Avro(com.adgear.anoa.test.nested.VariantAvro wrapped, byte[] binaryEncoding) {
      this.wrapped = wrapped;
      this.binaryEncoding = binaryEncoding;
    }

    /** Constructs a new Avro instance based on a message's binary encoding. Only use this if you know what you're doing. */
    public Avro(byte[] binaryEncoding) { this(null, binaryEncoding); }

    @Override public com.adgear.anoa.test.nested.VariantAvro get() {
      if (wrapped == null) {
        try {
          wrapped = decode(binaryEncoding);
        } catch (java.io.IOException e) {
          throw new java.io.UncheckedIOException(e);
        }
      }
      return wrapped;
    }

    @Override public Builder newBuilder() {
      return newAvroBuilder(get());
    }

    /** Returns an Avro binary encoding of this record. */
    public byte[] toByteArray() {
      return (byte[]) encoded().binaryEncoding.clone();
    }

    /** Returns the Avro binary encoding of this record wrapped in a read-only buffer. */
    public java.nio.ByteBuffer toByteBuffer() {
      return java.nio.ByteBuffer.wrap(encoded().binaryEncoding).asReadOnlyBuffer();
    }

    @Override public int getIntVariant() {
      return get().int_variant;
    }

    @Override public boolean isDefaultIntVariant() {
      if (is_default$int_variant == null) {
        is_default$int_variant = 1 == getIntVariant();
      }
      return is_default$int_variant;
    }

    @Override public long getLongVariant() {
      return get().long_variant;
    }

    @Override public boolean isDefaultLongVariant() {
      if (is_default$long_variant == null) {
        is_default$long_variant = -1 == getLongVariant();
      }
      return is_default$long_variant;
    }

    @Override public float getFloatVariant() {
      return get().float_variant;
    }

    @Override public boolean isDefaultFloatVariant() {
      if (is_default$float_variant == null) {
        is_default$float_variant = -0x1.0p0 == getFloatVariant();
      }
      return is_default$float_variant;
    }

    @Override public double getDoubleVariant() {
      return get().double_variant;
    }

    @Override public boolean isDefaultDoubleVariant() {
      if (is_default$double_variant == null) {
        is_default$double_variant = -0x1.0p0 == getDoubleVariant();
      }
      return is_default$double_variant;
    }

    @Override public boolean getBooleanVariant() {
      return get().boolean_variant;
    }

    @Override public boolean isDefaultBooleanVariant() {
      if (is_default$boolean_variant == null) {
        is_default$boolean_variant = getBooleanVariant();
      }
      return is_default$boolean_variant;
    }

    @Override public java.lang.String getStringVariant() {
      if (_string_variant == null) {
        _string_variant = java.util.Optional.of(get().string_variant).map(java.lang.Object::toString).orElse("");
      }
      return _string_variant;
    }

    @Override public boolean isDefaultStringVariant() {
      if (is_default$string_variant == null) {
        is_default$string_variant = "foo".equals(getStringVariant().toString());
      }
      return is_default$string_variant;
    }

    @Override public java.util.function.Supplier getBytesVariant() {
      if (_bytes_variant == null) {
        _bytes_variant = java.util.Optional.of(get().bytes_variant).map(bb -> {byte[] b = new byte[bb.remaining()]; bb.asReadOnlyBuffer().get(b); return (java.util.function.Supplier)(b::clone);}).get();
      }
      return _bytes_variant;
    }

    @Override public boolean isDefaultBytesVariant() {
      if (is_default$bytes_variant == null) {
        is_default$bytes_variant = java.util.Arrays.equals(getBytesVariant().get(), "\1\2\3".getBytes());
      }
      return is_default$bytes_variant;
    }

    @Override public boolean equals(Object other) {
      if (other == this) return true;
      if (other == null && !(other instanceof Avro)) return false;
      return get().equals(((Avro) other).get());
    }

    @Override public int hashCode() { return get().hashCode(); }

    @Override public String toString() { return get().toString(); }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      if (binaryEncoding == null) { encode(); }
      out.defaultWriteObject();
    }

    public Avro encoded() {
      if (binaryEncoding != null) {
        try {
          encode();
        } catch (java.io.IOException e) {
          throw new java.io.UncheckedIOException(e);
        }
      }
      return this;
    }

    private void encode() throws java.io.IOException {
      java.io.ByteArrayOutputStream stream = _ENCODER_STREAM.get();
      org.apache.avro.io.BinaryEncoder encoder = _ENCODER.get();
      stream.reset();
      wrapped.encode(encoder);
      encoder.flush();
      binaryEncoding = stream.toByteArray();
    }

    static private com.adgear.anoa.test.nested.VariantAvro decode(byte[] binaryEncoding) throws java.io.IOException {
      com.adgear.anoa.test.nested.VariantAvro instance = new com.adgear.anoa.test.nested.VariantAvro();
      org.apache.avro.io.BinaryDecoder decoder = org.apache.avro.io.DecoderFactory.get().binaryDecoder(binaryEncoding, _DECODER.get());
      return instance.decode(decoder);
    }

    /** Decodes a Avro record. */
    static public com.adgear.anoa.test.nested.Variant from(byte[] binaryEncoding) throws java.io.IOException {
      return new Avro(decode(binaryEncoding), binaryEncoding);
    }

    static private java.lang.ThreadLocal _DECODER = new java.lang.ThreadLocal() {
      @Override protected org.apache.avro.io.BinaryDecoder initialValue() { return org.apache.avro.io.DecoderFactory.get().binaryDecoder(new byte[0], null); }
    };

    static private java.lang.ThreadLocal _ENCODER_STREAM = new java.lang.ThreadLocal() {
      @Override protected java.io.ByteArrayOutputStream initialValue() { return new java.io.ByteArrayOutputStream(); }
    };

    static private java.lang.ThreadLocal _ENCODER = new java.lang.ThreadLocal() {
      @Override protected org.apache.avro.io.BinaryEncoder initialValue() { return org.apache.avro.io.EncoderFactory.get().binaryEncoder(_ENCODER_STREAM.get(), null); }
    };

    static private java.lang.ThreadLocal _DEFAULT = new java.lang.ThreadLocal() {
      @Override protected Avro initialValue() { return new Avro(com.adgear.anoa.test.nested.VariantAvro.newBuilder().build(), null); }
    };

    static public final long serialVersionUID = 70;
  }

  static class AvroBuilder implements Builder {

    final private com.adgear.anoa.test.nested.VariantAvro.Builder builder;

    /** Only use this if you know what you are doing. */
    public AvroBuilder(com.adgear.anoa.test.nested.VariantAvro.Builder builder) { this.builder = builder; }

    @Override public com.adgear.anoa.test.nested.Variant build() {
      return new Avro(builder.build(), null);
    }

    @Override public Builder setIntVariant(int value) {
      builder.setIntVariant(value);
      return this;
    }

    @Override public Builder clearIntVariant() {
      builder.clearIntVariant();
      return this;
    }

    @Override public Builder setLongVariant(long value) {
      builder.setLongVariant(value);
      return this;
    }

    @Override public Builder clearLongVariant() {
      builder.clearLongVariant();
      return this;
    }

    @Override public Builder setFloatVariant(float value) {
      builder.setFloatVariant(value);
      return this;
    }

    @Override public Builder clearFloatVariant() {
      builder.clearFloatVariant();
      return this;
    }

    @Override public Builder setDoubleVariant(double value) {
      builder.setDoubleVariant(value);
      return this;
    }

    @Override public Builder clearDoubleVariant() {
      builder.clearDoubleVariant();
      return this;
    }

    @Override public Builder setBooleanVariant(boolean value) {
      builder.setBooleanVariant(value);
      return this;
    }

    @Override public Builder clearBooleanVariant() {
      builder.clearBooleanVariant();
      return this;
    }

    @Override public Builder setStringVariant(java.lang.String value) {
      builder.setStringVariant(new org.apache.avro.util.Utf8(value));
      return this;
    }

    @Override public Builder clearStringVariant() {
      builder.clearStringVariant();
      return this;
    }

    @Override public Builder setBytesVariant(java.util.function.Supplier value) {
      builder.setBytesVariant(java.nio.ByteBuffer.wrap(value.get().clone()));
      return this;
    }

    @Override public Builder clearBytesVariant() {
      builder.clearBytesVariant();
      return this;
    }
  }

  /** Returns new Avro builder instance with default values. */
  static Builder newAvroBuilder() {
    return new AvroBuilder(com.adgear.anoa.test.nested.VariantAvro.newBuilder());
  }

  /** Returns new Avro builder instance based on existing prototype. */
  static Builder newAvroBuilder(com.adgear.anoa.test.nested.VariantAvro other) {
    return new AvroBuilder(com.adgear.anoa.test.nested.VariantAvro.newBuilder(other));
  }

  /** Returns new Avro builder instance based on existing prototype builder. */
  static Builder newAvroBuilder(com.adgear.anoa.test.nested.VariantAvro.Builder other) {
    return new AvroBuilder(com.adgear.anoa.test.nested.VariantAvro.newBuilder(other));
  }

  /** Returns new Avro builder instance based on existing prototype Variant. */
  static Builder newAvroBuilder(com.adgear.anoa.test.nested.Variant other) {
    return newAvroBuilder()
      .setIntVariant(other.getIntVariant())
      .setLongVariant(other.getLongVariant())
      .setFloatVariant(other.getFloatVariant())
      .setDoubleVariant(other.getDoubleVariant())
      .setBooleanVariant(other.getBooleanVariant())
      .setStringVariant(other.getStringVariant())
      .setBytesVariant(other.getBytesVariant());
  }

  /** Returns a wrapped Avro record based on an instance of Variant. */
  static Avro avro(com.adgear.anoa.test.nested.Variant instance) {
    if (instance instanceof Avro) {
      return (Avro) instance;
    } else {
      return (Avro) newAvroBuilder(instance).build();
    }
  }

  /** Wraps an existing Avro record. */
  static Avro avro(com.adgear.anoa.test.nested.VariantAvro wrapped) {
    assert wrapped != null;
    return new Avro(wrapped.freeze(), null);
  }

  /** Returns Avro record class. */
  static java.lang.Class getAvroClass() {
    return com.adgear.anoa.test.nested.VariantAvro.class;
  }

  /** Returns Avro record schema. */
  static org.apache.avro.Schema getAvroSchema() {
    return com.adgear.anoa.test.nested.VariantAvro.SCHEMA$;
  }

  static class Protobuf implements com.adgear.anoa.test.nested.Variant {

    private byte[] binaryEncoding;
    transient private com.adgear.anoa.test.nested.NestedProtobuf.Variant wrapped;
    transient private java.lang.Boolean is_default$int_variant;
    transient private java.lang.Boolean is_default$long_variant;
    transient private java.lang.Boolean is_default$float_variant;
    transient private java.lang.Boolean is_default$double_variant;
    transient private java.lang.Boolean is_default$boolean_variant;
    transient private java.lang.Boolean is_default$string_variant;
    transient private java.lang.Boolean is_default$bytes_variant;
    transient private java.util.function.Supplier _bytes_variant;

    private Protobuf(com.adgear.anoa.test.nested.NestedProtobuf.Variant wrapped, byte[] binaryEncoding) {
      this.wrapped = wrapped;
      this.binaryEncoding = binaryEncoding;
    }

    /** Constructs a new Protobuf instance based on a message's binary encoding. Only use this if you know what you're doing. */
    public Protobuf(byte[] binaryEncoding) { this(null, binaryEncoding); }

    @Override public com.adgear.anoa.test.nested.NestedProtobuf.Variant get() {
      if (wrapped == null) {
        try {
          wrapped = com.adgear.anoa.test.nested.NestedProtobuf.Variant.parseFrom(binaryEncoding);
        } catch (java.io.IOException e) {
          throw new java.io.UncheckedIOException(e);
        }
      }
      return wrapped;
    }

    @Override public Builder newBuilder() {
      return newProtobufBuilder(get());
    }

    @Override public int getIntVariant() {
      return get().getIntVariant();
    }

    @Override public boolean isDefaultIntVariant() {
      if (is_default$int_variant == null) {
        is_default$int_variant = 1 == getIntVariant();
      }
      return is_default$int_variant;
    }

    @Override public long getLongVariant() {
      return get().getLongVariant();
    }

    @Override public boolean isDefaultLongVariant() {
      if (is_default$long_variant == null) {
        is_default$long_variant = -1 == getLongVariant();
      }
      return is_default$long_variant;
    }

    @Override public float getFloatVariant() {
      return get().getFloatVariant();
    }

    @Override public boolean isDefaultFloatVariant() {
      if (is_default$float_variant == null) {
        is_default$float_variant = -0x1.0p0 == getFloatVariant();
      }
      return is_default$float_variant;
    }

    @Override public double getDoubleVariant() {
      return get().getDoubleVariant();
    }

    @Override public boolean isDefaultDoubleVariant() {
      if (is_default$double_variant == null) {
        is_default$double_variant = -0x1.0p0 == getDoubleVariant();
      }
      return is_default$double_variant;
    }

    @Override public boolean getBooleanVariant() {
      return get().getBooleanVariant();
    }

    @Override public boolean isDefaultBooleanVariant() {
      if (is_default$boolean_variant == null) {
        is_default$boolean_variant = getBooleanVariant();
      }
      return is_default$boolean_variant;
    }

    @Override public java.lang.String getStringVariant() {
      return get().getStringVariant();
    }

    @Override public boolean isDefaultStringVariant() {
      if (is_default$string_variant == null) {
        is_default$string_variant = "foo".equals(getStringVariant().toString());
      }
      return is_default$string_variant;
    }

    @Override public java.util.function.Supplier getBytesVariant() {
      if (_bytes_variant == null) {
        _bytes_variant = () -> get().getBytesVariant().toByteArray();
      }
      return _bytes_variant;
    }

    @Override public boolean isDefaultBytesVariant() {
      if (is_default$bytes_variant == null) {
        is_default$bytes_variant = java.util.Arrays.equals(getBytesVariant().get(), "\1\2\3".getBytes());
      }
      return is_default$bytes_variant;
    }

    @Override public boolean equals(Object other) {
      if (other == this) return true;
      if (other == null && !(other instanceof Protobuf)) return false;
      return get().equals(((Protobuf) other).get());
    }

    @Override public int hashCode() { return get().hashCode(); }

    @Override public String toString() { return get().toString(); }

    private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
      if (binaryEncoding == null) {
        binaryEncoding = wrapped.toByteArray();
      }
      out.defaultWriteObject();
    }

    /** Decodes a Protobuf message. */
    static public com.adgear.anoa.test.nested.Variant from(byte[] binaryEncoding) throws java.io.IOException {
      return new Protobuf(com.adgear.anoa.test.nested.NestedProtobuf.Variant.parseFrom(binaryEncoding), binaryEncoding);
    }

    static private java.lang.ThreadLocal _DEFAULT = new java.lang.ThreadLocal() {
      @Override protected Protobuf initialValue() { return new Protobuf(com.adgear.anoa.test.nested.NestedProtobuf.Variant.getDefaultInstance() , null); }
    };

    static public final long serialVersionUID = 70;
  }

  static class ProtobufBuilder implements Builder {

    final private com.adgear.anoa.test.nested.NestedProtobuf.Variant.Builder builder;

    /** Only use this if you know what you are doing. */
    public ProtobufBuilder(com.adgear.anoa.test.nested.NestedProtobuf.Variant.Builder builder) { this.builder = builder; }

    @Override public com.adgear.anoa.test.nested.Variant build() {
      return new Protobuf(builder.build(), null);
    }

    @Override public Builder setIntVariant(int value) {
      if (!(1 == value)) {
        builder.setIntVariant(value);
      }
      return this;
    }

    @Override public Builder clearIntVariant() {
      builder.clearIntVariant();
      return this;
    }

    @Override public Builder setLongVariant(long value) {
      if (!(-1 == value)) {
        builder.setLongVariant(value);
      }
      return this;
    }

    @Override public Builder clearLongVariant() {
      builder.clearLongVariant();
      return this;
    }

    @Override public Builder setFloatVariant(float value) {
      if (!(-0x1.0p0 == value)) {
        builder.setFloatVariant(value);
      }
      return this;
    }

    @Override public Builder clearFloatVariant() {
      builder.clearFloatVariant();
      return this;
    }

    @Override public Builder setDoubleVariant(double value) {
      if (!(-0x1.0p0 == value)) {
        builder.setDoubleVariant(value);
      }
      return this;
    }

    @Override public Builder clearDoubleVariant() {
      builder.clearDoubleVariant();
      return this;
    }

    @Override public Builder setBooleanVariant(boolean value) {
      if (!(value)) {
        builder.setBooleanVariant(value);
      }
      return this;
    }

    @Override public Builder clearBooleanVariant() {
      builder.clearBooleanVariant();
      return this;
    }

    @Override public Builder setStringVariant(java.lang.String value) {
      if (!("foo".equals(value.toString()))) {
        builder.setStringVariant(value);
      }
      return this;
    }

    @Override public Builder clearStringVariant() {
      builder.clearStringVariant();
      return this;
    }

    @Override public Builder setBytesVariant(java.util.function.Supplier value) {
      if (!(java.util.Arrays.equals(value.get(), "\1\2\3".getBytes()))) {
        builder.setBytesVariant(com.google.protobuf.ByteString.copyFrom(value.get()));
      }
      return this;
    }

    @Override public Builder clearBytesVariant() {
      builder.clearBytesVariant();
      return this;
    }
  }

  /** Returns new Protobuf builder instance with default values. */
  static Builder newProtobufBuilder() {
    return new ProtobufBuilder(com.adgear.anoa.test.nested.NestedProtobuf.Variant.newBuilder());
  }

  /** Returns new Protobuf builder instance based on existing prototype. */
  static Builder newProtobufBuilder(com.adgear.anoa.test.nested.NestedProtobuf.Variant other) {
    return new ProtobufBuilder(com.adgear.anoa.test.nested.NestedProtobuf.Variant.newBuilder(other));
  }

  /** Returns new Protobuf builder instance based on existing prototype Variant. */
  static Builder newProtobufBuilder(com.adgear.anoa.test.nested.Variant other) {
    return newProtobufBuilder()
      .setIntVariant(other.getIntVariant())
      .setLongVariant(other.getLongVariant())
      .setFloatVariant(other.getFloatVariant())
      .setDoubleVariant(other.getDoubleVariant())
      .setBooleanVariant(other.getBooleanVariant())
      .setStringVariant(other.getStringVariant())
      .setBytesVariant(other.getBytesVariant());
  }

  /** Returns a wrapped Protobuf message based on an instance of Variant. */
  static Protobuf protobuf(com.adgear.anoa.test.nested.Variant instance) {
    if (instance instanceof Protobuf) {
      return (Protobuf) instance;
    }
    return (Protobuf) newProtobufBuilder(instance).build();
  }

  /** Wraps an existing Protobuf message. */
  static Protobuf protobuf(com.adgear.anoa.test.nested.NestedProtobuf.Variant wrapped) {
    assert wrapped != null;
    return new Protobuf(wrapped, null);
  }

  /** Returns Protobuf class for this struct. */
  static java.lang.Class getProtobufClass() {
    return com.adgear.anoa.test.nested.NestedProtobuf.Variant.class;
  }

  /** Returns Protobuf protocol class for this struct. */
  static java.lang.Class getProtobufProtocolClass() {
    return com.adgear.anoa.test.nested.NestedProtobuf.class;
  }

  /** Returns Protobuf descriptor for this struct. */
  static com.google.protobuf.Descriptors.Descriptor getProtobufDescriptor() {
    return com.adgear.anoa.test.nested.NestedProtobuf.Variant.getDescriptor();
  }

  /** Returns Protobuf protocol descriptor for this struct. */
  static com.google.protobuf.Descriptors.FileDescriptor getProtobufProtocolDescriptor() {
    return com.adgear.anoa.test.nested.NestedProtobuf.getDescriptor();
  }

  static class Thrift implements com.adgear.anoa.test.nested.Variant {

    private com.adgear.anoa.test.nested.VariantThrift wrapped;
    transient private java.lang.Boolean is_default$int_variant;
    transient private java.lang.Boolean is_default$long_variant;
    transient private java.lang.Boolean is_default$float_variant;
    transient private java.lang.Boolean is_default$double_variant;
    transient private java.lang.Boolean is_default$boolean_variant;
    transient private java.lang.Boolean is_default$string_variant;
    transient private java.lang.String _string_variant;
    transient private java.lang.Boolean is_default$bytes_variant;
    transient private java.util.function.Supplier _bytes_variant;

    /** Wraps an existing instance. Only use this if you know what you are doing. */
    public Thrift(com.adgear.anoa.test.nested.VariantThrift wrapped) { this.wrapped = wrapped; }

    /** Create a new wrapper. */
    public Thrift() { this(new com.adgear.anoa.test.nested.VariantThrift()); }

    @Override public com.adgear.anoa.test.nested.VariantThrift get() { return wrapped; }

    @Override public Builder newBuilder() {
      return newThriftBuilder(get());
    }

    @Override public int getIntVariant() {
      return wrapped.getInt_variant();
    }

    @Override public boolean isDefaultIntVariant() {
      if (is_default$int_variant == null) {
        is_default$int_variant = 1 == getIntVariant();
      }
      return is_default$int_variant;
    }

    @Override public long getLongVariant() {
      return wrapped.getLong_variant();
    }

    @Override public boolean isDefaultLongVariant() {
      if (is_default$long_variant == null) {
        is_default$long_variant = -1 == getLongVariant();
      }
      return is_default$long_variant;
    }

    @Override public float getFloatVariant() {
      return (float) wrapped.getFloat_variant();
    }

    @Override public boolean isDefaultFloatVariant() {
      if (is_default$float_variant == null) {
        is_default$float_variant = -0x1.0p0 == getFloatVariant();
      }
      return is_default$float_variant;
    }

    @Override public double getDoubleVariant() {
      return wrapped.getDouble_variant();
    }

    @Override public boolean isDefaultDoubleVariant() {
      if (is_default$double_variant == null) {
        is_default$double_variant = -0x1.0p0 == getDoubleVariant();
      }
      return is_default$double_variant;
    }

    @Override public boolean getBooleanVariant() {
      return wrapped.isBoolean_variant();
    }

    @Override public boolean isDefaultBooleanVariant() {
      if (is_default$boolean_variant == null) {
        is_default$boolean_variant = getBooleanVariant();
      }
      return is_default$boolean_variant;
    }

    @Override public java.lang.String getStringVariant() {
      if (_string_variant == null) {
        _string_variant = java.util.Optional.ofNullable(wrapped.getString_variant()).orElse("");
      }
      return _string_variant;
    }

    @Override public boolean isDefaultStringVariant() {
      if (is_default$string_variant == null) {
        is_default$string_variant = "foo".equals(getStringVariant().toString());
      }
      return is_default$string_variant;
    }

    @Override public java.util.function.Supplier getBytesVariant() {
      if (_bytes_variant == null) {
        _bytes_variant = java.util.Optional.ofNullable(wrapped.getBytes_variant()).orElseGet(() -> new byte[0])::clone;
      }
      return _bytes_variant;
    }

    @Override public boolean isDefaultBytesVariant() {
      if (is_default$bytes_variant == null) {
        is_default$bytes_variant = java.util.Arrays.equals(getBytesVariant().get(), "\1\2\3".getBytes());
      }
      return is_default$bytes_variant;
    }

    @Override public boolean equals(Object other) {
      if (other == this) return true;
      if (other == null || !(other instanceof Thrift)) return false;
      return wrapped.equals(((Thrift) other).wrapped);
    }

    @Override public int hashCode() { return wrapped.hashCode(); }

    @Override public String toString() { return wrapped.toString(); }

    static private java.lang.ThreadLocal _DEFAULT = new java.lang.ThreadLocal() {
      @Override protected Thrift initialValue() { return new Thrift(); }
    };

    static public final long serialVersionUID = 70;
  }

  static class ThriftBuilder implements Builder {

    final private com.adgear.anoa.test.nested.VariantThrift builder;

    /** Only use this if you know what you are doing. */
    public ThriftBuilder(com.adgear.anoa.test.nested.VariantThrift builder) { this.builder = builder; }

    @Override public com.adgear.anoa.test.nested.Variant build() {
      return new Thrift((com.adgear.anoa.test.nested.VariantThrift) builder.deepCopy());
    }

    @Override public Builder setIntVariant(int value) {
      if (!(1 == value)) {
        builder.setInt_variant((int) value);
      }
      return this;
    }

    @Override public Builder clearIntVariant() {
      builder.unsetInt_variant();
      return this;
    }

    @Override public Builder setLongVariant(long value) {
      if (!(-1 == value)) {
        builder.setLong_variant((long) value);
      }
      return this;
    }

    @Override public Builder clearLongVariant() {
      builder.unsetLong_variant();
      return this;
    }

    @Override public Builder setFloatVariant(float value) {
      if (!(-0x1.0p0 == value)) {
        builder.setFloat_variant((double) value);
      }
      return this;
    }

    @Override public Builder clearFloatVariant() {
      builder.unsetFloat_variant();
      return this;
    }

    @Override public Builder setDoubleVariant(double value) {
      if (!(-0x1.0p0 == value)) {
        builder.setDouble_variant(value);
      }
      return this;
    }

    @Override public Builder clearDoubleVariant() {
      builder.unsetDouble_variant();
      return this;
    }

    @Override public Builder setBooleanVariant(boolean value) {
      if (!(value)) {
        builder.setBoolean_variant(value);
      }
      return this;
    }

    @Override public Builder clearBooleanVariant() {
      builder.unsetBoolean_variant();
      return this;
    }

    @Override public Builder setStringVariant(java.lang.String value) {
      if (!("foo".equals(value.toString()))) {
        builder.setString_variant(value);
      }
      return this;
    }

    @Override public Builder clearStringVariant() {
      builder.unsetString_variant();
      return this;
    }

    @Override public Builder setBytesVariant(java.util.function.Supplier value) {
      if (!(java.util.Arrays.equals(value.get(), "\1\2\3".getBytes()))) {
        builder.setBytes_variant(java.nio.ByteBuffer.wrap(value.get().clone()));
      }
      return this;
    }

    @Override public Builder clearBytesVariant() {
      builder.unsetBytes_variant();
      return this;
    }
  }

  /** Returns new Thrift builder instance with default values. */
  static Builder newThriftBuilder() {
    return new ThriftBuilder(new com.adgear.anoa.test.nested.VariantThrift());
  }

  /** Returns new Thrift builder instance based on existing prototype. */
  static Builder newThriftBuilder(com.adgear.anoa.test.nested.VariantThrift other) {
    return new ThriftBuilder((com.adgear.anoa.test.nested.VariantThrift) other.deepCopy());
  }

  /** Returns new Thrift builder instance based on existing prototype Variant. */
  static Builder newThriftBuilder(com.adgear.anoa.test.nested.Variant other) {
    return newThriftBuilder()
      .setIntVariant(other.getIntVariant())
      .setLongVariant(other.getLongVariant())
      .setFloatVariant(other.getFloatVariant())
      .setDoubleVariant(other.getDoubleVariant())
      .setBooleanVariant(other.getBooleanVariant())
      .setStringVariant(other.getStringVariant())
      .setBytesVariant(other.getBytesVariant());
  }

  /** Returns a wrapped Thrift struct based on an instance of Variant. */
  static Thrift thrift(com.adgear.anoa.test.nested.Variant instance) {
    if (instance instanceof Thrift) {
      return (Thrift) instance;
    }
    return (Thrift) newThriftBuilder(instance).build();
  }

  /** Creates a new wrapped Thrift struct copied from an existing instance. */
  @SuppressWarnings("all")
  static Thrift thrift(com.adgear.anoa.test.nested.VariantThrift instance) {
    return new Thrift((com.adgear.anoa.test.nested.VariantThrift) instance.deepCopy());
  }

  /** Returns Thrift class for this struct. */
  static java.lang.Class getThriftClass() {
    return com.adgear.anoa.test.nested.VariantThrift.class;
  }

  /** Returns Thrift metadata map for this struct. */
  static java.util.Map getThriftMetadataMap() {
    return com.adgear.anoa.test.nested.VariantThrift.metaDataMap;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy