1<?php 2namespace GoetasWebservices\Xsd\XsdToPhpRuntime\Jms\Handler; 3 4use JMS\Serializer\Context; 5use JMS\Serializer\GraphNavigator; 6use JMS\Serializer\Handler\SubscribingHandlerInterface; 7use JMS\Serializer\XmlDeserializationVisitor; 8use JMS\Serializer\XmlSerializationVisitor; 9 10class BaseTypesHandler implements SubscribingHandlerInterface 11{ 12 13 public static function getSubscribingMethods() 14 { 15 return array( 16 array( 17 'direction' => GraphNavigator::DIRECTION_SERIALIZATION, 18 'format' => 'xml', 19 'type' => 'GoetasWebservices\Xsd\XsdToPhp\Jms\SimpleListOf', 20 'method' => 'simpleListOfToXml' 21 ), 22 array( 23 'direction' => GraphNavigator::DIRECTION_DESERIALIZATION, 24 'format' => 'xml', 25 'type' => 'GoetasWebservices\Xsd\XsdToPhp\Jms\SimpleListOf', 26 'method' => 'simpleListOfFromXML' 27 ) 28 ); 29 } 30 31 public function simpleListOfToXml(XmlSerializationVisitor $visitor, $object, array $type, Context $context) 32 { 33 34 $newType = array( 35 'name' => $type["params"][0]["name"], 36 'params' => array() 37 ); 38 39 $navigator = $context->getNavigator(); 40 $ret = array(); 41 foreach ($object as $v) { 42 $ret[] = $navigator->accept($v, $newType, $context)->data; 43 } 44 45 return $visitor->getDocument()->createTextNode(implode(" ", $ret)); 46 } 47 48 public function simpleListOfFromXml(XmlDeserializationVisitor $visitor, $node, array $type, Context $context) 49 { 50 $newType = array( 51 'name' => $type["params"][0]["name"], 52 'params' => array() 53 ); 54 $ret = array(); 55 $navigator = $context->getNavigator(); 56 foreach (explode(" ", (string)$node) as $v) { 57 $ret[] = $navigator->accept($v, $newType, $context); 58 } 59 return $ret; 60 } 61} 62 63