override def writes()

in riff-raff/app/persistence/representation.scala [107:154]


    override def writes(doc: MessageDocument): JsValue = doc match {
      case DeployDocument =>
        JsObject(List("_typeHint" -> JsString(DeployDocument.getClass.getName)))
      case d @ TaskListDocument(_) =>
        Json.toJson(d).as[JsObject] + ("_typeHint" -> JsString(
          TaskListDocument.getClass.getName
        ))
      case d @ TaskRunDocument(_) =>
        Json.toJson(d).as[JsObject] + ("_typeHint" -> JsString(
          TaskRunDocument.getClass.getName
        ))
      case d @ InfoDocument(_) =>
        Json.toJson(d).as[JsObject] + ("_typeHint" -> JsString(
          InfoDocument.getClass.getName
        ))
      case d @ CommandOutputDocument(_) =>
        Json.toJson(d).as[JsObject] + ("_typeHint" -> JsString(
          CommandOutputDocument.getClass.getName
        ))
      case d @ CommandErrorDocument(_) =>
        Json.toJson(d).as[JsObject] + ("_typeHint" -> JsString(
          CommandErrorDocument.getClass.getName
        ))
      case d @ VerboseDocument(_) =>
        Json.toJson(d).as[JsObject] + ("_typeHint" -> JsString(
          VerboseDocument.getClass.getName
        ))
      case d @ FailDocument(_, _) =>
        Json.toJson(d).as[JsObject] + ("_typeHint" -> JsString(
          FailDocument.getClass.getName
        ))
      case FinishContextDocument =>
        JsObject(
          List("_typeHint" -> JsString(FinishContextDocument.getClass.getName))
        )
      case FailContextDocument =>
        JsObject(
          List("_typeHint" -> JsString(FailContextDocument.getClass.getName))
        )
      case d @ WarningDocument(_) =>
        Json.toJson(d).as[JsObject] + ("_typeHint" -> JsString(
          WarningDocument.getClass.getName
        ))
      case d =>
        throw new IllegalArgumentException(
          s"Don't know how to write MessageDocument of type $d"
        )
    }