def serialize()

in server/src/main/scala/com/twitter/server/util/exp/ExpressionJson.scala [23:58]


    def serialize(
      expressionSchema: ExpressionSchema,
      gen: JsonGenerator,
      provider: SerializerProvider
    ): Unit = {
      gen.writeStartObject()
      gen.writeStringField("name", expressionSchema.name)

      gen.writeObjectFieldStart("labels")

      // we need this to evolve the expressions format compatibly
      // in the future, we will only export labels that are set
      val labels = Map(
        ExpressionSchema.ProcessPath -> "Unspecified",
        ExpressionSchema.ServiceName -> "Unspecified",
        ExpressionSchema.Role -> SourceRole.NoRoleSpecified.toString
      ) ++ expressionSchema.labels
      for ((key, value) <- labels) {
        gen.writeStringField(key, value)
      }
      gen.writeEndObject()

      if (expressionSchema.namespace.nonEmpty) {
        gen.writeArrayFieldStart("namespaces")
        expressionSchema.namespace.foreach { p => gen.writeString(p) }
        gen.writeEndArray()
      }

      gen.writeStringField("expression", expressionSchema.exprQuery)

      provider.defaultSerializeField("bounds", expressionSchema.bounds, gen)

      gen.writeStringField("description", expressionSchema.description)
      gen.writeStringField("unit", expressionSchema.unit.toString)
      gen.writeEndObject()
    }