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

open_rtb.User Maven / Gradle / Ivy

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

package open_rtb;

/** 3.3.12 User Object
The “user” object contains information known or derived about the human user of the device. Note that the user ID is an exchange artifact (refer to the “device” object for hardware or platform derived IDs) and may be subject to rotation policies. However, this user ID must be stable long enough to serve reasonably as the basis for frequency capping.
The user object itself and all of its parameters are optional, so default values are not provided. If an optional parameter is not specified, it should be considered unknown.
If device ID is used as a proxy for unique user ID, use the device object. */
public interface User
  extends java.util.function.Supplier,
          java.lang.Comparable>,
          java.io.Serializable {

  /** True if all fields are set to default values. */
  default boolean isDefault() {
    return
      isDefaultId() &&
      isDefaultBuyeruid() &&
      isDefaultYob() &&
      isDefaultGender() &&
      isDefaultKeywords() &&
      isDefaultCustomdata() &&
      isDefaultGeo() &&
      isDefaultData();
  }

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

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

  /** Unique consumer ID of this user on the exchange. */
  java.lang.String getId();

  boolean isDefaultId();

  /** Buyer’s user ID for this user as mapped by exchange for the buyer. (AdGear cookie) */
  java.lang.String getBuyeruid();

  boolean isDefaultBuyeruid();

  /** Year of birth as a 4-digit integer. */
  int getYob();

  boolean isDefaultYob();

  /** Gender as “M” male, “F” female, “O” Other. (Null indicates unknown). */
  java.lang.String getGender();

  boolean isDefaultGender();

  /** Comma separated list of keywords of consumer interests or intent. */
  java.lang.String getKeywords();

  boolean isDefaultKeywords();

  /** If supported by the exchange, this is custom data that the bidder had stored in the exchange’s cookie. The string may be in base85 cookie safe characters, and be in any format. This may useful for storing user features. Note: Proper JSON encoding must be used to include “escaped” quotation marks. */
  java.lang.String getCustomdata();

  boolean isDefaultCustomdata();

  /** Home geo for the user (e.g., based off of registration data); this is different from the current location of the access device (that is defined by the geo object embedded in the Device Object); see Geo Object. */
  open_rtb.Geo getGeo();

  boolean isDefaultGeo();

  /** See Data Object. */
  java.util.List> getData();

  boolean isDefaultData();

  public interface Builder {

    User build();

    Builder setId(java.lang.String value);

    Builder clearId();

    Builder setBuyeruid(java.lang.String value);

    Builder clearBuyeruid();

    Builder setYob(int value);

    Builder clearYob();

    Builder setGender(java.lang.String value);

    Builder clearGender();

    Builder setKeywords(java.lang.String value);

    Builder clearKeywords();

    Builder setCustomdata(java.lang.String value);

    Builder clearCustomdata();

    Builder setGeo(open_rtb.Geo value);

    Builder clearGeo();

    Builder setData(java.util.List> value);

    Builder clearData();
  }


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

    @Override public int compare(open_rtb.User a, open_rtb.User b) {
      int _cmp;
      if (0 != (_cmp = compareId(a, b))) return _cmp;
      if (0 != (_cmp = compareBuyeruid(a, b))) return _cmp;
      if (0 != (_cmp = compareYob(a, b))) return _cmp;
      if (0 != (_cmp = compareGender(a, b))) return _cmp;
      if (0 != (_cmp = compareKeywords(a, b))) return _cmp;
      if (0 != (_cmp = compareCustomdata(a, b))) return _cmp;
      if (0 != (_cmp = compareGeo(a, b))) return _cmp;
      if (0 != (_cmp = compareData(a, b))) return _cmp;
      return 0;
    }

    static private int compareId (open_rtb.User a, open_rtb.User b) {
      final java.lang.String fa = a.getId();
      final java.lang.String fb = b.getId();
      return fa.compareTo(fb);
    }

    static private int compareBuyeruid (open_rtb.User a, open_rtb.User b) {
      final java.lang.String fa = a.getBuyeruid();
      final java.lang.String fb = b.getBuyeruid();
      return fa.compareTo(fb);
    }

    static private int compareYob (open_rtb.User a, open_rtb.User b) {
      final java.lang.Integer fa = a.getYob();
      final java.lang.Integer fb = b.getYob();
      return java.lang.Integer.compareUnsigned(fa, fb);
    }

    static private int compareGender (open_rtb.User a, open_rtb.User b) {
      final java.lang.String fa = a.getGender();
      final java.lang.String fb = b.getGender();
      return fa.compareTo(fb);
    }

    static private int compareKeywords (open_rtb.User a, open_rtb.User b) {
      final java.lang.String fa = a.getKeywords();
      final java.lang.String fb = b.getKeywords();
      return fa.compareTo(fb);
    }

    static private int compareCustomdata (open_rtb.User a, open_rtb.User b) {
      final java.lang.String fa = a.getCustomdata();
      final java.lang.String fb = b.getCustomdata();
      return fa.compareTo(fb);
    }

    static private int compareGeo (open_rtb.User a, open_rtb.User b) {
      final open_rtb.Geo fa = a.getGeo();
      final open_rtb.Geo fb = b.getGeo();
      return fa.compareTo(fb);
    }

    static private int compareData (open_rtb.User a, open_rtb.User b) {
      final java.util.List> fa = a.getData();
      final java.util.List> fb = b.getData();
      int _cmp = 0; java.util.Iterator> a_it7 = fa.iterator(); java.util.Iterator> b_it7 = fb.iterator(); while (a_it7.hasNext() && b_it7.hasNext()) { if (0 != (_cmp = a_it7.next().compareTo(b_it7.next()))) return _cmp; } if (a_it7.hasNext()) return 1; if (b_it7.hasNext()) return -1; return 0;
    }

    static private final Comparator INSTANCE = new Comparator();

    static public final long serialVersionUID = 8;
  }

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

  @Override default int compareTo(open_rtb.User other) {
    return getComparator().compare(this, other);
  }

  static class NativeImpl implements open_rtb.User {

    transient private java.lang.String json;
    private java.lang.String __id;
    transient private java.lang.Boolean is_default$id;
    private java.lang.String __buyeruid;
    transient private java.lang.Boolean is_default$buyeruid;
    private int __yob;
    transient private java.lang.Boolean is_default$yob;
    private java.lang.String __gender;
    transient private java.lang.Boolean is_default$gender;
    private java.lang.String __keywords;
    transient private java.lang.Boolean is_default$keywords;
    private java.lang.String __customdata;
    transient private java.lang.Boolean is_default$customdata;
    private open_rtb.Geo __geo;
    transient private java.lang.Boolean is_default$geo;
    private java.util.List> __data;
    transient private java.lang.Boolean is_default$data;
    transient private java.util.List> _data;

    private NativeImpl() {
      __id = "";
      is_default$id = java.lang.Boolean.TRUE;
      __buyeruid = "";
      is_default$buyeruid = java.lang.Boolean.TRUE;
      __yob = 0;
      is_default$yob = java.lang.Boolean.TRUE;
      __gender = "";
      is_default$gender = java.lang.Boolean.TRUE;
      __keywords = "";
      is_default$keywords = java.lang.Boolean.TRUE;
      __customdata = "";
      is_default$customdata = java.lang.Boolean.TRUE;
      __geo = open_rtb.Geo.newNativeImplBuilder().build();
      is_default$geo = java.lang.Boolean.TRUE;
      __data = java.util.Collections.emptyList();
      is_default$data = java.lang.Boolean.TRUE;
      json = "{}";
    }

    private NativeImpl(NativeImpl other) {
      setId(other.getId());
      setBuyeruid(other.getBuyeruid());
      setYob(other.getYob());
      setGender(other.getGender());
      setKeywords(other.getKeywords());
      setCustomdata(other.getCustomdata());
      setGeo(other.getGeo());
      setData(other.getData());
      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 (!isDefaultId()) {
        sb.append((0 == sb.length()) ? "{\"id\": " : ", \"id\": ")
          .append("\"" + __id.replace("\"","\\\"") + '\"');
      }
      if (!isDefaultBuyeruid()) {
        sb.append((0 == sb.length()) ? "{\"buyeruid\": " : ", \"buyeruid\": ")
          .append("\"" + __buyeruid.replace("\"","\\\"") + '\"');
      }
      if (!isDefaultYob()) {
        sb.append((0 == sb.length()) ? "{\"yob\": " : ", \"yob\": ")
          .append(__yob);
      }
      if (!isDefaultGender()) {
        sb.append((0 == sb.length()) ? "{\"gender\": " : ", \"gender\": ")
          .append("\"" + __gender.replace("\"","\\\"") + '\"');
      }
      if (!isDefaultKeywords()) {
        sb.append((0 == sb.length()) ? "{\"keywords\": " : ", \"keywords\": ")
          .append("\"" + __keywords.replace("\"","\\\"") + '\"');
      }
      if (!isDefaultCustomdata()) {
        sb.append((0 == sb.length()) ? "{\"customdata\": " : ", \"customdata\": ")
          .append("\"" + __customdata.replace("\"","\\\"") + '\"');
      }
      if (!isDefaultGeo()) {
        sb.append((0 == sb.length()) ? "{\"geo\": " : ", \"geo\": ")
          .append(__geo);
      }
      if (!isDefaultData()) {
        sb.append((0 == sb.length()) ? "{\"data\": " : ", \"data\": ")
          .append(__data.stream().map(java.lang.Object::toString).collect(java.util.stream.Collectors.joining(", ", "[", "]")));
      }
      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 java.lang.String getId() {
      return __id;
    }

    @Override public boolean isDefaultId() {
      if (null == is_default$id) {
        is_default$id = getId().length() == 0;
      }
      return is_default$id;
    }

    private void setId(java.lang.String value) {
      this.__id = value;
      this.is_default$id = null;
      this.json = null;
    }

    @Override public java.lang.String getBuyeruid() {
      return __buyeruid;
    }

    @Override public boolean isDefaultBuyeruid() {
      if (null == is_default$buyeruid) {
        is_default$buyeruid = getBuyeruid().length() == 0;
      }
      return is_default$buyeruid;
    }

    private void setBuyeruid(java.lang.String value) {
      this.__buyeruid = value;
      this.is_default$buyeruid = null;
      this.json = null;
    }

    @Override public int getYob() {
      return __yob;
    }

    @Override public boolean isDefaultYob() {
      if (null == is_default$yob) {
        is_default$yob = 0 == getYob();
      }
      return is_default$yob;
    }

    private void setYob(int value) {
      this.__yob = value;
      this.is_default$yob = null;
      this.json = null;
    }

    @Override public java.lang.String getGender() {
      return __gender;
    }

    @Override public boolean isDefaultGender() {
      if (null == is_default$gender) {
        is_default$gender = getGender().length() == 0;
      }
      return is_default$gender;
    }

    private void setGender(java.lang.String value) {
      this.__gender = value;
      this.is_default$gender = null;
      this.json = null;
    }

    @Override public java.lang.String getKeywords() {
      return __keywords;
    }

    @Override public boolean isDefaultKeywords() {
      if (null == is_default$keywords) {
        is_default$keywords = getKeywords().length() == 0;
      }
      return is_default$keywords;
    }

    private void setKeywords(java.lang.String value) {
      this.__keywords = value;
      this.is_default$keywords = null;
      this.json = null;
    }

    @Override public java.lang.String getCustomdata() {
      return __customdata;
    }

    @Override public boolean isDefaultCustomdata() {
      if (null == is_default$customdata) {
        is_default$customdata = getCustomdata().length() == 0;
      }
      return is_default$customdata;
    }

    private void setCustomdata(java.lang.String value) {
      this.__customdata = value;
      this.is_default$customdata = null;
      this.json = null;
    }

    @Override public open_rtb.Geo getGeo() {
      return __geo;
    }

    @Override public boolean isDefaultGeo() {
      if (null == is_default$geo) {
        is_default$geo = getGeo().get().equals(open_rtb.User.NativeImpl._DEFAULT.get().getGeo().get());
      }
      return is_default$geo;
    }

    private void setGeo(open_rtb.Geo value) {
      this.__geo = open_rtb.Geo.nativeImpl(value);
      this.is_default$geo = null;
      this.json = null;
    }

    @Override public java.util.List> getData() {
      if (null == _data) {
        _data = java.util.Collections.unmodifiableList(__data);
      }
      return _data;
    }

    @Override public boolean isDefaultData() {
      if (null == is_default$data) {
        is_default$data = getData().isEmpty();
      }
      return is_default$data;
    }

    private void setData(java.util.List> value) {
      this.__data = value.stream().map(open_rtb.Data::nativeImpl).collect(java.util.stream.Collectors.toCollection(() -> new java.util.ArrayList<>(value.size())));
      this.is_default$data = null;
      this.json = null;
      this._data = null;
    }

    static class NativeImplBuilder implements Builder {

      private NativeImpl wrapped = new NativeImpl();

      @Override public open_rtb.User build() {
        return new NativeImpl(wrapped);
      }

      @Override public Builder setId(java.lang.String value) {
        if (value.length() == 0) {
          return clearId();
        }
        wrapped.setId(value);
        return this;
      }

      @Override public Builder clearId() {
        wrapped.__id = _DEFAULT.get().__id;
        wrapped.is_default$id = true;
        return this;
      }

      @Override public Builder setBuyeruid(java.lang.String value) {
        if (value.length() == 0) {
          return clearBuyeruid();
        }
        wrapped.setBuyeruid(value);
        return this;
      }

      @Override public Builder clearBuyeruid() {
        wrapped.__buyeruid = _DEFAULT.get().__buyeruid;
        wrapped.is_default$buyeruid = true;
        return this;
      }

      @Override public Builder setYob(int value) {
        if (0 == value) {
          return clearYob();
        }
        wrapped.setYob(value);
        return this;
      }

      @Override public Builder clearYob() {
        wrapped.__yob = _DEFAULT.get().__yob;
        wrapped.is_default$yob = true;
        return this;
      }

      @Override public Builder setGender(java.lang.String value) {
        if (value.length() == 0) {
          return clearGender();
        }
        wrapped.setGender(value);
        return this;
      }

      @Override public Builder clearGender() {
        wrapped.__gender = _DEFAULT.get().__gender;
        wrapped.is_default$gender = true;
        return this;
      }

      @Override public Builder setKeywords(java.lang.String value) {
        if (value.length() == 0) {
          return clearKeywords();
        }
        wrapped.setKeywords(value);
        return this;
      }

      @Override public Builder clearKeywords() {
        wrapped.__keywords = _DEFAULT.get().__keywords;
        wrapped.is_default$keywords = true;
        return this;
      }

      @Override public Builder setCustomdata(java.lang.String value) {
        if (value.length() == 0) {
          return clearCustomdata();
        }
        wrapped.setCustomdata(value);
        return this;
      }

      @Override public Builder clearCustomdata() {
        wrapped.__customdata = _DEFAULT.get().__customdata;
        wrapped.is_default$customdata = true;
        return this;
      }

      @Override public Builder setGeo(open_rtb.Geo value) {
        if (value.get().equals(open_rtb.User.NativeImpl._DEFAULT.get().getGeo().get())) {
          return clearGeo();
        }
        wrapped.setGeo(value);
        return this;
      }

      @Override public Builder clearGeo() {
        wrapped.__geo = _DEFAULT.get().__geo;
        wrapped.is_default$geo = true;
        return this;
      }

      @Override public Builder setData(java.util.List> value) {
        if (value.isEmpty()) {
          return clearData();
        }
        wrapped.setData(value);
        return this;
      }

      @Override public Builder clearData() {
        wrapped.__data = _DEFAULT.get().__data;
        wrapped.is_default$data = true;
        wrapped._data = _DEFAULT.get()._data;
        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 = 8;
  }

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

  /** Returns a POJO builder instance based on existing prototype User. */
  static Builder newNativeImplBuilder(open_rtb.User other) {
    return newNativeImplBuilder()
      .setId(other.getId())
      .setBuyeruid(other.getBuyeruid())
      .setYob(other.getYob())
      .setGender(other.getGender())
      .setKeywords(other.getKeywords())
      .setCustomdata(other.getCustomdata())
      .setGeo(other.getGeo())
      .setData(other.getData());
  }

  /** Returns a POJO based on an instance of User. */
  static NativeImpl nativeImpl(open_rtb.User instance) {
    if (instance instanceof NativeImpl) {
      return (NativeImpl) instance;
    } else {
      return (NativeImpl) newNativeImplBuilder(instance).build();
    }
  }

  static class Avro implements open_rtb.User {

    private byte[] binaryEncoding;
    transient private open_rtb.UserAvro wrapped;
    transient private java.lang.Boolean is_default$id;
    transient private java.lang.String _id;
    transient private java.lang.Boolean is_default$buyeruid;
    transient private java.lang.String _buyeruid;
    transient private java.lang.Boolean is_default$yob;
    transient private java.lang.Boolean is_default$gender;
    transient private java.lang.String _gender;
    transient private java.lang.Boolean is_default$keywords;
    transient private java.lang.String _keywords;
    transient private java.lang.Boolean is_default$customdata;
    transient private java.lang.String _customdata;
    transient private java.lang.Boolean is_default$geo;
    transient private open_rtb.Geo _geo;
    transient private java.lang.Boolean is_default$data;
    transient private java.util.List> _data;

    private Avro(open_rtb.UserAvro 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 open_rtb.UserAvro 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 java.lang.String getId() {
      if (_id == null) {
        _id = java.util.Optional.of(get().id).map(java.lang.Object::toString).orElse("");
      }
      return _id;
    }

    @Override public boolean isDefaultId() {
      if (is_default$id == null) {
        is_default$id = getId().length() == 0;
      }
      return is_default$id;
    }

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

    @Override public boolean isDefaultBuyeruid() {
      if (is_default$buyeruid == null) {
        is_default$buyeruid = getBuyeruid().length() == 0;
      }
      return is_default$buyeruid;
    }

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

    @Override public boolean isDefaultYob() {
      if (is_default$yob == null) {
        is_default$yob = 0 == getYob();
      }
      return is_default$yob;
    }

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

    @Override public boolean isDefaultGender() {
      if (is_default$gender == null) {
        is_default$gender = getGender().length() == 0;
      }
      return is_default$gender;
    }

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

    @Override public boolean isDefaultKeywords() {
      if (is_default$keywords == null) {
        is_default$keywords = getKeywords().length() == 0;
      }
      return is_default$keywords;
    }

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

    @Override public boolean isDefaultCustomdata() {
      if (is_default$customdata == null) {
        is_default$customdata = getCustomdata().length() == 0;
      }
      return is_default$customdata;
    }

    @Override public open_rtb.Geo getGeo() {
      if (_geo == null) {
        _geo = open_rtb.Geo.avro(get().geo);
      }
      return _geo;
    }

    @Override public boolean isDefaultGeo() {
      if (is_default$geo == null) {
        is_default$geo = getGeo().get().equals(open_rtb.User.Avro._DEFAULT.get().getGeo().get());
      }
      return is_default$geo;
    }

    @Override public java.util.List> getData() {
      if (_data == null) {
        _data = java.util.Collections.unmodifiableList(get().data.stream().map(open_rtb.Data::avro).collect(java.util.stream.Collectors.toCollection(() -> new java.util.ArrayList>(get().data.size()))));
      }
      return _data;
    }

    @Override public boolean isDefaultData() {
      if (is_default$data == null) {
        is_default$data = getData().isEmpty();
      }
      return is_default$data;
    }

    @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 open_rtb.UserAvro decode(byte[] binaryEncoding) throws java.io.IOException {
      open_rtb.UserAvro instance = new open_rtb.UserAvro();
      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 open_rtb.User 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(open_rtb.UserAvro.newBuilder().build(), null); }
    };

    static public final long serialVersionUID = 8;
  }

  static class AvroBuilder implements Builder {

    final private open_rtb.UserAvro.Builder builder;

    /** Only use this if you know what you are doing. */
    public AvroBuilder(open_rtb.UserAvro.Builder builder) { this.builder = builder; }

    @Override public open_rtb.User build() {
      return new Avro(builder.build(), null);
    }

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

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

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

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

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

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

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

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

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

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

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

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

    @Override public Builder setGeo(open_rtb.Geo value) {
      builder.setGeo(open_rtb.Geo.avro(value).get());
      return this;
    }

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

    @Override public Builder setData(java.util.List> value) {
      builder.setData(value.stream().map(open_rtb.Data::avro).map(java.util.function.Supplier::get).collect(java.util.stream.Collectors.toCollection(() -> new org.apache.avro.generic.GenericData.Array<>(value.size(), open_rtb.UserAvro.SCHEMA$.getFields().get(7).schema()))));
      return this;
    }

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

  /** Returns new Avro builder instance with default values. */
  static Builder newAvroBuilder() {
    return new AvroBuilder(open_rtb.UserAvro.newBuilder());
  }

  /** Returns new Avro builder instance based on existing prototype. */
  static Builder newAvroBuilder(open_rtb.UserAvro other) {
    return new AvroBuilder(open_rtb.UserAvro.newBuilder(other));
  }

  /** Returns new Avro builder instance based on existing prototype builder. */
  static Builder newAvroBuilder(open_rtb.UserAvro.Builder other) {
    return new AvroBuilder(open_rtb.UserAvro.newBuilder(other));
  }

  /** Returns new Avro builder instance based on existing prototype User. */
  static Builder newAvroBuilder(open_rtb.User other) {
    return newAvroBuilder()
      .setId(other.getId())
      .setBuyeruid(other.getBuyeruid())
      .setYob(other.getYob())
      .setGender(other.getGender())
      .setKeywords(other.getKeywords())
      .setCustomdata(other.getCustomdata())
      .setGeo(other.getGeo())
      .setData(other.getData());
  }

  /** Returns a wrapped Avro record based on an instance of User. */
  static Avro avro(open_rtb.User instance) {
    if (instance instanceof Avro) {
      return (Avro) instance;
    } else {
      return (Avro) newAvroBuilder(instance).build();
    }
  }

  /** Wraps an existing Avro record. */
  static Avro avro(open_rtb.UserAvro wrapped) {
    assert wrapped != null;
    return new Avro(wrapped.freeze(), null);
  }

  /** Returns Avro record class. */
  static java.lang.Class getAvroClass() {
    return open_rtb.UserAvro.class;
  }

  /** Returns Avro record schema. */
  static org.apache.avro.Schema getAvroSchema() {
    return open_rtb.UserAvro.SCHEMA$;
  }

  static class Protobuf implements open_rtb.User {

    private byte[] binaryEncoding;
    transient private open_rtb.OpenRtbProtobuf.User wrapped;
    transient private java.lang.Boolean is_default$id;
    transient private java.lang.Boolean is_default$buyeruid;
    transient private java.lang.Boolean is_default$yob;
    transient private java.lang.Boolean is_default$gender;
    transient private java.lang.Boolean is_default$keywords;
    transient private java.lang.Boolean is_default$customdata;
    transient private java.lang.Boolean is_default$geo;
    transient private open_rtb.Geo _geo;
    transient private java.lang.Boolean is_default$data;
    transient private java.util.List> _data;

    private Protobuf(open_rtb.OpenRtbProtobuf.User 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 open_rtb.OpenRtbProtobuf.User get() {
      if (wrapped == null) {
        try {
          wrapped = open_rtb.OpenRtbProtobuf.User.parseFrom(binaryEncoding);
        } catch (java.io.IOException e) {
          throw new java.io.UncheckedIOException(e);
        }
      }
      return wrapped;
    }

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

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

    @Override public boolean isDefaultId() {
      if (is_default$id == null) {
        is_default$id = getId().length() == 0;
      }
      return is_default$id;
    }

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

    @Override public boolean isDefaultBuyeruid() {
      if (is_default$buyeruid == null) {
        is_default$buyeruid = getBuyeruid().length() == 0;
      }
      return is_default$buyeruid;
    }

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

    @Override public boolean isDefaultYob() {
      if (is_default$yob == null) {
        is_default$yob = 0 == getYob();
      }
      return is_default$yob;
    }

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

    @Override public boolean isDefaultGender() {
      if (is_default$gender == null) {
        is_default$gender = getGender().length() == 0;
      }
      return is_default$gender;
    }

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

    @Override public boolean isDefaultKeywords() {
      if (is_default$keywords == null) {
        is_default$keywords = getKeywords().length() == 0;
      }
      return is_default$keywords;
    }

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

    @Override public boolean isDefaultCustomdata() {
      if (is_default$customdata == null) {
        is_default$customdata = getCustomdata().length() == 0;
      }
      return is_default$customdata;
    }

    @Override public open_rtb.Geo getGeo() {
      if (_geo == null) {
        _geo = open_rtb.Geo.protobuf(get().getGeo());
      }
      return _geo;
    }

    @Override public boolean isDefaultGeo() {
      if (is_default$geo == null) {
        is_default$geo = getGeo().get().equals(open_rtb.User.Protobuf._DEFAULT.get().getGeo().get());
      }
      return is_default$geo;
    }

    @Override public java.util.List> getData() {
      if (_data == null) {
        _data = java.util.Collections.unmodifiableList(get().getDataList().stream().map(open_rtb.Data::protobuf).collect(java.util.stream.Collectors.toCollection(() -> new java.util.ArrayList>(get().getDataCount()))));
      }
      return _data;
    }

    @Override public boolean isDefaultData() {
      if (is_default$data == null) {
        is_default$data = getData().isEmpty();
      }
      return is_default$data;
    }

    @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 open_rtb.User from(byte[] binaryEncoding) throws java.io.IOException {
      return new Protobuf(open_rtb.OpenRtbProtobuf.User.parseFrom(binaryEncoding), binaryEncoding);
    }

    static private java.lang.ThreadLocal _DEFAULT = new java.lang.ThreadLocal() {
      @Override protected Protobuf initialValue() { return new Protobuf(open_rtb.OpenRtbProtobuf.User.getDefaultInstance() , null); }
    };

    static public final long serialVersionUID = 8;
  }

  static class ProtobufBuilder implements Builder {

    final private open_rtb.OpenRtbProtobuf.User.Builder builder;

    /** Only use this if you know what you are doing. */
    public ProtobufBuilder(open_rtb.OpenRtbProtobuf.User.Builder builder) { this.builder = builder; }

    @Override public open_rtb.User build() {
      return new Protobuf(builder.build(), null);
    }

    @Override public Builder setId(java.lang.String value) {
      if (!(value.length() == 0)) {
        builder.setId(value);
      }
      return this;
    }

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

    @Override public Builder setBuyeruid(java.lang.String value) {
      if (!(value.length() == 0)) {
        builder.setBuyeruid(value);
      }
      return this;
    }

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

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

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

    @Override public Builder setGender(java.lang.String value) {
      if (!(value.length() == 0)) {
        builder.setGender(value);
      }
      return this;
    }

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

    @Override public Builder setKeywords(java.lang.String value) {
      if (!(value.length() == 0)) {
        builder.setKeywords(value);
      }
      return this;
    }

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

    @Override public Builder setCustomdata(java.lang.String value) {
      if (!(value.length() == 0)) {
        builder.setCustomdata(value);
      }
      return this;
    }

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

    @Override public Builder setGeo(open_rtb.Geo value) {
      if (!(value.get().equals(open_rtb.User.Protobuf._DEFAULT.get().getGeo().get()))) {
        builder.setGeo(open_rtb.Geo.protobuf(value).get());
      }
      return this;
    }

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

    @Override public Builder setData(java.util.List> value) {
      if (!(value.isEmpty())) {
        builder.addAllData(value.stream().map(open_rtb.Data::protobuf).map(java.util.function.Supplier::get).collect(java.util.stream.Collectors.toCollection(() -> new java.util.ArrayList(value.size()))));
      }
      return this;
    }

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

  /** Returns new Protobuf builder instance with default values. */
  static Builder newProtobufBuilder() {
    return new ProtobufBuilder(open_rtb.OpenRtbProtobuf.User.newBuilder());
  }

  /** Returns new Protobuf builder instance based on existing prototype. */
  static Builder newProtobufBuilder(open_rtb.OpenRtbProtobuf.User other) {
    return new ProtobufBuilder(open_rtb.OpenRtbProtobuf.User.newBuilder(other));
  }

  /** Returns new Protobuf builder instance based on existing prototype User. */
  static Builder newProtobufBuilder(open_rtb.User other) {
    return newProtobufBuilder()
      .setId(other.getId())
      .setBuyeruid(other.getBuyeruid())
      .setYob(other.getYob())
      .setGender(other.getGender())
      .setKeywords(other.getKeywords())
      .setCustomdata(other.getCustomdata())
      .setGeo(other.getGeo())
      .setData(other.getData());
  }

  /** Returns a wrapped Protobuf message based on an instance of User. */
  static Protobuf protobuf(open_rtb.User instance) {
    if (instance instanceof Protobuf) {
      return (Protobuf) instance;
    }
    return (Protobuf) newProtobufBuilder(instance).build();
  }

  /** Wraps an existing Protobuf message. */
  static Protobuf protobuf(open_rtb.OpenRtbProtobuf.User wrapped) {
    assert wrapped != null;
    return new Protobuf(wrapped, null);
  }

  /** Returns Protobuf class for this struct. */
  static java.lang.Class getProtobufClass() {
    return open_rtb.OpenRtbProtobuf.User.class;
  }

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

  /** Returns Protobuf descriptor for this struct. */
  static com.google.protobuf.Descriptors.Descriptor getProtobufDescriptor() {
    return open_rtb.OpenRtbProtobuf.User.getDescriptor();
  }

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

  static class Thrift implements open_rtb.User {

    private open_rtb.UserThrift wrapped;
    transient private java.lang.Boolean is_default$id;
    transient private java.lang.String _id;
    transient private java.lang.Boolean is_default$buyeruid;
    transient private java.lang.String _buyeruid;
    transient private java.lang.Boolean is_default$yob;
    transient private java.lang.Boolean is_default$gender;
    transient private java.lang.String _gender;
    transient private java.lang.Boolean is_default$keywords;
    transient private java.lang.String _keywords;
    transient private java.lang.Boolean is_default$customdata;
    transient private java.lang.String _customdata;
    transient private java.lang.Boolean is_default$geo;
    transient private open_rtb.Geo _geo;
    transient private java.lang.Boolean is_default$data;
    transient private java.util.List> _data;

    /** Wraps an existing instance. Only use this if you know what you are doing. */
    public Thrift(open_rtb.UserThrift wrapped) { this.wrapped = wrapped; }

    /** Create a new wrapper. */
    public Thrift() { this(new open_rtb.UserThrift()); }

    @Override public open_rtb.UserThrift get() { return wrapped; }

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

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

    @Override public boolean isDefaultId() {
      if (is_default$id == null) {
        is_default$id = getId().length() == 0;
      }
      return is_default$id;
    }

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

    @Override public boolean isDefaultBuyeruid() {
      if (is_default$buyeruid == null) {
        is_default$buyeruid = getBuyeruid().length() == 0;
      }
      return is_default$buyeruid;
    }

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

    @Override public boolean isDefaultYob() {
      if (is_default$yob == null) {
        is_default$yob = 0 == getYob();
      }
      return is_default$yob;
    }

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

    @Override public boolean isDefaultGender() {
      if (is_default$gender == null) {
        is_default$gender = getGender().length() == 0;
      }
      return is_default$gender;
    }

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

    @Override public boolean isDefaultKeywords() {
      if (is_default$keywords == null) {
        is_default$keywords = getKeywords().length() == 0;
      }
      return is_default$keywords;
    }

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

    @Override public boolean isDefaultCustomdata() {
      if (is_default$customdata == null) {
        is_default$customdata = getCustomdata().length() == 0;
      }
      return is_default$customdata;
    }

    @Override public open_rtb.Geo getGeo() {
      if (_geo == null) {
        _geo = open_rtb.Geo.thrift(java.util.Optional.ofNullable(wrapped.getGeo()).orElseGet(open_rtb.GeoThrift::new));
      }
      return _geo;
    }

    @Override public boolean isDefaultGeo() {
      if (is_default$geo == null) {
        is_default$geo = getGeo().get().equals(open_rtb.User.Thrift._DEFAULT.get().getGeo().get());
      }
      return is_default$geo;
    }

    @Override public java.util.List> getData() {
      if (_data == null) {
        _data = java.util.Optional.ofNullable(wrapped.getData()).orElseGet(java.util.Collections::emptyList).stream().map(open_rtb.Data::thrift).collect(java.util.stream.Collectors.toCollection(() -> new java.util.ArrayList>()));
      }
      return _data;
    }

    @Override public boolean isDefaultData() {
      if (is_default$data == null) {
        is_default$data = getData().isEmpty();
      }
      return is_default$data;
    }

    @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 = 8;
  }

  static class ThriftBuilder implements Builder {

    final private open_rtb.UserThrift builder;

    /** Only use this if you know what you are doing. */
    public ThriftBuilder(open_rtb.UserThrift builder) { this.builder = builder; }

    @Override public open_rtb.User build() {
      return new Thrift((open_rtb.UserThrift) builder.deepCopy());
    }

    @Override public Builder setId(java.lang.String value) {
      if (!(value.length() == 0)) {
        builder.setId(value);
      }
      return this;
    }

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

    @Override public Builder setBuyeruid(java.lang.String value) {
      if (!(value.length() == 0)) {
        builder.setBuyeruid(value);
      }
      return this;
    }

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

    @Override public Builder setYob(int value) {
      if (!(0 == value)) {
        builder.setYob((short) value);
      }
      return this;
    }

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

    @Override public Builder setGender(java.lang.String value) {
      if (!(value.length() == 0)) {
        builder.setGender(value);
      }
      return this;
    }

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

    @Override public Builder setKeywords(java.lang.String value) {
      if (!(value.length() == 0)) {
        builder.setKeywords(value);
      }
      return this;
    }

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

    @Override public Builder setCustomdata(java.lang.String value) {
      if (!(value.length() == 0)) {
        builder.setCustomdata(value);
      }
      return this;
    }

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

    @Override public Builder setGeo(open_rtb.Geo value) {
      if (!(value.get().equals(open_rtb.User.Thrift._DEFAULT.get().getGeo().get()))) {
        builder.setGeo(open_rtb.Geo.thrift(value).get());
      }
      return this;
    }

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

    @Override public Builder setData(java.util.List> value) {
      if (!(value.isEmpty())) {
        builder.setData(value.stream().map(open_rtb.Data::thrift).map(java.util.function.Supplier::get).collect(java.util.stream.Collectors.toCollection(() -> new java.util.ArrayList<>(value.size()))));
      }
      return this;
    }

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

  /** Returns new Thrift builder instance with default values. */
  static Builder newThriftBuilder() {
    return new ThriftBuilder(new open_rtb.UserThrift());
  }

  /** Returns new Thrift builder instance based on existing prototype. */
  static Builder newThriftBuilder(open_rtb.UserThrift other) {
    return new ThriftBuilder((open_rtb.UserThrift) other.deepCopy());
  }

  /** Returns new Thrift builder instance based on existing prototype User. */
  static Builder newThriftBuilder(open_rtb.User other) {
    return newThriftBuilder()
      .setId(other.getId())
      .setBuyeruid(other.getBuyeruid())
      .setYob(other.getYob())
      .setGender(other.getGender())
      .setKeywords(other.getKeywords())
      .setCustomdata(other.getCustomdata())
      .setGeo(other.getGeo())
      .setData(other.getData());
  }

  /** Returns a wrapped Thrift struct based on an instance of User. */
  static Thrift thrift(open_rtb.User 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(open_rtb.UserThrift instance) {
    return new Thrift((open_rtb.UserThrift) instance.deepCopy());
  }

  /** Returns Thrift class for this struct. */
  static java.lang.Class getThriftClass() {
    return open_rtb.UserThrift.class;
  }

  /** Returns Thrift metadata map for this struct. */
  static java.util.Map getThriftMetadataMap() {
    return open_rtb.UserThrift.metaDataMap;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy