override def read[A]()

in common/scala/src/main/scala/org/apache/openwhisk/core/entity/WhiskEntity.scala [126:142]


  override def read[A](ma: Manifest[A], value: JsValue) = {
    val doc = ma.runtimeClass match {
      case x if x == classOf[WhiskAction]         => WhiskAction.serdes.read(value)
      case x if x == classOf[WhiskActionMetaData] => WhiskActionMetaData.serdes.read(value)
      case x if x == classOf[WhiskPackage]        => WhiskPackage.serdes.read(value)
      case x if x == classOf[WhiskActivation]     => WhiskActivation.serdes.read(value)
      case x if x == classOf[WhiskTrigger]        => WhiskTrigger.serdes.read(value)
      case x if x == classOf[WhiskRule]           => WhiskRule.serdes.read(value)
      case _                                      => throw DocumentUnreadable(Messages.corruptedEntity)
    }
    value.asJsObject.fields.get("entityType").foreach {
      case JsString(entityType) if (doc.entityType != entityType) =>
        throw DocumentTypeMismatchException(s"document type ${doc.entityType} did not match expected type $entityType.")
      case _ =>
    }
    doc
  }