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
}