Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
/**
* Generated by Scrooge
* version: 20.4.1
* rev: 74d6bed636c90dc4b67e342ecd80033bad43e94d
* built at: 20200425-214521
*/
package com.twitter.finagle.thrift.thriftscala
import com.twitter.io.Buf
import com.twitter.scrooge.{
InvalidFieldsException,
LazyTProtocol,
StructBuilder,
StructBuilderFactory,
TFieldBlob,
ThriftStruct,
ThriftStructCodec3,
ThriftStructField,
ThriftStructFieldInfo,
ThriftStructMetaData,
ValidatingThriftStruct,
ValidatingThriftStructCodec3
}
import org.apache.thrift.protocol._
import org.apache.thrift.transport.TMemoryBuffer
import scala.collection.immutable.{Map => immutable$Map}
import scala.collection.mutable.Builder
import scala.reflect.{ClassTag, classTag}
/**
* Binary annotations are tags applied to a Span to give it context. For
* example, a binary annotation of "http.uri" could the path to a resource in a
* RPC call.
*
* Binary annotations of type STRING are always queryable, though more a
* historical implementation detail than a structural concern.
*
* Binary annotations can repeat, and vary on the host. Similar to Annotation,
* the host indicates who logged the event. This allows you to tell the
* difference between the client and server side of the same key. For example,
* the key "http.uri" might be different on the client and server side due to
* rewriting, like "/api/v1/myresource" vs "/myresource. Via the host field,
* you can see the different points of view, which often help in debugging.
*/
object BinaryAnnotation extends ValidatingThriftStructCodec3[BinaryAnnotation] with StructBuilderFactory[BinaryAnnotation] {
val NoPassthroughFields: immutable$Map[Short, TFieldBlob] = immutable$Map.empty[Short, TFieldBlob]
val Struct: TStruct = new TStruct("BinaryAnnotation")
val KeyField: TField = new TField("key", TType.STRING, 1)
val KeyFieldManifest: Manifest[String] = manifest[String]
val ValueField: TField = new TField("value", TType.STRING, 2)
val ValueFieldManifest: Manifest[_root_.java.nio.ByteBuffer] = manifest[_root_.java.nio.ByteBuffer]
val AnnotationTypeField: TField = new TField("annotation_type", TType.ENUM, 3)
val AnnotationTypeFieldI32: TField = new TField("annotation_type", TType.I32, 3)
val AnnotationTypeFieldManifest: Manifest[com.twitter.finagle.thrift.thriftscala.AnnotationType] = manifest[com.twitter.finagle.thrift.thriftscala.AnnotationType]
val HostField: TField = new TField("host", TType.STRUCT, 4)
val HostFieldManifest: Manifest[com.twitter.finagle.thrift.thriftscala.Endpoint] = manifest[com.twitter.finagle.thrift.thriftscala.Endpoint]
/**
* Field information in declaration order.
*/
lazy val fieldInfos: scala.List[ThriftStructFieldInfo] = scala.List[ThriftStructFieldInfo](
new ThriftStructFieldInfo(
KeyField,
false,
false,
KeyFieldManifest,
_root_.scala.None,
_root_.scala.None,
immutable$Map.empty[String, String],
immutable$Map.empty[String, String],
None
),
new ThriftStructFieldInfo(
ValueField,
false,
false,
ValueFieldManifest,
_root_.scala.None,
_root_.scala.None,
immutable$Map.empty[String, String],
immutable$Map.empty[String, String],
None
),
new ThriftStructFieldInfo(
AnnotationTypeField,
false,
false,
AnnotationTypeFieldManifest,
_root_.scala.None,
_root_.scala.None,
immutable$Map.empty[String, String],
immutable$Map.empty[String, String],
None
),
new ThriftStructFieldInfo(
HostField,
true,
false,
HostFieldManifest,
_root_.scala.None,
_root_.scala.None,
immutable$Map.empty[String, String],
immutable$Map.empty[String, String],
None
)
)
val structAnnotations: immutable$Map[String, String] =
immutable$Map.empty[String, String]
private val fieldTypes: IndexedSeq[ClassTag[_]] = IndexedSeq[ClassTag[_]](
classTag[String].asInstanceOf[ClassTag[_]],
classTag[_root_.java.nio.ByteBuffer].asInstanceOf[ClassTag[_]],
classTag[com.twitter.finagle.thrift.thriftscala.AnnotationType].asInstanceOf[ClassTag[_]],
classTag[_root_.scala.Option[com.twitter.finagle.thrift.thriftscala.Endpoint]].asInstanceOf[ClassTag[_]]
)
private[this] val structFields: Seq[ThriftStructField[BinaryAnnotation]] = Seq[ThriftStructField[BinaryAnnotation]](
new ThriftStructField[BinaryAnnotation](
KeyField,
_root_.scala.Some(KeyFieldManifest),
classOf[BinaryAnnotation]) {
def getValue[R](struct: BinaryAnnotation): R = struct.key.asInstanceOf[R]
},
new ThriftStructField[BinaryAnnotation](
ValueField,
_root_.scala.Some(ValueFieldManifest),
classOf[BinaryAnnotation]) {
def getValue[R](struct: BinaryAnnotation): R = struct.value.asInstanceOf[R]
},
new ThriftStructField[BinaryAnnotation](
AnnotationTypeField,
_root_.scala.Some(AnnotationTypeFieldManifest),
classOf[BinaryAnnotation]) {
def getValue[R](struct: BinaryAnnotation): R = struct.annotationType.asInstanceOf[R]
},
new ThriftStructField[BinaryAnnotation](
HostField,
_root_.scala.Some(HostFieldManifest),
classOf[BinaryAnnotation]) {
def getValue[R](struct: BinaryAnnotation): R = struct.host.asInstanceOf[R]
}
)
override lazy val metaData: ThriftStructMetaData[BinaryAnnotation] =
new ThriftStructMetaData(this, structFields, fieldInfos, Nil, structAnnotations)
/**
* Checks that all required fields are non-null.
*/
def validate(_item: BinaryAnnotation): Unit = {
}
/**
* Checks that the struct is a valid as a new instance. If there are any missing required or
* construction required fields, return a non-empty list.
*/
def validateNewInstance(item: BinaryAnnotation): scala.Seq[com.twitter.scrooge.validation.Issue] = {
val buf = scala.collection.mutable.ListBuffer.empty[com.twitter.scrooge.validation.Issue]
buf ++= validateField(item.key)
buf ++= validateField(item.value)
buf ++= validateField(item.annotationType)
buf ++= validateField(item.host)
buf.toList
}
def withoutPassthroughFields(original: BinaryAnnotation): BinaryAnnotation =
new Immutable(
key = original.key,
value = original.value,
annotationType = original.annotationType,
host =
{
val field = original.host
field.map { field =>
com.twitter.finagle.thrift.thriftscala.Endpoint.withoutPassthroughFields(field)
}
}
)
def newBuilder(): StructBuilder[BinaryAnnotation] = new BinaryAnnotationStructBuilder(_root_.scala.None, fieldTypes)
override def encode(_item: BinaryAnnotation, _oproto: TProtocol): Unit = {
_item.write(_oproto)
}
private[this] def lazyDecode(_iprot: LazyTProtocol): BinaryAnnotation = {
var keyOffset: Int = -1
var value: _root_.java.nio.ByteBuffer = null
var annotationType: com.twitter.finagle.thrift.thriftscala.AnnotationType = null
var host: Option[com.twitter.finagle.thrift.thriftscala.Endpoint] = None
var _passthroughFields: Builder[(Short, TFieldBlob), immutable$Map[Short, TFieldBlob]] = null
var _done = false
val _start_offset = _iprot.offset
_iprot.readStructBegin()
do {
val _field = _iprot.readFieldBegin()
val _fieldType = _field.`type`
if (_fieldType == TType.STOP) {
_done = true
} else {
_field.id match {
case 1 =>
if (_fieldType == TType.STRING) {
keyOffset = _iprot.offsetSkipString()
} else {
_root_.com.twitter.scrooge.internal.ApplicationExceptions.throwWrongFieldTypeException(
"Received wrong type for field 'key' (expected=%s, actual=%s).",
TType.STRING,
_fieldType
)
}
case 2 =>
if (_fieldType == TType.STRING) {
value = readValueValue(_iprot)
} else {
_root_.com.twitter.scrooge.internal.ApplicationExceptions.throwWrongFieldTypeException(
"Received wrong type for field 'value' (expected=%s, actual=%s).",
TType.STRING,
_fieldType
)
}
case 3 =>
if (_fieldType == TType.I32 || _fieldType == TType.ENUM) {
annotationType = readAnnotationTypeValue(_iprot)
} else {
_root_.com.twitter.scrooge.internal.ApplicationExceptions.throwWrongFieldTypeException(
"Received wrong type for field 'annotationType' (expected=%s, actual=%s).",
TType.ENUM,
_fieldType
)
}
case 4 =>
if (_fieldType == TType.STRUCT) {
host = Some(readHostValue(_iprot))
} else {
_root_.com.twitter.scrooge.internal.ApplicationExceptions.throwWrongFieldTypeException(
"Received wrong type for field 'host' (expected=%s, actual=%s).",
TType.STRUCT,
_fieldType
)
}
case _ =>
if (_passthroughFields eq null)
_passthroughFields = immutable$Map.newBuilder[Short, TFieldBlob]
_passthroughFields += _root_.scala.Tuple2(_field.id, TFieldBlob.read(_field, _iprot))
}
_iprot.readFieldEnd()
}
} while (!_done)
_iprot.readStructEnd()
new LazyImmutable(
_iprot,
_iprot.buffer,
_start_offset,
_iprot.offset,
keyOffset,
value,
annotationType,
host,
if (_passthroughFields eq null)
NoPassthroughFields
else
_passthroughFields.result()
)
}
override def decode(_iprot: TProtocol): BinaryAnnotation = {
if (_iprot.isInstanceOf[LazyTProtocol]) {
lazyDecode(_iprot.asInstanceOf[LazyTProtocol])
} else {
eagerDecode(_iprot)
}
}
private[thriftscala] def eagerDecode(_iprot: TProtocol): BinaryAnnotation = {
var key: String = null
var value: _root_.java.nio.ByteBuffer = null
var annotationType: com.twitter.finagle.thrift.thriftscala.AnnotationType = null
var host: _root_.scala.Option[com.twitter.finagle.thrift.thriftscala.Endpoint] = _root_.scala.None
var _passthroughFields: Builder[(Short, TFieldBlob), immutable$Map[Short, TFieldBlob]] = null
var _done = false
_iprot.readStructBegin()
do {
val _field = _iprot.readFieldBegin()
val _fieldType = _field.`type`
if (_fieldType == TType.STOP) {
_done = true
} else {
_field.id match {
case 1 =>
if (_fieldType == TType.STRING) {
key = readKeyValue(_iprot)
} else {
_root_.com.twitter.scrooge.internal.ApplicationExceptions.throwWrongFieldTypeException(
"Received wrong type for field 'key' (expected=%s, actual=%s).",
TType.STRING,
_fieldType
)
}
case 2 =>
if (_fieldType == TType.STRING) {
value = readValueValue(_iprot)
} else {
_root_.com.twitter.scrooge.internal.ApplicationExceptions.throwWrongFieldTypeException(
"Received wrong type for field 'value' (expected=%s, actual=%s).",
TType.STRING,
_fieldType
)
}
case 3 =>
if (_fieldType == TType.I32 || _fieldType == TType.ENUM) {
annotationType = readAnnotationTypeValue(_iprot)
} else {
_root_.com.twitter.scrooge.internal.ApplicationExceptions.throwWrongFieldTypeException(
"Received wrong type for field 'annotationType' (expected=%s, actual=%s).",
TType.ENUM,
_fieldType
)
}
case 4 =>
if (_fieldType == TType.STRUCT) {
host = _root_.scala.Some(readHostValue(_iprot))
} else {
_root_.com.twitter.scrooge.internal.ApplicationExceptions.throwWrongFieldTypeException(
"Received wrong type for field 'host' (expected=%s, actual=%s).",
TType.STRUCT,
_fieldType
)
}
case _ =>
if (_passthroughFields eq null)
_passthroughFields = immutable$Map.newBuilder[Short, TFieldBlob]
_passthroughFields += _root_.scala.Tuple2(_field.id, TFieldBlob.read(_field, _iprot))
}
_iprot.readFieldEnd()
}
} while (!_done)
_iprot.readStructEnd()
new Immutable(
key,
value,
annotationType,
host,
if (_passthroughFields eq null)
NoPassthroughFields
else
_passthroughFields.result()
)
}
def apply(
key: String,
value: _root_.java.nio.ByteBuffer,
annotationType: com.twitter.finagle.thrift.thriftscala.AnnotationType,
host: _root_.scala.Option[com.twitter.finagle.thrift.thriftscala.Endpoint] = _root_.scala.None
): BinaryAnnotation =
new Immutable(
key,
value,
annotationType,
host
)
def unapply(_item: BinaryAnnotation): _root_.scala.Option[_root_.scala.Tuple4[String, _root_.java.nio.ByteBuffer, com.twitter.finagle.thrift.thriftscala.AnnotationType, Option[com.twitter.finagle.thrift.thriftscala.Endpoint]]] = _root_.scala.Some(_item.toTuple)
@inline private[thriftscala] def readKeyValue(_iprot: TProtocol): String = {
_iprot.readString()
}
@inline private def writeKeyField(key_item: String, _oprot: TProtocol): Unit = {
_oprot.writeFieldBegin(KeyField)
writeKeyValue(key_item, _oprot)
_oprot.writeFieldEnd()
}
@inline private def writeKeyValue(key_item: String, _oprot: TProtocol): Unit = {
_oprot.writeString(key_item)
}
@inline private[thriftscala] def readValueValue(_iprot: TProtocol): _root_.java.nio.ByteBuffer = {
_iprot.readBinary()
}
@inline private def writeValueField(value_item: _root_.java.nio.ByteBuffer, _oprot: TProtocol): Unit = {
_oprot.writeFieldBegin(ValueField)
writeValueValue(value_item, _oprot)
_oprot.writeFieldEnd()
}
@inline private def writeValueValue(value_item: _root_.java.nio.ByteBuffer, _oprot: TProtocol): Unit = {
_oprot.writeBinary(value_item)
}
@inline private[thriftscala] def readAnnotationTypeValue(_iprot: TProtocol): com.twitter.finagle.thrift.thriftscala.AnnotationType = {
com.twitter.finagle.thrift.thriftscala.AnnotationType.getOrUnknown(_iprot.readI32())
}
@inline private def writeAnnotationTypeField(annotationType_item: com.twitter.finagle.thrift.thriftscala.AnnotationType, _oprot: TProtocol): Unit = {
_oprot.writeFieldBegin(AnnotationTypeFieldI32)
writeAnnotationTypeValue(annotationType_item, _oprot)
_oprot.writeFieldEnd()
}
@inline private def writeAnnotationTypeValue(annotationType_item: com.twitter.finagle.thrift.thriftscala.AnnotationType, _oprot: TProtocol): Unit = {
_oprot.writeI32(annotationType_item.value)
}
@inline private[thriftscala] def readHostValue(_iprot: TProtocol): com.twitter.finagle.thrift.thriftscala.Endpoint = {
com.twitter.finagle.thrift.thriftscala.Endpoint.decode(_iprot)
}
@inline private def writeHostField(host_item: com.twitter.finagle.thrift.thriftscala.Endpoint, _oprot: TProtocol): Unit = {
_oprot.writeFieldBegin(HostField)
writeHostValue(host_item, _oprot)
_oprot.writeFieldEnd()
}
@inline private def writeHostValue(host_item: com.twitter.finagle.thrift.thriftscala.Endpoint, _oprot: TProtocol): Unit = {
host_item.write(_oprot)
}
object Immutable extends ThriftStructCodec3[BinaryAnnotation] {
override def encode(_item: BinaryAnnotation, _oproto: TProtocol): Unit = { _item.write(_oproto) }
override def decode(_iprot: TProtocol): BinaryAnnotation = BinaryAnnotation.decode(_iprot)
override lazy val metaData: ThriftStructMetaData[BinaryAnnotation] = BinaryAnnotation.metaData
}
/**
* The default read-only implementation of BinaryAnnotation. You typically should not need to
* directly reference this class; instead, use the BinaryAnnotation.apply method to construct
* new instances.
*/
class Immutable(
val key: String,
val value: _root_.java.nio.ByteBuffer,
val annotationType: com.twitter.finagle.thrift.thriftscala.AnnotationType,
val host: _root_.scala.Option[com.twitter.finagle.thrift.thriftscala.Endpoint],
override val _passthroughFields: immutable$Map[Short, TFieldBlob])
extends BinaryAnnotation {
def this(
key: String,
value: _root_.java.nio.ByteBuffer,
annotationType: com.twitter.finagle.thrift.thriftscala.AnnotationType,
host: _root_.scala.Option[com.twitter.finagle.thrift.thriftscala.Endpoint] = _root_.scala.None
) = this(
key,
value,
annotationType,
host,
immutable$Map.empty[Short, TFieldBlob]
)
}
/**
* This is another Immutable, this however keeps strings as lazy values that are lazily decoded from the backing
* array byte on read.
*/
private[this] class LazyImmutable(
_proto: LazyTProtocol,
_buf: Array[Byte],
_start_offset: Int,
_end_offset: Int,
keyOffset: Int,
val value: _root_.java.nio.ByteBuffer,
val annotationType: com.twitter.finagle.thrift.thriftscala.AnnotationType,
val host: _root_.scala.Option[com.twitter.finagle.thrift.thriftscala.Endpoint],
override val _passthroughFields: immutable$Map[Short, TFieldBlob])
extends BinaryAnnotation {
override def write(_oprot: TProtocol): Unit = {
if (_oprot.isInstanceOf[LazyTProtocol]) {
_oprot.asInstanceOf[LazyTProtocol].writeRaw(_buf, _start_offset, _end_offset - _start_offset)
} else {
super.write(_oprot)
}
}
lazy val key: String =
if (keyOffset == -1)
null
else {
_proto.decodeString(_buf, keyOffset)
}
/**
* Override the super hash code to make it a lazy val rather than def.
*
* Calculating the hash code can be expensive, caching it where possible
* can provide significant performance wins. (Key in a hash map for instance)
* Usually not safe since the normal constructor will accept a mutable map or
* set as an arg
* Here however we control how the class is generated from serialized data.
* With the class private and the contract that we throw away our mutable references
* having the hash code lazy here is safe.
*/
override lazy val hashCode: Int = super.hashCode
}
/**
* This Proxy trait allows you to extend the BinaryAnnotation trait with additional state or
* behavior and implement the read-only methods from BinaryAnnotation using an underlying
* instance.
*/
trait Proxy extends BinaryAnnotation {
protected def _underlying_BinaryAnnotation: BinaryAnnotation
override def key: String = _underlying_BinaryAnnotation.key
override def value: _root_.java.nio.ByteBuffer = _underlying_BinaryAnnotation.value
override def annotationType: com.twitter.finagle.thrift.thriftscala.AnnotationType = _underlying_BinaryAnnotation.annotationType
override def host: _root_.scala.Option[com.twitter.finagle.thrift.thriftscala.Endpoint] = _underlying_BinaryAnnotation.host
override def _passthroughFields: immutable$Map[Short, TFieldBlob] = _underlying_BinaryAnnotation._passthroughFields
}
}
/**
* Prefer the companion object's [[com.twitter.finagle.thrift.thriftscala.BinaryAnnotation.apply]]
* for construction if you don't need to specify passthrough fields.
*/
trait BinaryAnnotation
extends ThriftStruct
with _root_.scala.Product4[String, _root_.java.nio.ByteBuffer, com.twitter.finagle.thrift.thriftscala.AnnotationType, Option[com.twitter.finagle.thrift.thriftscala.Endpoint]]
with ValidatingThriftStruct[BinaryAnnotation]
with java.io.Serializable
{
import BinaryAnnotation._
def key: String
def value: _root_.java.nio.ByteBuffer
def annotationType: com.twitter.finagle.thrift.thriftscala.AnnotationType
/**
* The host that recorded tag, which allows you to differentiate between
* multiple tags with the same key. There are two exceptions to this.
*
* When the key is CLIENT_ADDR or SERVER_ADDR, host indicates the source or
* destination of an RPC. This exception allows zipkin to display network
* context of uninstrumented services, or clients such as web browsers.
*/
def host: _root_.scala.Option[com.twitter.finagle.thrift.thriftscala.Endpoint]
def _passthroughFields: immutable$Map[Short, TFieldBlob] = immutable$Map.empty
def _1: String = key
def _2: _root_.java.nio.ByteBuffer = value
def _3: com.twitter.finagle.thrift.thriftscala.AnnotationType = annotationType
def _4: _root_.scala.Option[com.twitter.finagle.thrift.thriftscala.Endpoint] = host
def toTuple: _root_.scala.Tuple4[String, _root_.java.nio.ByteBuffer, com.twitter.finagle.thrift.thriftscala.AnnotationType, Option[com.twitter.finagle.thrift.thriftscala.Endpoint]] =
_root_.scala.Tuple4[String, _root_.java.nio.ByteBuffer, com.twitter.finagle.thrift.thriftscala.AnnotationType, Option[com.twitter.finagle.thrift.thriftscala.Endpoint]](
key,
value,
annotationType,
host
)
/**
* Gets a field value encoded as a binary blob using TCompactProtocol. If the specified field
* is present in the passthrough map, that value is returned. Otherwise, if the specified field
* is known and not optional and set to None, then the field is serialized and returned.
*/
def getFieldBlob(_fieldId: Short): _root_.scala.Option[TFieldBlob] = {
val passedthroughValue = _passthroughFields.get(_fieldId)
if (passedthroughValue.isDefined) {
passedthroughValue
} else {
val _buff = new TMemoryBuffer(32)
val _oprot = new TCompactProtocol(_buff)
val _fieldOpt: _root_.scala.Option[TField] = _fieldId match {
case 1 =>
if (key ne null) {
writeKeyValue(key, _oprot)
_root_.scala.Some(BinaryAnnotation.KeyField)
} else {
_root_.scala.None
}
case 2 =>
if (value ne null) {
writeValueValue(value, _oprot)
_root_.scala.Some(BinaryAnnotation.ValueField)
} else {
_root_.scala.None
}
case 3 =>
if (annotationType ne null) {
writeAnnotationTypeValue(annotationType, _oprot)
_root_.scala.Some(BinaryAnnotation.AnnotationTypeField)
} else {
_root_.scala.None
}
case 4 =>
if (host.isDefined) {
writeHostValue(host.get, _oprot)
_root_.scala.Some(BinaryAnnotation.HostField)
} else {
_root_.scala.None
}
case _ => _root_.scala.None
}
if (_fieldOpt.isDefined) {
_root_.scala.Some(TFieldBlob(_fieldOpt.get, Buf.ByteArray.Owned(_buff.getArray)))
} else {
_root_.scala.None
}
}
}
/**
* Collects TCompactProtocol-encoded field values according to `getFieldBlob` into a map.
*/
def getFieldBlobs(ids: TraversableOnce[Short]): immutable$Map[Short, TFieldBlob] =
(ids.flatMap { id => getFieldBlob(id).map { fieldBlob => (id, fieldBlob) } }).toMap
/**
* Sets a field using a TCompactProtocol-encoded binary blob. If the field is a known
* field, the blob is decoded and the field is set to the decoded value. If the field
* is unknown and passthrough fields are enabled, then the blob will be stored in
* _passthroughFields.
*/
def setField(_blob: TFieldBlob): BinaryAnnotation = {
var key: String = this.key
var value: _root_.java.nio.ByteBuffer = this.value
var annotationType: com.twitter.finagle.thrift.thriftscala.AnnotationType = this.annotationType
var host: _root_.scala.Option[com.twitter.finagle.thrift.thriftscala.Endpoint] = this.host
var _passthroughFields = this._passthroughFields
_blob.id match {
case 1 =>
key = readKeyValue(_blob.read)
case 2 =>
value = readValueValue(_blob.read)
case 3 =>
annotationType = readAnnotationTypeValue(_blob.read)
case 4 =>
host = _root_.scala.Some(readHostValue(_blob.read))
case _ => _passthroughFields += _root_.scala.Tuple2(_blob.id, _blob)
}
new Immutable(
key,
value,
annotationType,
host,
_passthroughFields
)
}
/**
* If the specified field is optional, it is set to None. Otherwise, if the field is
* known, it is reverted to its default value; if the field is unknown, it is removed
* from the passthroughFields map, if present.
*/
def unsetField(_fieldId: Short): BinaryAnnotation = {
var key: String = this.key
var value: _root_.java.nio.ByteBuffer = this.value
var annotationType: com.twitter.finagle.thrift.thriftscala.AnnotationType = this.annotationType
var host: _root_.scala.Option[com.twitter.finagle.thrift.thriftscala.Endpoint] = this.host
_fieldId match {
case 1 =>
key = null
case 2 =>
value = null
case 3 =>
annotationType = null
case 4 =>
host = _root_.scala.None
case _ =>
}
new Immutable(
key,
value,
annotationType,
host,
_passthroughFields - _fieldId
)
}
/**
* If the specified field is optional, it is set to None. Otherwise, if the field is
* known, it is reverted to its default value; if the field is unknown, it is removed
* from the passthroughFields map, if present.
*/
def unsetKey: BinaryAnnotation = unsetField(1)
def unsetValue: BinaryAnnotation = unsetField(2)
def unsetAnnotationType: BinaryAnnotation = unsetField(3)
def unsetHost: BinaryAnnotation = unsetField(4)
override def write(_oprot: TProtocol): Unit = {
BinaryAnnotation.validate(this)
_oprot.writeStructBegin(Struct)
if (key ne null) writeKeyField(key, _oprot)
if (value ne null) writeValueField(value, _oprot)
if (annotationType ne null) writeAnnotationTypeField(annotationType, _oprot)
if (host.isDefined) writeHostField(host.get, _oprot)
if (_passthroughFields.nonEmpty) {
_passthroughFields.values.foreach { _.write(_oprot) }
}
_oprot.writeFieldStop()
_oprot.writeStructEnd()
}
def copy(
key: String = this.key,
value: _root_.java.nio.ByteBuffer = this.value,
annotationType: com.twitter.finagle.thrift.thriftscala.AnnotationType = this.annotationType,
host: _root_.scala.Option[com.twitter.finagle.thrift.thriftscala.Endpoint] = this.host,
_passthroughFields: immutable$Map[Short, TFieldBlob] = this._passthroughFields
): BinaryAnnotation =
new Immutable(
key,
value,
annotationType,
host,
_passthroughFields
)
override def canEqual(other: Any): Boolean = other.isInstanceOf[BinaryAnnotation]
private[this] def _equals(other: BinaryAnnotation): Boolean =
this.productArity == other.productArity &&
this.productIterator.sameElements(other.productIterator) &&
this._passthroughFields == other._passthroughFields
override def equals(other: Any): Boolean =
canEqual(other) && _equals(other.asInstanceOf[BinaryAnnotation])
override def hashCode: Int = {
_root_.scala.runtime.ScalaRunTime._hashCode(this)
}
override def toString: String = _root_.scala.runtime.ScalaRunTime._toString(this)
override def productPrefix: String = "BinaryAnnotation"
def _codec: ValidatingThriftStructCodec3[BinaryAnnotation] = BinaryAnnotation
def newBuilder(): StructBuilder[BinaryAnnotation] = new BinaryAnnotationStructBuilder(_root_.scala.Some(this), fieldTypes)
}
private[thriftscala] class BinaryAnnotationStructBuilder(instance: _root_.scala.Option[BinaryAnnotation], fieldTypes: IndexedSeq[ClassTag[_]])
extends StructBuilder[BinaryAnnotation](fieldTypes) {
def build(): BinaryAnnotation = {
val _fieldArray = fieldArray // shadow variable
if (instance.isDefined) {
val instanceValue = instance.get
BinaryAnnotation(
if (_fieldArray(0) == null) instanceValue.key else _fieldArray(0).asInstanceOf[String],
if (_fieldArray(1) == null) instanceValue.value else _fieldArray(1).asInstanceOf[_root_.java.nio.ByteBuffer],
if (_fieldArray(2) == null) instanceValue.annotationType else _fieldArray(2).asInstanceOf[com.twitter.finagle.thrift.thriftscala.AnnotationType],
if (_fieldArray(3) == null) instanceValue.host else _fieldArray(3).asInstanceOf[_root_.scala.Option[com.twitter.finagle.thrift.thriftscala.Endpoint]]
)
} else {
if (genericArrayOps(_fieldArray).contains(null)) throw new InvalidFieldsException(structBuildError("BinaryAnnotation"))
BinaryAnnotation(
_fieldArray(0).asInstanceOf[String],
_fieldArray(1).asInstanceOf[_root_.java.nio.ByteBuffer],
_fieldArray(2).asInstanceOf[com.twitter.finagle.thrift.thriftscala.AnnotationType],
_fieldArray(3).asInstanceOf[_root_.scala.Option[com.twitter.finagle.thrift.thriftscala.Endpoint]]
)
}
}
}