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

scala.class_companion_tfields.ssp Maven / Gradle / Ivy

The newest version!
<%
  // Copyright 2013 Foursquare Labs Inc. All Rights Reserved.

  import com.foursquare.spindle.codegen.runtime.StructLike
%>
<%@ val cls: StructLike %>

  // Thrift descriptors.
  val ${cls.tstructName}: org.apache.thrift.protocol.TStruct = new org.apache.thrift.protocol.TStruct("${cls.name}")

#for (field <- cls.fields)
  val ${field.tfieldName}: org.apache.thrift.protocol.TField =
    new com.foursquare.common.thrift.base.EnhancedTField(
      "${field.wireName}",
      org.apache.thrift.protocol.TType.${field.renderType.ttype.name},
      ${field.identifier},
      {
#if (field.enhancedTypeAnnotations.isEmpty)
        java.util.Collections.emptyMap[String, String]
#else
        val rv = new java.util.HashMap[String, String]
#for ((k, v) <- field.enhancedTypeAnnotations)
        rv.put("${k}", "${v}")
#end
        rv
#end
      }
    )
#end

  val UNKNOWN_FIELD: org.apache.thrift.protocol.TField = new org.apache.thrift.protocol.TField("", org.apache.thrift.protocol.TType.VOID, -1);

  val wireNameToTField: Map[String, org.apache.thrift.protocol.TField] = Map(
    ${cls.fields.map(field => "\"%s\" -> %s".format(field.wireName, field.tfieldName)).mkString(",\n    ")}
  )

  object _Fields {
#for (field <- cls.fields)
    case object ${field.escapedName} extends _Fields(${field.identifier}, "${field.name}")
#end
  }

  sealed abstract class _Fields private (id: Short, name: String) extends org.apache.thrift.TFieldIdEnum {
    def getThriftFieldId: Short = id
    def getFieldName: String = name
  }

  val idToTFieldIdEnum: Map[Short, org.apache.thrift.TFieldIdEnum] = Map(
    ${cls.fields.map(field => "%s.toShort -> _Fields.%s".format(field.identifier, field.escapedName)).mkString(",\n    ")}
  )




© 2015 - 2025 Weber Informatics LLC | Privacy Policy