/** * 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()); }
/** * Transforms enumeration object to the raw value. * * @param EnumInterface|null $value An EnumInterface instance * * @return mixed A scalar value * * @throws UnexpectedTypeException When $value is not valid type */ public function transform($value) { if ($value === null) { return null; } if (!$value instanceof $this->enumClass) { throw new UnexpectedTypeException($value, $this->enumClass); } return $value->getValue(); }