def read()

in common/scala/src/main/scala/org/apache/openwhisk/core/entity/Parameter.scala [308:336]


    def read(params: Vector[JsValue]) = Try {
      new Parameters(params.map {
        case o @ JsObject(fields) =>
          o.getFields("key", "value", "init", "encryption") match {
            case Seq(JsString(k), v: JsValue) if fields.contains("value") =>
              val key = new ParameterName(k)
              val value = ParameterValue(v, false)
              (key, value)
            case Seq(JsString(k), v: JsValue, JsBoolean(i)) =>
              val key = new ParameterName(k)
              val value = ParameterValue(v, i)
              (key, value)
            case Seq(JsString(k), v: JsValue, JsBoolean(i), JsString(e)) =>
              val key = new ParameterName(k)
              val value = ParameterValue(v, i, Some(e))
              (key, value)
            case Seq(JsString(k), v: JsValue, JsBoolean(i), JsNull) =>
              val key = new ParameterName(k)
              val value = ParameterValue(v, i, None)
              (key, value)
            case Seq(JsString(k), v: JsValue, JsString(e))
                if fields.contains("value") && fields.contains("encryption") =>
              val key = new ParameterName(k)
              val value = ParameterValue(v, false, Some(e))
              (key, value)
          }
        case _ => deserializationError("invalid parameter")
      }.toMap)
    }