Example #1
0
 /**
  * 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;
 }