public function serializeFormErrorToXml(XmlSerializationVisitor $visitor, FormError $formError, array $type)
 {
     if (null === $visitor->document) {
         $visitor->document = $visitor->createDocument(null, null, true);
     }
     return $visitor->document->createCDATASection($this->getErrorMessage($formError));
 }
 /** @HandlerCallback("xml", direction = "serialization") */
 public function serializeToXml(XmlSerializationVisitor $visitor)
 {
     if (null === $visitor->document) {
         $visitor->document = $visitor->createDocument(null, null, false);
     }
     $visitor->document->appendChild($visitor->document->createElement($this->element, $this->value));
 }
 public function serializeTime(XmlSerializationVisitor $visitor, \DateTime $date, array $type, Context $context)
 {
     $v = $date->format('H:i:s');
     if ($date->getTimezone()->getOffset($date) !== $this->defaultTimezone->getOffset($date)) {
         $v .= $date->format('P');
     }
     return $visitor->visitSimpleString($v, $type, $context);
 }
 /**
  * @param XmlSerializationVisitor $visitor
  * @param Comment $comment
  * @param array $type
  * @param Context $context
  */
 public function serializeToXml(XmlSerializationVisitor $visitor, Comment $comment, array $type, Context $context)
 {
     $data = $this->getCommentData($comment);
     /** @var PropertyMetadata $metadata */
     $metadata = $visitor->getCurrentMetadata();
     $metadata->xmlKeyValuePairs = true;
     $visitor->visitArray($data, $type, $context);
 }
 /**
  * Serialize the Enum object to xml.
  *
  * @param XmlSerializationVisitor $visitor The visitor
  * @param EnumInterface           $data    A EnumInterface instance
  * @param array                   $type    The type parameters
  *
  * @return \DOMCdataSection
  */
 public function serializeEnumToXml(XmlSerializationVisitor $visitor, EnumInterface $data, array $type)
 {
     if ($visitor->document === null) {
         $visitor->document = $visitor->createDocument(null, null, true);
         $visitor->getCurrentNode()->appendChild($node = $visitor->document->createCDATASection($data->getValue()));
         return $node;
     }
     return $visitor->document->createCDATASection($data->getValue());
 }
 public function simpleListOfToXml(XmlSerializationVisitor $visitor, $object, array $type, Context $context)
 {
     $newType = array('name' => $type["params"][0]["name"], 'params' => array());
     $ret = array();
     foreach ($object as $v) {
         $ret[] = $context->accept($v, $newType)->data;
     }
     return $visitor->getDocument()->createTextNode(implode(" ", $ret));
 }
 public function serializeToXML(XmlSerializationVisitor $visitor, FormView $formView, array $type, Context $context)
 {
     if (null === $visitor->document) {
         $visitor->document = $visitor->createDocument(null, null, false);
         $visitor->setCurrentNode($visitor->document->createElement('form'));
         $visitor->document->appendChild($visitor->getCurrentNode());
     }
     $this->xmlFormViewSerializer->serialize($formView, $visitor->getCurrentNode());
 }
 public function serializeViolationToXml(XmlSerializationVisitor $visitor, ConstraintViolation $violation, array $type = null)
 {
     if (null === $visitor->document) {
         $visitor->document = $visitor->createDocument(null, null, false);
         $visitor->document->appendChild($violationNode = $visitor->document->createElement('violation'));
         $visitor->setCurrentNode($violationNode);
     } else {
         $visitor->getCurrentNode()->appendChild($violationNode = $visitor->document->createElement('violation'));
     }
     $violationNode->setAttribute('property_path', $violation->getPropertyPath());
     $violationNode->appendChild($messageNode = $visitor->document->createElement('message'));
     $messageNode->appendChild($visitor->document->createCDATASection($violation->getMessage()));
 }
 public function addLinksToXMLSerialization(array $links, XmlSerializationVisitor $visitor)
 {
     foreach ($links as $link) {
         $entryNode = $visitor->getDocument()->createElement('link');
         $visitor->getCurrentNode()->appendChild($entryNode);
         $entryNode->setAttribute('rel', $link->getRel());
         $entryNode->setAttribute('href', $link->getHref());
         $attributes = $link->getAttributes();
         foreach ($attributes as $attributeName => $attributeValue) {
             $entryNode->setAttribute($attributeName, $attributeValue);
         }
     }
 }
Beispiel #10
0
 public function serializeDateTime(XmlSerializationVisitor $visitor, OTADateTime $date, array $type, Context $context)
 {
     $format = '';
     if ($date->getType() & OTADateTime::TYPE_DATE) {
         $format .= 'Y-m-d';
     }
     if ($date->getType() & OTADateTime::TYPE_DATE && $date->getType() & OTADateTime::TYPE_TIME) {
         $format .= '\\T';
     }
     if ($date->getType() & OTADateTime::TYPE_TIME) {
         $format .= 'H:i:s';
     }
     $v = $date->format($format);
     return $visitor->visitSimpleString($v, $type, $context);
 }
 /**
  *
  * @param string $cacheDir
  * @param string $metadataDir
  * @param bool   $debug
  */
 public function __construct($cacheDir, $metadataDir, $debug = false)
 {
     $serializerBuilder = SerializerBuilder::create();
     $serializerBuilder->setCacheDir($cacheDir)->setDebug($debug)->addMetadataDir($metadataDir);
     $propertyNamingStrategy = new SerializedNameAnnotationStrategy(new CamelCaseNamingStrategy());
     $serializerBuilder->setPropertyNamingStrategy($propertyNamingStrategy);
     $serializerBuilder->addDefaultSerializationVisitors();
     $serializerBuilder->addDefaultDeserializationVisitors();
     $jsonSerializationVisitor = new JsonSerializationVisitor($propertyNamingStrategy);
     $jsonSerializationVisitor->setOptions(JSON_PRETTY_PRINT);
     $xmlSerializationVisitor = new XmlSerializationVisitor($propertyNamingStrategy);
     $xmlSerializationVisitor->setDefaultRootName('config');
     $serializerBuilder->setSerializationVisitor('json', $jsonSerializationVisitor);
     $serializerBuilder->setSerializationVisitor('xml', $xmlSerializationVisitor);
     $this->serializer = $serializerBuilder->build();
 }
Beispiel #12
0
 private function createLinkNode(LinkMetadata $link, XmlSerializationVisitor $visitor, $object)
 {
     $language = new ExpressionLanguage();
     $compiledParams = array();
     foreach ($link->getParams() as $key => $expr) {
         $compiledParams[$key] = $language->evaluate($expr, array('object' => $object));
     }
     $linkNode = $visitor->getDocument()->createElement('link');
     $linkNode->setAttribute('id', $link->getName());
     $linkNode->setAttribute('rel', $link->getEntity());
     $linkNode->setAttribute('href', $this->router->generate($link->getRoute(), $compiledParams, true));
     return $linkNode;
 }
 /**
  * @param XmlSerializationVisitor $visitor
  * @param ExceptionWrapper        $wrapper
  * @param array                   $type
  * @param Context                 $context
  */
 public function serializeToXml(XmlSerializationVisitor $visitor, ExceptionWrapper $wrapper, array $type, Context $context)
 {
     $data = $this->convertToArray($wrapper);
     if (null === $visitor->document) {
         $visitor->document = $visitor->createDocument(null, null, true);
     }
     foreach ($data as $key => $value) {
         $entryNode = $visitor->document->createElement($key);
         $visitor->getCurrentNode()->appendChild($entryNode);
         $visitor->setCurrentNode($entryNode);
         $node = $context->getNavigator()->accept($value, null, $context);
         if (null !== $node) {
             $visitor->getCurrentNode()->appendChild($node);
         }
         $visitor->revertCurrentNode();
     }
 }
 public function testWithoutFormatedOutputByXmlSerializationVisitor()
 {
     $namingStrategy = new SerializedNameAnnotationStrategy(new CamelCaseNamingStrategy());
     $xmlVisitor = new XmlSerializationVisitor($namingStrategy);
     $xmlVisitor->setFormatOutput(false);
     $visitors = new Map(array('xml' => new XmlSerializationVisitor($namingStrategy)));
     $serializer = new Serializer($this->factory, $this->handlerRegistry, new UnserializeObjectConstructor(), $visitors, $this->deserializationVisitors, $this->dispatcher);
     $object = new SimpleClassObject();
     $object->foo = 'foo';
     $object->bar = 'bar';
     $object->moo = 'moo';
     $stringXml = $serializer->serialize($object, $this->getFormat());
     $this->assertXmlStringEqualsXmlString($this->getContent('simple_class_object_minified'), $stringXml);
 }
 /**
  * @dataProvider getSerializeDateTime
  * @param \DateTime $date
  */
 public function testSerializeDateTime(\DateTime $date, $expected)
 {
     $this->handler->serializeDateTime($this->visitor, $date, [], $this->context);
     $this->assertEquals($expected, $this->visitor->getCurrentNode()->nodeValue);
 }
 /**
  * Normalize wrapper to serialize with xml
  * Event class name is added
  *
  * @param XmlSerializationVisitor $visitor
  * @param EventContainer          $container
  * @param array                   $type
  * @param Context                 $context
  */
 public function serializeContainerXml(XmlSerializationVisitor $visitor, EventContainer $container, array $type, Context $context)
 {
     if (!$visitor->getDocument()) {
         /** @var ClassMetadata $metadata */
         $metadata = $context->getMetadataFactory()->getMetadataForClass(__NAMESPACE__ . '\\EventContainer');
         $metadata->xmlRootName = 'event';
         $visitor->startVisitingObject($metadata, $container, [], $context);
         //            $visitor->visitArray([], ['name' => 'array'], $context);
     }
     $event = $container->getEvent();
     $node = $visitor->getCurrentNode();
     $node->setAttribute('type', $this->namingStrategy->classToType(get_class($event)));
     $data = $visitor->getDocument()->createElement('data');
     $visitor->getCurrentNode()->appendChild($data);
     $visitor->setCurrentNode($data);
     $visitor->getNavigator()->accept($event, null, $context);
     $visitor->revertCurrentNode();
 }
 /**
  * @param mixed   $data
  * @param array   $type
  * @param Context $context
  * @return mixed|void
  */
 public function visitBoolean($data, array $type, Context $context)
 {
     return parent::visitString($data ? '1' : '0', $type, $context);
 }
Beispiel #18
0
 /**
  * @param XmlSerializationVisitor $visitor
  * @param Money                   $money
  */
 public function serializeMoneyXml(XmlSerializationVisitor $visitor, Money $money)
 {
     /** @var \DOMElement $node */
     $node = $visitor->getCurrentNode();
     $node->nodeValue = $this->formatter->format($money);
 }
Beispiel #19
0
 /**
  * {@inheritdoc}
  */
 public function serializeEmbedded(array $embeds, XmlSerializationVisitor $visitor, SerializationContext $context)
 {
     foreach ($embeds as $embed) {
         $entryNode = $visitor->getDocument()->createElement($this->getElementName($embed->getData(), $embed));
         $visitor->getCurrentNode()->appendChild($entryNode);
         $visitor->setCurrentNode($entryNode);
         $visitor->getCurrentNode()->setAttribute('rel', $embed->getRel());
         if ($embed->getData() instanceof \Traversable || is_array($embed->getData())) {
             foreach ($embed->getData() as $entry) {
                 $entryNode = $visitor->getDocument()->createElement($this->getElementName($entry));
                 $visitor->getCurrentNode()->appendChild($entryNode);
                 $visitor->setCurrentNode($entryNode);
                 if (null !== ($node = $context->accept($entry))) {
                     $visitor->getCurrentNode()->appendChild($node);
                 }
                 $visitor->revertCurrentNode();
             }
         } elseif (null !== ($node = $context->accept($embed->getData()))) {
             $visitor->getCurrentNode()->appendChild($node);
         }
         $visitor->revertCurrentNode();
     }
 }
 /**
  * @param XmlSerializationVisitor $visitor
  * @param type $entity
  * @param array $type
  * @param Context $context
  *
  * @return \DOMElement
  */
 public function serializeToXml(XmlSerializationVisitor $visitor, $entity, array $type, Context $context)
 {
     $visitor->getCurrentNode()->appendChild($formNode = $visitor->getDocument()->createElement('id', $type['params']['id']));
     return $formNode;
 }
Beispiel #21
0
 public function serializeAnyType(XmlSerializationVisitor $visitor, $data, array $type, Context $context)
 {
     return $visitor->visitNull($data, $type, $context);
 }
 public function serializeToXML(XmlSerializationVisitor $visitor, HalPagerfanta $halPager, array $type, Context $context)
 {
     return $visitor->getNavigator()->accept($halPager->getPager(), null, $context);
 }