Example #1
0
 /**
  * @return RequestType
  **/
 public function setId($id)
 {
     Assert::isNull($this->id, 'i am immutable one!');
     return parent::setId($id);
 }
 protected function call($method, DTOMessage $request, $resultClass)
 {
     $requestDto = $request->makeDto();
     Assert::isInstance($requestDto, DTOClass::class);
     if (defined('__LOCAL_DEBUG__') && !defined('SIMPLE_TEST')) {
         // self-validation
         $form = ObjectToFormConverter::create($request->entityProto())->make($request);
         Assert::isTrue(!$form->getErrors() && $request->entityProto()->validate($request, $form), Assert::dumpArgument($request));
     }
     try {
         try {
             $resultDto = $this->getSoapClient()->{$method}($requestDto);
         } catch (BaseException $e) {
             if (get_class($e) == BaseException::class) {
                 throw new SoapFault('Server', get_class($e) . ': ' . $e->getMessage());
             } else {
                 $this->logCall();
                 throw $e;
             }
         }
     } catch (SoapFault $e) {
         $this->logCall();
         throw self::convertSoapFault($e);
     }
     $this->logCall();
     if (!$resultClass) {
         Assert::isNull($resultDto);
         $result = null;
     } else {
         Assert::isInstance($resultDto, DTOClass::class);
         Assert::isEqual($resultDto->entityProto()->className(), $resultClass);
         $form = DTOToFormImporter::create($resultDto->entityProto())->make($resultDto);
         Assert::isTrue(!$form->getErrors(), Assert::dumpArgument($resultDto));
         $result = $resultDto->makeObject($form);
         Assert::isInstance($result, DTOMessage::class);
         Assert::isEqual(get_class($result), $resultClass);
         Assert::isTrue($result->entityProto()->validate($result, $form), Assert::dumpArgument($result));
     }
     return $result;
 }
Example #3
0
 /**
  * @return Socket
  **/
 public function setPort($port)
 {
     Assert::isNull($this->port);
     $this->port = $port;
     return $this;
 }
Example #4
0
 private function commentState()
 {
     Assert::isNull($this->tag);
     Assert::isNull($this->tagId);
     $content = $this->getComment();
     $this->tag = SgmlIgnoredTag::comment()->setCdata(Cdata::create()->setData($content));
     $this->makeTag();
     return self::INITIAL_STATE;
 }