/**
  * @param  AbstractVisitor      $visitor
  * @param  BernardTokenMessage  $message
  * @param  string               $type
  * @param  Context              $context
  * @return array
  */
 public function serializeMessage(AbstractVisitor $visitor, BernardTokenMessage $message, $type, Context $context)
 {
     $token = $message->getToken();
     $tokenClass = get_class($token);
     $type = array('name' => $tokenClass, 'params' => array());
     $data = array('args' => $context->accept($token, $type), 'class' => bernard_encode_class_name($tokenClass), 'name' => $message->getName(), 'queue' => $message->getQueue());
     $visitor->setRoot($data);
     return $data;
 }
예제 #2
0
 /**
  * @param  AbstractVisitor  $visitor
  * @param  Token            $token
  * @param  string           $type
  * @param  Context          $context
  * @return array
  */
 public function serializeToken(AbstractVisitor $visitor, Token $token, $type, Context $context)
 {
     $data = [];
     foreach ($token->getData() as $key => $datum) {
         $datumType = $this->getType($datum);
         $type = ['name' => $datumType, 'params' => []];
         $argsData = '';
         if ($type['name'] === 'array') {
             $argsData = [];
             foreach ($datum as $arrayKey => $arrayData) {
                 $arrayType = ['name' => $this->getType($arrayData), 'params' => []];
                 $argsData[] = ['key' => $arrayKey, 'args' => $context->accept($arrayData, $arrayType), 'type' => $arrayType];
             }
         } else {
             $argsData = $context->accept($datum, $type);
         }
         $args = ['key' => $key, 'args' => $argsData, 'type' => $type];
         $data[] = $args;
     }
     $data = array('data' => $data, 'location' => $token->getLocation());
     $visitor->setRoot($data);
     return $data;
 }
 public function __construct($namingStrategy)
 {
     parent::__construct($namingStrategy);
     $this->objectMetadataStack = new \SplStack();
 }
예제 #4
0
 public function __construct(PropertyNamingStrategyInterface $namingStrategy)
 {
     parent::__construct($namingStrategy);
     $this->writer = new Writer();
 }