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

open_rtb.Bid Maven / Gradle / Ivy

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

package open_rtb;

/** 4.3.3 Bid Object
For each bid, the “nurl” attribute contains the win notice URL. If the bidder wins the impression, the exchange calls this notice URL a) to inform the bidder of the win and b) to convey certain information using substitution macros (see Section 4.6 Substitution Macros).
The “adomain” attribute can be used to check advertiser block list compliance. The “iurl” attribute can provide a link to an image that is representative of the campaign’s content (irrespective of whether the campaign may have multiple creatives). This enables human review for spotting inappropriate content. The “cid” attribute can be used to block ads that were previously identified as inappropriate; essentially a safety net beyond the block lists. The “crid” attribute can be helpful in reporting creative issues back to bidders. Finally, the “attr” array indicates the creative attributes that describe the ad to be served.
BEST PRACTICE: Substitution macros may allow a bidder to use a static notice URL for all of its bids. Thus, exchanges should offer the option of a default notice URL that can be pre- configured per bidder to reduce redundant data transfer. */
public interface Bid
  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() &&
      isDefaultImpid() &&
      isDefaultPrice() &&
      isDefaultAdid() &&
      isDefaultNurl() &&
      isDefaultAdm() &&
      isDefaultAdomain() &&
      isDefaultLurl() &&
      isDefaultCid() &&
      isDefaultCrid() &&
      isDefaultAttr() &&
      isDefaultDealid() &&
      isDefaultW() &&
      isDefaultH();
  }

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

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

  /** ID for the bid object chosen by the bidder for tracking and debugging purposes. Useful when multiple bids are submitted for a single impression for a given seat. */
  java.lang.String getId();

  boolean isDefaultId();

  /** ID of the impression object to which this bid applies. */
  java.lang.String getImpid();

  boolean isDefaultImpid();

  /** Bid price in CPM. WARNING/Best Practice Note: Although this value is a float, OpenRTB strongly suggests using integer math for accounting to avoid rounding errors. */
  double getPrice();

  boolean isDefaultPrice();

  /** ID that references the ad to be served if the bid wins. */
  java.lang.String getAdid();

  boolean isDefaultAdid();

  /** Win notice URL. Note that ad markup is also typically, but not necessarily, returned via this URL. */
  java.lang.String getNurl();

  boolean isDefaultNurl();

  /** Actual ad markup. XHTML if a response to a banner object, or VAST XML if a response to a video object. */
  java.lang.String getAdm();

  boolean isDefaultAdm();

  /** Advertiser’s primary or top-level domain for advertiser checking. This can be a list of domains if there is a rotating creative. However, exchanges may mandate that only one landing domain is allowed. */
  java.util.List getAdomain();

  boolean isDefaultAdomain();

  /** Sample image URL (without cache busting) for content checking. */
  java.lang.String getLurl();

  boolean isDefaultLurl();

  /** Campaign ID or similar that appears within the ad markup. */
  java.lang.String getCid();

  boolean isDefaultCid();

  /** Creative ID for reporting content issues or defects. This could also be used as a reference to a creative ID that is posted with an exchange. */
  java.lang.String getCrid();

  boolean isDefaultCrid();

  /** Array of creative attributes. See Table 6.3 Creative Attributes. */
  java.util.List getAttr();

  boolean isDefaultAttr();

  /** A unique identifier for the direct deal associated with the bid. If the bid is associated and in response to a dealid in the request object it is _required_ in the response object. */
  java.lang.String getDealid();

  boolean isDefaultDealid();

  /** Width of the ad in pixels. If the bid request contained the wmax/hmax and wmin/hmin optional fields it is recommended that the response bid contains this field to signal the size of ad chosen. */
  int getW();

  boolean isDefaultW();

  /** Height of the ad in pixels. If the bid request contained the wmax/hmax and wmin/hmin optional fields it is recommended that the response bid contains this field to signal the size of ad chosen. */
  int getH();

  boolean isDefaultH();

  public interface Builder {

    Bid build();

    Builder setId(java.lang.String value);

    Builder clearId();

    Builder setImpid(java.lang.String value);

    Builder clearImpid();

    Builder setPrice(double value);

    Builder clearPrice();

    Builder setAdid(java.lang.String value);

    Builder clearAdid();

    Builder setNurl(java.lang.String value);

    Builder clearNurl();

    Builder setAdm(java.lang.String value);

    Builder clearAdm();

    Builder setAdomain(java.util.List value);

    Builder clearAdomain();

    Builder setLurl(java.lang.String value);

    Builder clearLurl();

    Builder setCid(java.lang.String value);

    Builder clearCid();

    Builder setCrid(java.lang.String value);

    Builder clearCrid();

    Builder setAttr(java.util.List value);

    Builder clearAttr();

    Builder setDealid(java.lang.String value);

    Builder clearDealid();

    Builder setW(int value);

    Builder clearW();

    Builder setH(int value);

    Builder clearH();
  }


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

    @Override public int compare(open_rtb.Bid a, open_rtb.Bid b) {
      int _cmp;
      if (0 != (_cmp = compareId(a, b))) return _cmp;
      if (0 != (_cmp = compareImpid(a, b))) return _cmp;
      if (0 != (_cmp = comparePrice(a, b))) return _cmp;
      if (0 != (_cmp = compareAdid(a, b))) return _cmp;
      if (0 != (_cmp = compareNurl(a, b))) return _cmp;
      if (0 != (_cmp = compareAdm(a, b))) return _cmp;
      if (0 != (_cmp = compareAdomain(a, b))) return _cmp;
      if (0 != (_cmp = compareLurl(a, b))) return _cmp;
      if (0 != (_cmp = compareCid(a, b))) return _cmp;
      if (0 != (_cmp = compareCrid(a, b))) return _cmp;
      if (0 != (_cmp = compareAttr(a, b))) return _cmp;
      if (0 != (_cmp = compareDealid(a, b))) return _cmp;
      if (0 != (_cmp = compareW(a, b))) return _cmp;
      if (0 != (_cmp = compareH(a, b))) return _cmp;
      return 0;
    }

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

    static private int compareImpid (open_rtb.Bid a, open_rtb.Bid b) {
      final java.lang.String fa = a.getImpid();
      final java.lang.String fb = b.getImpid();
      return fa.compareTo(fb);
    }

    static private int comparePrice (open_rtb.Bid a, open_rtb.Bid b) {
      final java.lang.Double fa = a.getPrice();
      final java.lang.Double fb = b.getPrice();
      return java.lang.Double.compare(fa, fb);
    }

    static private int compareAdid (open_rtb.Bid a, open_rtb.Bid b) {
      final java.lang.String fa = a.getAdid();
      final java.lang.String fb = b.getAdid();
      return fa.compareTo(fb);
    }

    static private int compareNurl (open_rtb.Bid a, open_rtb.Bid b) {
      final java.lang.String fa = a.getNurl();
      final java.lang.String fb = b.getNurl();
      return fa.compareTo(fb);
    }

    static private int compareAdm (open_rtb.Bid a, open_rtb.Bid b) {
      final java.lang.String fa = a.getAdm();
      final java.lang.String fb = b.getAdm();
      return fa.compareTo(fb);
    }

    static private int compareAdomain (open_rtb.Bid a, open_rtb.Bid b) {
      final java.util.List fa = a.getAdomain();
      final java.util.List fb = b.getAdomain();
      int _cmp = 0; java.util.Iterator a_it6 = fa.iterator(); java.util.Iterator b_it6 = fb.iterator(); while (a_it6.hasNext() && b_it6.hasNext()) { if (0 != (_cmp = a_it6.next().compareTo(b_it6.next()))) return _cmp; } if (a_it6.hasNext()) return 1; if (b_it6.hasNext()) return -1; return 0;
    }

    static private int compareLurl (open_rtb.Bid a, open_rtb.Bid b) {
      final java.lang.String fa = a.getLurl();
      final java.lang.String fb = b.getLurl();
      return fa.compareTo(fb);
    }

    static private int compareCid (open_rtb.Bid a, open_rtb.Bid b) {
      final java.lang.String fa = a.getCid();
      final java.lang.String fb = b.getCid();
      return fa.compareTo(fb);
    }

    static private int compareCrid (open_rtb.Bid a, open_rtb.Bid b) {
      final java.lang.String fa = a.getCrid();
      final java.lang.String fb = b.getCrid();
      return fa.compareTo(fb);
    }

    static private int compareAttr (open_rtb.Bid a, open_rtb.Bid b) {
      final java.util.List fa = a.getAttr();
      final java.util.List fb = b.getAttr();
      int _cmp = 0; java.util.Iterator a_it10 = fa.iterator(); java.util.Iterator b_it10 = fb.iterator(); while (a_it10.hasNext() && b_it10.hasNext()) { if (0 != (_cmp = java.lang.Integer.compareUnsigned(a_it10.next(), b_it10.next()))) return _cmp; } if (a_it10.hasNext()) return 1; if (b_it10.hasNext()) return -1; return 0;
    }

    static private int compareDealid (open_rtb.Bid a, open_rtb.Bid b) {
      final java.lang.String fa = a.getDealid();
      final java.lang.String fb = b.getDealid();
      return fa.compareTo(fb);
    }

    static private int compareW (open_rtb.Bid a, open_rtb.Bid b) {
      final java.lang.Integer fa = a.getW();
      final java.lang.Integer fb = b.getW();
      return java.lang.Integer.compareUnsigned(fa, fb);
    }

    static private int compareH (open_rtb.Bid a, open_rtb.Bid b) {
      final java.lang.Integer fa = a.getH();
      final java.lang.Integer fb = b.getH();
      return java.lang.Integer.compareUnsigned(fa, fb);
    }

    static private final Comparator INSTANCE = new Comparator();

    static public final long serialVersionUID = 14;
  }

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

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

  static class NativeImpl implements open_rtb.Bid {

    transient private java.lang.String json;
    private java.lang.String __id;
    transient private java.lang.Boolean is_default$id;
    private java.lang.String __impid;
    transient private java.lang.Boolean is_default$impid;
    private double __price;
    transient private java.lang.Boolean is_default$price;
    private java.lang.String __adid;
    transient private java.lang.Boolean is_default$adid;
    private java.lang.String __nurl;
    transient private java.lang.Boolean is_default$nurl;
    private java.lang.String __adm;
    transient private java.lang.Boolean is_default$adm;
    private java.util.List __adomain;
    transient private java.lang.Boolean is_default$adomain;
    transient private java.util.List _adomain;
    private java.lang.String __lurl;
    transient private java.lang.Boolean is_default$lurl;
    private java.lang.String __cid;
    transient private java.lang.Boolean is_default$cid;
    private java.lang.String __crid;
    transient private java.lang.Boolean is_default$crid;
    private java.util.List __attr;
    transient private java.lang.Boolean is_default$attr;
    transient private java.util.List _attr;
    private java.lang.String __dealid;
    transient private java.lang.Boolean is_default$dealid;
    private int __w;
    transient private java.lang.Boolean is_default$w;
    private int __h;
    transient private java.lang.Boolean is_default$h;

    private NativeImpl() {
      __id = "";
      is_default$id = java.lang.Boolean.TRUE;
      __impid = "";
      is_default$impid = java.lang.Boolean.TRUE;
      __price = 0x0.0p0;
      is_default$price = java.lang.Boolean.TRUE;
      __adid = "";
      is_default$adid = java.lang.Boolean.TRUE;
      __nurl = "";
      is_default$nurl = java.lang.Boolean.TRUE;
      __adm = "";
      is_default$adm = java.lang.Boolean.TRUE;
      __adomain = java.util.Collections.emptyList();
      is_default$adomain = java.lang.Boolean.TRUE;
      __lurl = "";
      is_default$lurl = java.lang.Boolean.TRUE;
      __cid = "";
      is_default$cid = java.lang.Boolean.TRUE;
      __crid = "";
      is_default$crid = java.lang.Boolean.TRUE;
      __attr = java.util.Collections.emptyList();
      is_default$attr = java.lang.Boolean.TRUE;
      __dealid = "";
      is_default$dealid = java.lang.Boolean.TRUE;
      __w = 0;
      is_default$w = java.lang.Boolean.TRUE;
      __h = 0;
      is_default$h = java.lang.Boolean.TRUE;
      json = "{}";
    }

    private NativeImpl(NativeImpl other) {
      setId(other.getId());
      setImpid(other.getImpid());
      setPrice(other.getPrice());
      setAdid(other.getAdid());
      setNurl(other.getNurl());
      setAdm(other.getAdm());
      setAdomain(other.getAdomain());
      setLurl(other.getLurl());
      setCid(other.getCid());
      setCrid(other.getCrid());
      setAttr(other.getAttr());
      setDealid(other.getDealid());
      setW(other.getW());
      setH(other.getH());
      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 (!isDefaultImpid()) {
        sb.append((0 == sb.length()) ? "{\"impid\": " : ", \"impid\": ")
          .append("\"" + __impid.replace("\"","\\\"") + '\"');
      }
      if (!isDefaultPrice()) {
        sb.append((0 == sb.length()) ? "{\"price\": " : ", \"price\": ")
          .append(__price);
      }
      if (!isDefaultAdid()) {
        sb.append((0 == sb.length()) ? "{\"adid\": " : ", \"adid\": ")
          .append("\"" + __adid.replace("\"","\\\"") + '\"');
      }
      if (!isDefaultNurl()) {
        sb.append((0 == sb.length()) ? "{\"nurl\": " : ", \"nurl\": ")
          .append("\"" + __nurl.replace("\"","\\\"") + '\"');
      }
      if (!isDefaultAdm()) {
        sb.append((0 == sb.length()) ? "{\"adm\": " : ", \"adm\": ")
          .append("\"" + __adm.replace("\"","\\\"") + '\"');
      }
      if (!isDefaultAdomain()) {
        sb.append((0 == sb.length()) ? "{\"adomain\": " : ", \"adomain\": ")
          .append(__adomain.stream().map(v -> "\"" + v.replace("\"","\\\"") + '\"').collect(java.util.stream.Collectors.joining(", ", "[", "]")));
      }
      if (!isDefaultLurl()) {
        sb.append((0 == sb.length()) ? "{\"lurl\": " : ", \"lurl\": ")
          .append("\"" + __lurl.replace("\"","\\\"") + '\"');
      }
      if (!isDefaultCid()) {
        sb.append((0 == sb.length()) ? "{\"cid\": " : ", \"cid\": ")
          .append("\"" + __cid.replace("\"","\\\"") + '\"');
      }
      if (!isDefaultCrid()) {
        sb.append((0 == sb.length()) ? "{\"crid\": " : ", \"crid\": ")
          .append("\"" + __crid.replace("\"","\\\"") + '\"');
      }
      if (!isDefaultAttr()) {
        sb.append((0 == sb.length()) ? "{\"attr\": " : ", \"attr\": ")
          .append(__attr.stream().map(java.lang.Object::toString).collect(java.util.stream.Collectors.joining(", ", "[", "]")));
      }
      if (!isDefaultDealid()) {
        sb.append((0 == sb.length()) ? "{\"dealid\": " : ", \"dealid\": ")
          .append("\"" + __dealid.replace("\"","\\\"") + '\"');
      }
      if (!isDefaultW()) {
        sb.append((0 == sb.length()) ? "{\"w\": " : ", \"w\": ")
          .append(__w);
      }
      if (!isDefaultH()) {
        sb.append((0 == sb.length()) ? "{\"h\": " : ", \"h\": ")
          .append(__h);
      }
      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 getImpid() {
      return __impid;
    }

    @Override public boolean isDefaultImpid() {
      if (null == is_default$impid) {
        is_default$impid = getImpid().length() == 0;
      }
      return is_default$impid;
    }

    private void setImpid(java.lang.String value) {
      this.__impid = value;
      this.is_default$impid = null;
      this.json = null;
    }

    @Override public double getPrice() {
      return __price;
    }

    @Override public boolean isDefaultPrice() {
      if (null == is_default$price) {
        is_default$price = 0x0.0p0 == getPrice();
      }
      return is_default$price;
    }

    private void setPrice(double value) {
      this.__price = value;
      this.is_default$price = null;
      this.json = null;
    }

    @Override public java.lang.String getAdid() {
      return __adid;
    }

    @Override public boolean isDefaultAdid() {
      if (null == is_default$adid) {
        is_default$adid = getAdid().length() == 0;
      }
      return is_default$adid;
    }

    private void setAdid(java.lang.String value) {
      this.__adid = value;
      this.is_default$adid = null;
      this.json = null;
    }

    @Override public java.lang.String getNurl() {
      return __nurl;
    }

    @Override public boolean isDefaultNurl() {
      if (null == is_default$nurl) {
        is_default$nurl = getNurl().length() == 0;
      }
      return is_default$nurl;
    }

    private void setNurl(java.lang.String value) {
      this.__nurl = value;
      this.is_default$nurl = null;
      this.json = null;
    }

    @Override public java.lang.String getAdm() {
      return __adm;
    }

    @Override public boolean isDefaultAdm() {
      if (null == is_default$adm) {
        is_default$adm = getAdm().length() == 0;
      }
      return is_default$adm;
    }

    private void setAdm(java.lang.String value) {
      this.__adm = value;
      this.is_default$adm = null;
      this.json = null;
    }

    @Override public java.util.List getAdomain() {
      if (null == _adomain) {
        _adomain = java.util.Collections.unmodifiableList(__adomain);
      }
      return _adomain;
    }

    @Override public boolean isDefaultAdomain() {
      if (null == is_default$adomain) {
        is_default$adomain = getAdomain().isEmpty();
      }
      return is_default$adomain;
    }

    private void setAdomain(java.util.List value) {
      this.__adomain = value.stream().collect(java.util.stream.Collectors.toCollection(() -> new java.util.ArrayList<>(value.size())));
      this.is_default$adomain = null;
      this.json = null;
      this._adomain = null;
    }

    @Override public java.lang.String getLurl() {
      return __lurl;
    }

    @Override public boolean isDefaultLurl() {
      if (null == is_default$lurl) {
        is_default$lurl = getLurl().length() == 0;
      }
      return is_default$lurl;
    }

    private void setLurl(java.lang.String value) {
      this.__lurl = value;
      this.is_default$lurl = null;
      this.json = null;
    }

    @Override public java.lang.String getCid() {
      return __cid;
    }

    @Override public boolean isDefaultCid() {
      if (null == is_default$cid) {
        is_default$cid = getCid().length() == 0;
      }
      return is_default$cid;
    }

    private void setCid(java.lang.String value) {
      this.__cid = value;
      this.is_default$cid = null;
      this.json = null;
    }

    @Override public java.lang.String getCrid() {
      return __crid;
    }

    @Override public boolean isDefaultCrid() {
      if (null == is_default$crid) {
        is_default$crid = getCrid().length() == 0;
      }
      return is_default$crid;
    }

    private void setCrid(java.lang.String value) {
      this.__crid = value;
      this.is_default$crid = null;
      this.json = null;
    }

    @Override public java.util.List getAttr() {
      if (null == _attr) {
        _attr = java.util.Collections.unmodifiableList(__attr);
      }
      return _attr;
    }

    @Override public boolean isDefaultAttr() {
      if (null == is_default$attr) {
        is_default$attr = getAttr().isEmpty();
      }
      return is_default$attr;
    }

    private void setAttr(java.util.List value) {
      this.__attr = value.stream().collect(java.util.stream.Collectors.toCollection(() -> new java.util.ArrayList<>(value.size())));
      this.is_default$attr = null;
      this.json = null;
      this._attr = null;
    }

    @Override public java.lang.String getDealid() {
      return __dealid;
    }

    @Override public boolean isDefaultDealid() {
      if (null == is_default$dealid) {
        is_default$dealid = getDealid().length() == 0;
      }
      return is_default$dealid;
    }

    private void setDealid(java.lang.String value) {
      this.__dealid = value;
      this.is_default$dealid = null;
      this.json = null;
    }

    @Override public int getW() {
      return __w;
    }

    @Override public boolean isDefaultW() {
      if (null == is_default$w) {
        is_default$w = 0 == getW();
      }
      return is_default$w;
    }

    private void setW(int value) {
      this.__w = value;
      this.is_default$w = null;
      this.json = null;
    }

    @Override public int getH() {
      return __h;
    }

    @Override public boolean isDefaultH() {
      if (null == is_default$h) {
        is_default$h = 0 == getH();
      }
      return is_default$h;
    }

    private void setH(int value) {
      this.__h = value;
      this.is_default$h = null;
      this.json = null;
    }

    static class NativeImplBuilder implements Builder {

      private NativeImpl wrapped = new NativeImpl();

      @Override public open_rtb.Bid 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 setImpid(java.lang.String value) {
        if (value.length() == 0) {
          return clearImpid();
        }
        wrapped.setImpid(value);
        return this;
      }

      @Override public Builder clearImpid() {
        wrapped.__impid = _DEFAULT.get().__impid;
        wrapped.is_default$impid = true;
        return this;
      }

      @Override public Builder setPrice(double value) {
        if (0x0.0p0 == value) {
          return clearPrice();
        }
        wrapped.setPrice(value);
        return this;
      }

      @Override public Builder clearPrice() {
        wrapped.__price = _DEFAULT.get().__price;
        wrapped.is_default$price = true;
        return this;
      }

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

      @Override public Builder clearAdid() {
        wrapped.__adid = _DEFAULT.get().__adid;
        wrapped.is_default$adid = true;
        return this;
      }

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

      @Override public Builder clearNurl() {
        wrapped.__nurl = _DEFAULT.get().__nurl;
        wrapped.is_default$nurl = true;
        return this;
      }

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

      @Override public Builder clearAdm() {
        wrapped.__adm = _DEFAULT.get().__adm;
        wrapped.is_default$adm = true;
        return this;
      }

      @Override public Builder setAdomain(java.util.List value) {
        if (value.isEmpty()) {
          return clearAdomain();
        }
        wrapped.setAdomain(value);
        return this;
      }

      @Override public Builder clearAdomain() {
        wrapped.__adomain = _DEFAULT.get().__adomain;
        wrapped.is_default$adomain = true;
        wrapped._adomain = _DEFAULT.get()._adomain;
        return this;
      }

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

      @Override public Builder clearLurl() {
        wrapped.__lurl = _DEFAULT.get().__lurl;
        wrapped.is_default$lurl = true;
        return this;
      }

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

      @Override public Builder clearCid() {
        wrapped.__cid = _DEFAULT.get().__cid;
        wrapped.is_default$cid = true;
        return this;
      }

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

      @Override public Builder clearCrid() {
        wrapped.__crid = _DEFAULT.get().__crid;
        wrapped.is_default$crid = true;
        return this;
      }

      @Override public Builder setAttr(java.util.List value) {
        if (value.isEmpty()) {
          return clearAttr();
        }
        wrapped.setAttr(value);
        return this;
      }

      @Override public Builder clearAttr() {
        wrapped.__attr = _DEFAULT.get().__attr;
        wrapped.is_default$attr = true;
        wrapped._attr = _DEFAULT.get()._attr;
        return this;
      }

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

      @Override public Builder clearDealid() {
        wrapped.__dealid = _DEFAULT.get().__dealid;
        wrapped.is_default$dealid = true;
        return this;
      }

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

      @Override public Builder clearW() {
        wrapped.__w = _DEFAULT.get().__w;
        wrapped.is_default$w = true;
        return this;
      }

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

      @Override public Builder clearH() {
        wrapped.__h = _DEFAULT.get().__h;
        wrapped.is_default$h = true;
        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 = 14;
  }

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

  /** Returns a POJO builder instance based on existing prototype Bid. */
  static Builder newNativeImplBuilder(open_rtb.Bid other) {
    return newNativeImplBuilder()
      .setId(other.getId())
      .setImpid(other.getImpid())
      .setPrice(other.getPrice())
      .setAdid(other.getAdid())
      .setNurl(other.getNurl())
      .setAdm(other.getAdm())
      .setAdomain(other.getAdomain())
      .setLurl(other.getLurl())
      .setCid(other.getCid())
      .setCrid(other.getCrid())
      .setAttr(other.getAttr())
      .setDealid(other.getDealid())
      .setW(other.getW())
      .setH(other.getH());
  }

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

  static class Avro implements open_rtb.Bid {

    private byte[] binaryEncoding;
    transient private open_rtb.BidAvro wrapped;
    transient private java.lang.Boolean is_default$id;
    transient private java.lang.String _id;
    transient private java.lang.Boolean is_default$impid;
    transient private java.lang.String _impid;
    transient private java.lang.Boolean is_default$price;
    transient private java.lang.Boolean is_default$adid;
    transient private java.lang.String _adid;
    transient private java.lang.Boolean is_default$nurl;
    transient private java.lang.String _nurl;
    transient private java.lang.Boolean is_default$adm;
    transient private java.lang.String _adm;
    transient private java.lang.Boolean is_default$adomain;
    transient private java.util.List _adomain;
    transient private java.lang.Boolean is_default$lurl;
    transient private java.lang.String _lurl;
    transient private java.lang.Boolean is_default$cid;
    transient private java.lang.String _cid;
    transient private java.lang.Boolean is_default$crid;
    transient private java.lang.String _crid;
    transient private java.lang.Boolean is_default$attr;
    transient private java.util.List _attr;
    transient private java.lang.Boolean is_default$dealid;
    transient private java.lang.String _dealid;
    transient private java.lang.Boolean is_default$w;
    transient private java.lang.Boolean is_default$h;

    private Avro(open_rtb.BidAvro 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.BidAvro 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 getImpid() {
      if (_impid == null) {
        _impid = java.util.Optional.of(get().impid).map(java.lang.Object::toString).orElse("");
      }
      return _impid;
    }

    @Override public boolean isDefaultImpid() {
      if (is_default$impid == null) {
        is_default$impid = getImpid().length() == 0;
      }
      return is_default$impid;
    }

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

    @Override public boolean isDefaultPrice() {
      if (is_default$price == null) {
        is_default$price = 0x0.0p0 == getPrice();
      }
      return is_default$price;
    }

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

    @Override public boolean isDefaultAdid() {
      if (is_default$adid == null) {
        is_default$adid = getAdid().length() == 0;
      }
      return is_default$adid;
    }

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

    @Override public boolean isDefaultNurl() {
      if (is_default$nurl == null) {
        is_default$nurl = getNurl().length() == 0;
      }
      return is_default$nurl;
    }

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

    @Override public boolean isDefaultAdm() {
      if (is_default$adm == null) {
        is_default$adm = getAdm().length() == 0;
      }
      return is_default$adm;
    }

    @Override public java.util.List getAdomain() {
      if (_adomain == null) {
        _adomain = java.util.Collections.unmodifiableList(get().adomain.stream().map(java.lang.Object::toString).collect(java.util.stream.Collectors.toCollection(() -> new java.util.ArrayList(get().adomain.size()))));
      }
      return _adomain;
    }

    @Override public boolean isDefaultAdomain() {
      if (is_default$adomain == null) {
        is_default$adomain = getAdomain().isEmpty();
      }
      return is_default$adomain;
    }

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

    @Override public boolean isDefaultLurl() {
      if (is_default$lurl == null) {
        is_default$lurl = getLurl().length() == 0;
      }
      return is_default$lurl;
    }

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

    @Override public boolean isDefaultCid() {
      if (is_default$cid == null) {
        is_default$cid = getCid().length() == 0;
      }
      return is_default$cid;
    }

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

    @Override public boolean isDefaultCrid() {
      if (is_default$crid == null) {
        is_default$crid = getCrid().length() == 0;
      }
      return is_default$crid;
    }

    @Override public java.util.List getAttr() {
      if (_attr == null) {
        _attr = java.util.Collections.unmodifiableList(get().attr);
      }
      return _attr;
    }

    @Override public boolean isDefaultAttr() {
      if (is_default$attr == null) {
        is_default$attr = getAttr().isEmpty();
      }
      return is_default$attr;
    }

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

    @Override public boolean isDefaultDealid() {
      if (is_default$dealid == null) {
        is_default$dealid = getDealid().length() == 0;
      }
      return is_default$dealid;
    }

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

    @Override public boolean isDefaultW() {
      if (is_default$w == null) {
        is_default$w = 0 == getW();
      }
      return is_default$w;
    }

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

    @Override public boolean isDefaultH() {
      if (is_default$h == null) {
        is_default$h = 0 == getH();
      }
      return is_default$h;
    }

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

    static public final long serialVersionUID = 14;
  }

  static class AvroBuilder implements Builder {

    final private open_rtb.BidAvro.Builder builder;

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

    @Override public open_rtb.Bid 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 setImpid(java.lang.String value) {
      builder.setImpid(new org.apache.avro.util.Utf8(value));
      return this;
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    @Override public Builder setAttr(java.util.List value) {
      builder.setAttr(value.stream().collect(java.util.stream.Collectors.toCollection(() -> new org.apache.avro.generic.GenericData.Array<>(value.size(), open_rtb.BidAvro.SCHEMA$.getFields().get(10).schema()))));
      return this;
    }

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

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

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

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

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

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

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

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

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

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

  /** Returns new Avro builder instance based on existing prototype Bid. */
  static Builder newAvroBuilder(open_rtb.Bid other) {
    return newAvroBuilder()
      .setId(other.getId())
      .setImpid(other.getImpid())
      .setPrice(other.getPrice())
      .setAdid(other.getAdid())
      .setNurl(other.getNurl())
      .setAdm(other.getAdm())
      .setAdomain(other.getAdomain())
      .setLurl(other.getLurl())
      .setCid(other.getCid())
      .setCrid(other.getCrid())
      .setAttr(other.getAttr())
      .setDealid(other.getDealid())
      .setW(other.getW())
      .setH(other.getH());
  }

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

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

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

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

  static class Protobuf implements open_rtb.Bid {

    private byte[] binaryEncoding;
    transient private open_rtb.OpenRtbProtobuf.Bid wrapped;
    transient private java.lang.Boolean is_default$id;
    transient private java.lang.Boolean is_default$impid;
    transient private java.lang.Boolean is_default$price;
    transient private java.lang.Boolean is_default$adid;
    transient private java.lang.Boolean is_default$nurl;
    transient private java.lang.Boolean is_default$adm;
    transient private java.lang.Boolean is_default$adomain;
    transient private java.lang.Boolean is_default$lurl;
    transient private java.lang.Boolean is_default$cid;
    transient private java.lang.Boolean is_default$crid;
    transient private java.lang.Boolean is_default$attr;
    transient private java.lang.Boolean is_default$dealid;
    transient private java.lang.Boolean is_default$w;
    transient private java.lang.Boolean is_default$h;

    private Protobuf(open_rtb.OpenRtbProtobuf.Bid 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.Bid get() {
      if (wrapped == null) {
        try {
          wrapped = open_rtb.OpenRtbProtobuf.Bid.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 getImpid() {
      return get().getImpid();
    }

    @Override public boolean isDefaultImpid() {
      if (is_default$impid == null) {
        is_default$impid = getImpid().length() == 0;
      }
      return is_default$impid;
    }

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

    @Override public boolean isDefaultPrice() {
      if (is_default$price == null) {
        is_default$price = 0x0.0p0 == getPrice();
      }
      return is_default$price;
    }

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

    @Override public boolean isDefaultAdid() {
      if (is_default$adid == null) {
        is_default$adid = getAdid().length() == 0;
      }
      return is_default$adid;
    }

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

    @Override public boolean isDefaultNurl() {
      if (is_default$nurl == null) {
        is_default$nurl = getNurl().length() == 0;
      }
      return is_default$nurl;
    }

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

    @Override public boolean isDefaultAdm() {
      if (is_default$adm == null) {
        is_default$adm = getAdm().length() == 0;
      }
      return is_default$adm;
    }

    @Override public java.util.List getAdomain() {
      return (java.util.List)(java.util.List) get().getAdomainList();
    }

    @Override public boolean isDefaultAdomain() {
      if (is_default$adomain == null) {
        is_default$adomain = getAdomain().isEmpty();
      }
      return is_default$adomain;
    }

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

    @Override public boolean isDefaultLurl() {
      if (is_default$lurl == null) {
        is_default$lurl = getLurl().length() == 0;
      }
      return is_default$lurl;
    }

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

    @Override public boolean isDefaultCid() {
      if (is_default$cid == null) {
        is_default$cid = getCid().length() == 0;
      }
      return is_default$cid;
    }

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

    @Override public boolean isDefaultCrid() {
      if (is_default$crid == null) {
        is_default$crid = getCrid().length() == 0;
      }
      return is_default$crid;
    }

    @Override public java.util.List getAttr() {
      return get().getAttrList();
    }

    @Override public boolean isDefaultAttr() {
      if (is_default$attr == null) {
        is_default$attr = getAttr().isEmpty();
      }
      return is_default$attr;
    }

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

    @Override public boolean isDefaultDealid() {
      if (is_default$dealid == null) {
        is_default$dealid = getDealid().length() == 0;
      }
      return is_default$dealid;
    }

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

    @Override public boolean isDefaultW() {
      if (is_default$w == null) {
        is_default$w = 0 == getW();
      }
      return is_default$w;
    }

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

    @Override public boolean isDefaultH() {
      if (is_default$h == null) {
        is_default$h = 0 == getH();
      }
      return is_default$h;
    }

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

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

    static public final long serialVersionUID = 14;
  }

  static class ProtobufBuilder implements Builder {

    final private open_rtb.OpenRtbProtobuf.Bid.Builder builder;

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

    @Override public open_rtb.Bid 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 setImpid(java.lang.String value) {
      if (!(value.length() == 0)) {
        builder.setImpid(value);
      }
      return this;
    }

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

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

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

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

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

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

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

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

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

    @Override public Builder setAdomain(java.util.List value) {
      if (!(value.isEmpty())) {
        builder.addAllAdomain(value);
      }
      return this;
    }

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

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

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

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

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

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

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

    @Override public Builder setAttr(java.util.List value) {
      if (!(value.isEmpty())) {
        builder.addAllAttr(value);
      }
      return this;
    }

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

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

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

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

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

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

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

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

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

  /** Returns new Protobuf builder instance based on existing prototype Bid. */
  static Builder newProtobufBuilder(open_rtb.Bid other) {
    return newProtobufBuilder()
      .setId(other.getId())
      .setImpid(other.getImpid())
      .setPrice(other.getPrice())
      .setAdid(other.getAdid())
      .setNurl(other.getNurl())
      .setAdm(other.getAdm())
      .setAdomain(other.getAdomain())
      .setLurl(other.getLurl())
      .setCid(other.getCid())
      .setCrid(other.getCrid())
      .setAttr(other.getAttr())
      .setDealid(other.getDealid())
      .setW(other.getW())
      .setH(other.getH());
  }

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

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

  /** Returns Protobuf class for this struct. */
  static java.lang.Class getProtobufClass() {
    return open_rtb.OpenRtbProtobuf.Bid.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.Bid.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.Bid {

    private open_rtb.BidThrift wrapped;
    transient private java.lang.Boolean is_default$id;
    transient private java.lang.String _id;
    transient private java.lang.Boolean is_default$impid;
    transient private java.lang.String _impid;
    transient private java.lang.Boolean is_default$price;
    transient private java.lang.Boolean is_default$adid;
    transient private java.lang.String _adid;
    transient private java.lang.Boolean is_default$nurl;
    transient private java.lang.String _nurl;
    transient private java.lang.Boolean is_default$adm;
    transient private java.lang.String _adm;
    transient private java.lang.Boolean is_default$adomain;
    transient private java.util.List _adomain;
    transient private java.lang.Boolean is_default$lurl;
    transient private java.lang.String _lurl;
    transient private java.lang.Boolean is_default$cid;
    transient private java.lang.String _cid;
    transient private java.lang.Boolean is_default$crid;
    transient private java.lang.String _crid;
    transient private java.lang.Boolean is_default$attr;
    transient private java.util.List _attr;
    transient private java.lang.Boolean is_default$dealid;
    transient private java.lang.String _dealid;
    transient private java.lang.Boolean is_default$w;
    transient private java.lang.Boolean is_default$h;

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

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

    @Override public open_rtb.BidThrift 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 getImpid() {
      if (_impid == null) {
        _impid = java.util.Optional.ofNullable(wrapped.getImpid()).orElse("");
      }
      return _impid;
    }

    @Override public boolean isDefaultImpid() {
      if (is_default$impid == null) {
        is_default$impid = getImpid().length() == 0;
      }
      return is_default$impid;
    }

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

    @Override public boolean isDefaultPrice() {
      if (is_default$price == null) {
        is_default$price = 0x0.0p0 == getPrice();
      }
      return is_default$price;
    }

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

    @Override public boolean isDefaultAdid() {
      if (is_default$adid == null) {
        is_default$adid = getAdid().length() == 0;
      }
      return is_default$adid;
    }

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

    @Override public boolean isDefaultNurl() {
      if (is_default$nurl == null) {
        is_default$nurl = getNurl().length() == 0;
      }
      return is_default$nurl;
    }

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

    @Override public boolean isDefaultAdm() {
      if (is_default$adm == null) {
        is_default$adm = getAdm().length() == 0;
      }
      return is_default$adm;
    }

    @Override public java.util.List getAdomain() {
      if (_adomain == null) {
        _adomain = java.util.Optional.ofNullable(wrapped.getAdomain()).orElseGet(java.util.Collections::emptyList).stream().collect(java.util.stream.Collectors.toCollection(() -> new java.util.ArrayList()));
      }
      return _adomain;
    }

    @Override public boolean isDefaultAdomain() {
      if (is_default$adomain == null) {
        is_default$adomain = getAdomain().isEmpty();
      }
      return is_default$adomain;
    }

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

    @Override public boolean isDefaultLurl() {
      if (is_default$lurl == null) {
        is_default$lurl = getLurl().length() == 0;
      }
      return is_default$lurl;
    }

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

    @Override public boolean isDefaultCid() {
      if (is_default$cid == null) {
        is_default$cid = getCid().length() == 0;
      }
      return is_default$cid;
    }

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

    @Override public boolean isDefaultCrid() {
      if (is_default$crid == null) {
        is_default$crid = getCrid().length() == 0;
      }
      return is_default$crid;
    }

    @Override public java.util.List getAttr() {
      if (_attr == null) {
        _attr = java.util.Optional.ofNullable(wrapped.getAttr()).orElseGet(java.util.Collections::emptyList).stream().map(java.lang.Number::intValue).collect(java.util.stream.Collectors.toCollection(() -> new java.util.ArrayList()));
      }
      return _attr;
    }

    @Override public boolean isDefaultAttr() {
      if (is_default$attr == null) {
        is_default$attr = getAttr().isEmpty();
      }
      return is_default$attr;
    }

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

    @Override public boolean isDefaultDealid() {
      if (is_default$dealid == null) {
        is_default$dealid = getDealid().length() == 0;
      }
      return is_default$dealid;
    }

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

    @Override public boolean isDefaultW() {
      if (is_default$w == null) {
        is_default$w = 0 == getW();
      }
      return is_default$w;
    }

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

    @Override public boolean isDefaultH() {
      if (is_default$h == null) {
        is_default$h = 0 == getH();
      }
      return is_default$h;
    }

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

  static class ThriftBuilder implements Builder {

    final private open_rtb.BidThrift builder;

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

    @Override public open_rtb.Bid build() {
      return new Thrift((open_rtb.BidThrift) 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 setImpid(java.lang.String value) {
      if (!(value.length() == 0)) {
        builder.setImpid(value);
      }
      return this;
    }

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

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

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

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

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

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

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

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

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

    @Override public Builder setAdomain(java.util.List value) {
      if (!(value.isEmpty())) {
        builder.setAdomain(value.stream().collect(java.util.stream.Collectors.toCollection(() -> new java.util.ArrayList<>(value.size()))));
      }
      return this;
    }

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

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

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

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

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

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

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

    @Override public Builder setAttr(java.util.List value) {
      if (!(value.isEmpty())) {
        builder.setAttr(value.stream().map(java.lang.Number::shortValue).collect(java.util.stream.Collectors.toCollection(() -> new java.util.ArrayList<>(value.size()))));
      }
      return this;
    }

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

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

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

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

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

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

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

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

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

  /** Returns new Thrift builder instance based on existing prototype Bid. */
  static Builder newThriftBuilder(open_rtb.Bid other) {
    return newThriftBuilder()
      .setId(other.getId())
      .setImpid(other.getImpid())
      .setPrice(other.getPrice())
      .setAdid(other.getAdid())
      .setNurl(other.getNurl())
      .setAdm(other.getAdm())
      .setAdomain(other.getAdomain())
      .setLurl(other.getLurl())
      .setCid(other.getCid())
      .setCrid(other.getCrid())
      .setAttr(other.getAttr())
      .setDealid(other.getDealid())
      .setW(other.getW())
      .setH(other.getH());
  }

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

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

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy