/** * Builds a service call from it's serialized form * * @param core_kernel_classes_Resource $resource * @return tao_models_classes_service_ServiceCall */ public static function fromResource(core_kernel_classes_Resource $resource) { $values = $resource->getPropertiesValues(array(PROPERTY_CALLOFSERVICES_SERVICEDEFINITION, PROPERTY_CALLOFSERVICES_ACTUALPARAMETERIN, PROPERTY_CALLOFSERVICES_ACTUALPARAMETEROUT)); $serviceDefUri = current($values[PROPERTY_CALLOFSERVICES_SERVICEDEFINITION]); $serviceCall = new self(new core_kernel_classes_Resource($serviceDefUri)); foreach ($values[PROPERTY_CALLOFSERVICES_ACTUALPARAMETERIN] as $inRes) { $param = tao_models_classes_service_Parameter::fromResource($inRes); $serviceCall->addInParameter($param); } if (!empty($values[PROPERTY_CALLOFSERVICES_ACTUALPARAMETEROUT])) { $param = tao_models_classes_service_Parameter::fromResource(current($values[PROPERTY_CALLOFSERVICES_ACTUALPARAMETEROUT])); $serviceCall->setOutParameter($param); } return $serviceCall; }