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

open_rtb.Geo 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.11 Geo Object
The geo 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.
Note that the Geo Object may appear in one or both the Device Object and the User Object. This is intentional, since the information may be derived from either a device-oriented source (such as IP geo lookup), or by user registration information (for example provided to a publisher through a user registration). If the information is in conflict, it’s up to the bidder to determine which information to use. */
public interface Geo
  extends java.util.function.Supplier,
          java.lang.Comparable>,
          java.io.Serializable {

  /** True if all fields are set to default values. */
  default boolean isDefault() {
    return
      isDefaultLat() &&
      isDefaultLon() &&
      isDefaultCountry() &&
      isDefaultRegion() &&
      isDefaultRegionfips104() &&
      isDefaultMetro() &&
      isDefaultCity() &&
      isDefaultZip() &&
      isDefaultType();
  }

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

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

  /** Latitude from -90 to 90. South is negative. This should only be passed if known to be accurate (For example, not the centroid of a postal code). */
  float getLat();

  boolean isDefaultLat();

  /** Longitude from -180 to 180. West is negative. This should only be passed if known to be accurate. */
  float getLon();

  boolean isDefaultLon();

  /** Country using ISO-3166-1 Alpha-3. */
  java.lang.String getCountry();

  boolean isDefaultCountry();

  /** Region using ISO 3166-2. */
  java.lang.String getRegion();

  boolean isDefaultRegion();

  /** Region of a country using FIPS 10-4 notation (alternative to ISO 3166-2). */
  java.lang.String getRegionfips104();

  boolean isDefaultRegionfips104();

  /** Pass the metro code (seehttp://code.google.com/apis/adwords/docs/appendix/metrocodes.html). Metro codes are similar to but not exactly the same as Nielsen DMAs. */
  java.lang.String getMetro();

  boolean isDefaultMetro();

  /** City using United Nations Code for Trade and Transport Locations (http://www.unece.org/cefact/locode/ser vice/location.htm). */
  java.lang.String getCity();

  boolean isDefaultCity();

  /** Zip/postal code. */
  java.lang.String getZip();

  boolean isDefaultZip();

  /** Indicate the source of the geo data (GPS, IP address, user provided). See Table 6.15 Location Type for a list of potential values. Type should be provided when lat/lon is provided. */
  int getType();

  boolean isDefaultType();

  public interface Builder {

    Geo build();

    Builder setLat(float value);

    Builder clearLat();

    Builder setLon(float value);

    Builder clearLon();

    Builder setCountry(java.lang.String value);

    Builder clearCountry();

    Builder setRegion(java.lang.String value);

    Builder clearRegion();

    Builder setRegionfips104(java.lang.String value);

    Builder clearRegionfips104();

    Builder setMetro(java.lang.String value);

    Builder clearMetro();

    Builder setCity(java.lang.String value);

    Builder clearCity();

    Builder setZip(java.lang.String value);

    Builder clearZip();

    Builder setType(int value);

    Builder clearType();
  }


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

    @Override public int compare(open_rtb.Geo a, open_rtb.Geo b) {
      int _cmp;
      if (0 != (_cmp = compareLat(a, b))) return _cmp;
      if (0 != (_cmp = compareLon(a, b))) return _cmp;
      if (0 != (_cmp = compareCountry(a, b))) return _cmp;
      if (0 != (_cmp = compareRegion(a, b))) return _cmp;
      if (0 != (_cmp = compareRegionfips104(a, b))) return _cmp;
      if (0 != (_cmp = compareMetro(a, b))) return _cmp;
      if (0 != (_cmp = compareCity(a, b))) return _cmp;
      if (0 != (_cmp = compareZip(a, b))) return _cmp;
      if (0 != (_cmp = compareType(a, b))) return _cmp;
      return 0;
    }

    static private int compareLat (open_rtb.Geo a, open_rtb.Geo b) {
      final java.lang.Float fa = a.getLat();
      final java.lang.Float fb = b.getLat();
      return java.lang.Float.compare(fa, fb);
    }

    static private int compareLon (open_rtb.Geo a, open_rtb.Geo b) {
      final java.lang.Float fa = a.getLon();
      final java.lang.Float fb = b.getLon();
      return java.lang.Float.compare(fa, fb);
    }

    static private int compareCountry (open_rtb.Geo a, open_rtb.Geo b) {
      final java.lang.String fa = a.getCountry();
      final java.lang.String fb = b.getCountry();
      return fa.compareTo(fb);
    }

    static private int compareRegion (open_rtb.Geo a, open_rtb.Geo b) {
      final java.lang.String fa = a.getRegion();
      final java.lang.String fb = b.getRegion();
      return fa.compareTo(fb);
    }

    static private int compareRegionfips104 (open_rtb.Geo a, open_rtb.Geo b) {
      final java.lang.String fa = a.getRegionfips104();
      final java.lang.String fb = b.getRegionfips104();
      return fa.compareTo(fb);
    }

    static private int compareMetro (open_rtb.Geo a, open_rtb.Geo b) {
      final java.lang.String fa = a.getMetro();
      final java.lang.String fb = b.getMetro();
      return fa.compareTo(fb);
    }

    static private int compareCity (open_rtb.Geo a, open_rtb.Geo b) {
      final java.lang.String fa = a.getCity();
      final java.lang.String fb = b.getCity();
      return fa.compareTo(fb);
    }

    static private int compareZip (open_rtb.Geo a, open_rtb.Geo b) {
      final java.lang.String fa = a.getZip();
      final java.lang.String fb = b.getZip();
      return fa.compareTo(fb);
    }

    static private int compareType (open_rtb.Geo a, open_rtb.Geo b) {
      final java.lang.Integer fa = a.getType();
      final java.lang.Integer fb = b.getType();
      return java.lang.Integer.compareUnsigned(fa, fb);
    }

    static private final Comparator INSTANCE = new Comparator();

    static public final long serialVersionUID = 9;
  }

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

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

  static class NativeImpl implements open_rtb.Geo {

    transient private java.lang.String json;
    private float __lat;
    transient private java.lang.Boolean is_default$lat;
    private float __lon;
    transient private java.lang.Boolean is_default$lon;
    private java.lang.String __country;
    transient private java.lang.Boolean is_default$country;
    private java.lang.String __region;
    transient private java.lang.Boolean is_default$region;
    private java.lang.String __regionfips104;
    transient private java.lang.Boolean is_default$regionfips104;
    private java.lang.String __metro;
    transient private java.lang.Boolean is_default$metro;
    private java.lang.String __city;
    transient private java.lang.Boolean is_default$city;
    private java.lang.String __zip;
    transient private java.lang.Boolean is_default$zip;
    private int __type;
    transient private java.lang.Boolean is_default$type;

    private NativeImpl() {
      __lat = 0x0.0p0f;
      is_default$lat = java.lang.Boolean.TRUE;
      __lon = 0x0.0p0f;
      is_default$lon = java.lang.Boolean.TRUE;
      __country = "";
      is_default$country = java.lang.Boolean.TRUE;
      __region = "";
      is_default$region = java.lang.Boolean.TRUE;
      __regionfips104 = "";
      is_default$regionfips104 = java.lang.Boolean.TRUE;
      __metro = "";
      is_default$metro = java.lang.Boolean.TRUE;
      __city = "";
      is_default$city = java.lang.Boolean.TRUE;
      __zip = "";
      is_default$zip = java.lang.Boolean.TRUE;
      __type = 0;
      is_default$type = java.lang.Boolean.TRUE;
      json = "{}";
    }

    private NativeImpl(NativeImpl other) {
      setLat(other.getLat());
      setLon(other.getLon());
      setCountry(other.getCountry());
      setRegion(other.getRegion());
      setRegionfips104(other.getRegionfips104());
      setMetro(other.getMetro());
      setCity(other.getCity());
      setZip(other.getZip());
      setType(other.getType());
      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 (!isDefaultLat()) {
        sb.append((0 == sb.length()) ? "{\"lat\": " : ", \"lat\": ")
          .append(__lat);
      }
      if (!isDefaultLon()) {
        sb.append((0 == sb.length()) ? "{\"lon\": " : ", \"lon\": ")
          .append(__lon);
      }
      if (!isDefaultCountry()) {
        sb.append((0 == sb.length()) ? "{\"country\": " : ", \"country\": ")
          .append("\"" + __country.replace("\"","\\\"") + '\"');
      }
      if (!isDefaultRegion()) {
        sb.append((0 == sb.length()) ? "{\"region\": " : ", \"region\": ")
          .append("\"" + __region.replace("\"","\\\"") + '\"');
      }
      if (!isDefaultRegionfips104()) {
        sb.append((0 == sb.length()) ? "{\"regionfips104\": " : ", \"regionfips104\": ")
          .append("\"" + __regionfips104.replace("\"","\\\"") + '\"');
      }
      if (!isDefaultMetro()) {
        sb.append((0 == sb.length()) ? "{\"metro\": " : ", \"metro\": ")
          .append("\"" + __metro.replace("\"","\\\"") + '\"');
      }
      if (!isDefaultCity()) {
        sb.append((0 == sb.length()) ? "{\"city\": " : ", \"city\": ")
          .append("\"" + __city.replace("\"","\\\"") + '\"');
      }
      if (!isDefaultZip()) {
        sb.append((0 == sb.length()) ? "{\"zip\": " : ", \"zip\": ")
          .append("\"" + __zip.replace("\"","\\\"") + '\"');
      }
      if (!isDefaultType()) {
        sb.append((0 == sb.length()) ? "{\"type\": " : ", \"type\": ")
          .append(__type);
      }
      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 float getLat() {
      return __lat;
    }

    @Override public boolean isDefaultLat() {
      if (null == is_default$lat) {
        is_default$lat = 0x0.0p0 == getLat();
      }
      return is_default$lat;
    }

    private void setLat(float value) {
      this.__lat = value;
      this.is_default$lat = null;
      this.json = null;
    }

    @Override public float getLon() {
      return __lon;
    }

    @Override public boolean isDefaultLon() {
      if (null == is_default$lon) {
        is_default$lon = 0x0.0p0 == getLon();
      }
      return is_default$lon;
    }

    private void setLon(float value) {
      this.__lon = value;
      this.is_default$lon = null;
      this.json = null;
    }

    @Override public java.lang.String getCountry() {
      return __country;
    }

    @Override public boolean isDefaultCountry() {
      if (null == is_default$country) {
        is_default$country = getCountry().length() == 0;
      }
      return is_default$country;
    }

    private void setCountry(java.lang.String value) {
      this.__country = value;
      this.is_default$country = null;
      this.json = null;
    }

    @Override public java.lang.String getRegion() {
      return __region;
    }

    @Override public boolean isDefaultRegion() {
      if (null == is_default$region) {
        is_default$region = getRegion().length() == 0;
      }
      return is_default$region;
    }

    private void setRegion(java.lang.String value) {
      this.__region = value;
      this.is_default$region = null;
      this.json = null;
    }

    @Override public java.lang.String getRegionfips104() {
      return __regionfips104;
    }

    @Override public boolean isDefaultRegionfips104() {
      if (null == is_default$regionfips104) {
        is_default$regionfips104 = getRegionfips104().length() == 0;
      }
      return is_default$regionfips104;
    }

    private void setRegionfips104(java.lang.String value) {
      this.__regionfips104 = value;
      this.is_default$regionfips104 = null;
      this.json = null;
    }

    @Override public java.lang.String getMetro() {
      return __metro;
    }

    @Override public boolean isDefaultMetro() {
      if (null == is_default$metro) {
        is_default$metro = getMetro().length() == 0;
      }
      return is_default$metro;
    }

    private void setMetro(java.lang.String value) {
      this.__metro = value;
      this.is_default$metro = null;
      this.json = null;
    }

    @Override public java.lang.String getCity() {
      return __city;
    }

    @Override public boolean isDefaultCity() {
      if (null == is_default$city) {
        is_default$city = getCity().length() == 0;
      }
      return is_default$city;
    }

    private void setCity(java.lang.String value) {
      this.__city = value;
      this.is_default$city = null;
      this.json = null;
    }

    @Override public java.lang.String getZip() {
      return __zip;
    }

    @Override public boolean isDefaultZip() {
      if (null == is_default$zip) {
        is_default$zip = getZip().length() == 0;
      }
      return is_default$zip;
    }

    private void setZip(java.lang.String value) {
      this.__zip = value;
      this.is_default$zip = null;
      this.json = null;
    }

    @Override public int getType() {
      return __type;
    }

    @Override public boolean isDefaultType() {
      if (null == is_default$type) {
        is_default$type = 0 == getType();
      }
      return is_default$type;
    }

    private void setType(int value) {
      this.__type = value;
      this.is_default$type = null;
      this.json = null;
    }

    static class NativeImplBuilder implements Builder {

      private NativeImpl wrapped = new NativeImpl();

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

      @Override public Builder setLat(float value) {
        if (0x0.0p0 == value) {
          return clearLat();
        }
        wrapped.setLat(value);
        return this;
      }

      @Override public Builder clearLat() {
        wrapped.__lat = _DEFAULT.get().__lat;
        wrapped.is_default$lat = true;
        return this;
      }

      @Override public Builder setLon(float value) {
        if (0x0.0p0 == value) {
          return clearLon();
        }
        wrapped.setLon(value);
        return this;
      }

      @Override public Builder clearLon() {
        wrapped.__lon = _DEFAULT.get().__lon;
        wrapped.is_default$lon = true;
        return this;
      }

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

      @Override public Builder clearCountry() {
        wrapped.__country = _DEFAULT.get().__country;
        wrapped.is_default$country = true;
        return this;
      }

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

      @Override public Builder clearRegion() {
        wrapped.__region = _DEFAULT.get().__region;
        wrapped.is_default$region = true;
        return this;
      }

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

      @Override public Builder clearRegionfips104() {
        wrapped.__regionfips104 = _DEFAULT.get().__regionfips104;
        wrapped.is_default$regionfips104 = true;
        return this;
      }

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

      @Override public Builder clearMetro() {
        wrapped.__metro = _DEFAULT.get().__metro;
        wrapped.is_default$metro = true;
        return this;
      }

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

      @Override public Builder clearCity() {
        wrapped.__city = _DEFAULT.get().__city;
        wrapped.is_default$city = true;
        return this;
      }

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

      @Override public Builder clearZip() {
        wrapped.__zip = _DEFAULT.get().__zip;
        wrapped.is_default$zip = true;
        return this;
      }

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

      @Override public Builder clearType() {
        wrapped.__type = _DEFAULT.get().__type;
        wrapped.is_default$type = 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 = 9;
  }

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

  /** Returns a POJO builder instance based on existing prototype Geo. */
  static Builder newNativeImplBuilder(open_rtb.Geo other) {
    return newNativeImplBuilder()
      .setLat(other.getLat())
      .setLon(other.getLon())
      .setCountry(other.getCountry())
      .setRegion(other.getRegion())
      .setRegionfips104(other.getRegionfips104())
      .setMetro(other.getMetro())
      .setCity(other.getCity())
      .setZip(other.getZip())
      .setType(other.getType());
  }

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

  static class Avro implements open_rtb.Geo {

    private byte[] binaryEncoding;
    transient private open_rtb.GeoAvro wrapped;
    transient private java.lang.Boolean is_default$lat;
    transient private java.lang.Boolean is_default$lon;
    transient private java.lang.Boolean is_default$country;
    transient private java.lang.String _country;
    transient private java.lang.Boolean is_default$region;
    transient private java.lang.String _region;
    transient private java.lang.Boolean is_default$regionfips104;
    transient private java.lang.String _regionfips104;
    transient private java.lang.Boolean is_default$metro;
    transient private java.lang.String _metro;
    transient private java.lang.Boolean is_default$city;
    transient private java.lang.String _city;
    transient private java.lang.Boolean is_default$zip;
    transient private java.lang.String _zip;
    transient private java.lang.Boolean is_default$type;

    private Avro(open_rtb.GeoAvro 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.GeoAvro 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 float getLat() {
      return get().lat;
    }

    @Override public boolean isDefaultLat() {
      if (is_default$lat == null) {
        is_default$lat = 0x0.0p0 == getLat();
      }
      return is_default$lat;
    }

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

    @Override public boolean isDefaultLon() {
      if (is_default$lon == null) {
        is_default$lon = 0x0.0p0 == getLon();
      }
      return is_default$lon;
    }

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

    @Override public boolean isDefaultCountry() {
      if (is_default$country == null) {
        is_default$country = getCountry().length() == 0;
      }
      return is_default$country;
    }

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

    @Override public boolean isDefaultRegion() {
      if (is_default$region == null) {
        is_default$region = getRegion().length() == 0;
      }
      return is_default$region;
    }

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

    @Override public boolean isDefaultRegionfips104() {
      if (is_default$regionfips104 == null) {
        is_default$regionfips104 = getRegionfips104().length() == 0;
      }
      return is_default$regionfips104;
    }

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

    @Override public boolean isDefaultMetro() {
      if (is_default$metro == null) {
        is_default$metro = getMetro().length() == 0;
      }
      return is_default$metro;
    }

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

    @Override public boolean isDefaultCity() {
      if (is_default$city == null) {
        is_default$city = getCity().length() == 0;
      }
      return is_default$city;
    }

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

    @Override public boolean isDefaultZip() {
      if (is_default$zip == null) {
        is_default$zip = getZip().length() == 0;
      }
      return is_default$zip;
    }

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

    @Override public boolean isDefaultType() {
      if (is_default$type == null) {
        is_default$type = 0 == getType();
      }
      return is_default$type;
    }

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

    static public final long serialVersionUID = 9;
  }

  static class AvroBuilder implements Builder {

    final private open_rtb.GeoAvro.Builder builder;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  /** Returns new Avro builder instance based on existing prototype Geo. */
  static Builder newAvroBuilder(open_rtb.Geo other) {
    return newAvroBuilder()
      .setLat(other.getLat())
      .setLon(other.getLon())
      .setCountry(other.getCountry())
      .setRegion(other.getRegion())
      .setRegionfips104(other.getRegionfips104())
      .setMetro(other.getMetro())
      .setCity(other.getCity())
      .setZip(other.getZip())
      .setType(other.getType());
  }

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

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

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

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

  static class Protobuf implements open_rtb.Geo {

    private byte[] binaryEncoding;
    transient private open_rtb.OpenRtbProtobuf.Geo wrapped;
    transient private java.lang.Boolean is_default$lat;
    transient private java.lang.Boolean is_default$lon;
    transient private java.lang.Boolean is_default$country;
    transient private java.lang.Boolean is_default$region;
    transient private java.lang.Boolean is_default$regionfips104;
    transient private java.lang.Boolean is_default$metro;
    transient private java.lang.Boolean is_default$city;
    transient private java.lang.Boolean is_default$zip;
    transient private java.lang.Boolean is_default$type;

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

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

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

    @Override public boolean isDefaultLat() {
      if (is_default$lat == null) {
        is_default$lat = 0x0.0p0 == getLat();
      }
      return is_default$lat;
    }

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

    @Override public boolean isDefaultLon() {
      if (is_default$lon == null) {
        is_default$lon = 0x0.0p0 == getLon();
      }
      return is_default$lon;
    }

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

    @Override public boolean isDefaultCountry() {
      if (is_default$country == null) {
        is_default$country = getCountry().length() == 0;
      }
      return is_default$country;
    }

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

    @Override public boolean isDefaultRegion() {
      if (is_default$region == null) {
        is_default$region = getRegion().length() == 0;
      }
      return is_default$region;
    }

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

    @Override public boolean isDefaultRegionfips104() {
      if (is_default$regionfips104 == null) {
        is_default$regionfips104 = getRegionfips104().length() == 0;
      }
      return is_default$regionfips104;
    }

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

    @Override public boolean isDefaultMetro() {
      if (is_default$metro == null) {
        is_default$metro = getMetro().length() == 0;
      }
      return is_default$metro;
    }

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

    @Override public boolean isDefaultCity() {
      if (is_default$city == null) {
        is_default$city = getCity().length() == 0;
      }
      return is_default$city;
    }

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

    @Override public boolean isDefaultZip() {
      if (is_default$zip == null) {
        is_default$zip = getZip().length() == 0;
      }
      return is_default$zip;
    }

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

    @Override public boolean isDefaultType() {
      if (is_default$type == null) {
        is_default$type = 0 == getType();
      }
      return is_default$type;
    }

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

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

    static public final long serialVersionUID = 9;
  }

  static class ProtobufBuilder implements Builder {

    final private open_rtb.OpenRtbProtobuf.Geo.Builder builder;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  /** Returns new Protobuf builder instance based on existing prototype Geo. */
  static Builder newProtobufBuilder(open_rtb.Geo other) {
    return newProtobufBuilder()
      .setLat(other.getLat())
      .setLon(other.getLon())
      .setCountry(other.getCountry())
      .setRegion(other.getRegion())
      .setRegionfips104(other.getRegionfips104())
      .setMetro(other.getMetro())
      .setCity(other.getCity())
      .setZip(other.getZip())
      .setType(other.getType());
  }

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

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

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

    private open_rtb.GeoThrift wrapped;
    transient private java.lang.Boolean is_default$lat;
    transient private java.lang.Boolean is_default$lon;
    transient private java.lang.Boolean is_default$country;
    transient private java.lang.String _country;
    transient private java.lang.Boolean is_default$region;
    transient private java.lang.String _region;
    transient private java.lang.Boolean is_default$regionfips104;
    transient private java.lang.String _regionfips104;
    transient private java.lang.Boolean is_default$metro;
    transient private java.lang.String _metro;
    transient private java.lang.Boolean is_default$city;
    transient private java.lang.String _city;
    transient private java.lang.Boolean is_default$zip;
    transient private java.lang.String _zip;
    transient private java.lang.Boolean is_default$type;

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

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

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

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

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

    @Override public boolean isDefaultLat() {
      if (is_default$lat == null) {
        is_default$lat = 0x0.0p0 == getLat();
      }
      return is_default$lat;
    }

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

    @Override public boolean isDefaultLon() {
      if (is_default$lon == null) {
        is_default$lon = 0x0.0p0 == getLon();
      }
      return is_default$lon;
    }

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

    @Override public boolean isDefaultCountry() {
      if (is_default$country == null) {
        is_default$country = getCountry().length() == 0;
      }
      return is_default$country;
    }

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

    @Override public boolean isDefaultRegion() {
      if (is_default$region == null) {
        is_default$region = getRegion().length() == 0;
      }
      return is_default$region;
    }

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

    @Override public boolean isDefaultRegionfips104() {
      if (is_default$regionfips104 == null) {
        is_default$regionfips104 = getRegionfips104().length() == 0;
      }
      return is_default$regionfips104;
    }

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

    @Override public boolean isDefaultMetro() {
      if (is_default$metro == null) {
        is_default$metro = getMetro().length() == 0;
      }
      return is_default$metro;
    }

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

    @Override public boolean isDefaultCity() {
      if (is_default$city == null) {
        is_default$city = getCity().length() == 0;
      }
      return is_default$city;
    }

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

    @Override public boolean isDefaultZip() {
      if (is_default$zip == null) {
        is_default$zip = getZip().length() == 0;
      }
      return is_default$zip;
    }

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

    @Override public boolean isDefaultType() {
      if (is_default$type == null) {
        is_default$type = 0 == getType();
      }
      return is_default$type;
    }

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

  static class ThriftBuilder implements Builder {

    final private open_rtb.GeoThrift builder;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  /** Returns new Thrift builder instance based on existing prototype Geo. */
  static Builder newThriftBuilder(open_rtb.Geo other) {
    return newThriftBuilder()
      .setLat(other.getLat())
      .setLon(other.getLon())
      .setCountry(other.getCountry())
      .setRegion(other.getRegion())
      .setRegionfips104(other.getRegionfips104())
      .setMetro(other.getMetro())
      .setCity(other.getCity())
      .setZip(other.getZip())
      .setType(other.getType());
  }

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

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

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy