/** * serialize exception. * * @param ODataException &$exception Exception to serialize * @param Boolean $serializeInnerException if set to true * * serialize the inner exception if $exception is an ODataException. * * @return void */ public static function serializeException(ODataException &$exception, $serializeInnerException) { $writer = new JsonWriter(''); // Wrapper for error. $writer->startObjectScope(); // "error" $writer->writeName(ODataConstants::JSON_ERROR); $writer->startObjectScope(); // "code" if ($exception->getCode() != null) { $writer->writeName(ODataConstants::JSON_ERROR_CODE); $writer->writeValue($exception->getCode()); } // "message" $writer->writeName(ODataConstants::JSON_ERROR_MESSAGE); $writer->startObjectScope(); // "lang" $writer->writeName(ODataConstants::XML_LANG_ATTRIBUTE_NAME); //if ($exception->getMsgLang() != null) { $writer->writeValue('en-US'); //} // "value" $writer->writeName(ODataConstants::JSON_ERROR_VALUE); $writer->writeValue($exception->getMessage()); $writer->endScope(); $writer->endScope(); $writer->endScope(); return $writer->getJsonOutput(); }
/** * Serialize the exception * * @param ODataException &$exception Exception to serialize * @param boolean $serializeInnerException if set to true, * serialize the inner exception if $exception is an ODataException. * * @return nothing */ public static function serializeException(ODataException &$exception, $serializeInnerException) { $xmlWriter = new \XMLWriter(); $xmlWriter->openMemory(); $xmlWriter->startDocument('1.0', 'UTF-8', 'yes'); $xmlWriter->setIndent(4); $xmlWriter->startElement(ODataConstants::XML_ERROR_ELEMENT_NAME); //$xmlWriter->writeAttributeNs( // ODataConstants::XMLNS_NAMESPACE_PREFIX, // ODataConstants::XML_NAMESPACE_PREFIX, // ODataConstants::XML_NAMESPACE, // null //); $xmlWriter->writeAttribute(ODataConstants::XMLNS_NAMESPACE_PREFIX, ODataConstants::ODATA_METADATA_NAMESPACE); $xmlWriter->endAttribute(); $xmlWriter->startElement(ODataConstants::XML_ERROR_CODE_ELEMENT_NAME); if ($exception->getCode() != null) { $xmlWriter->text($exception->getCode()); } $xmlWriter->endElement(); $xmlWriter->startElement(ODataConstants::XML_ERROR_MESSAGE_ELEMENT_NAME); $xmlWriter->text($exception->getMessage()); $xmlWriter->endElement(); $xmlWriter->endElement(); $xmlWriter->endDocument(); return $xmlWriter->outputMemory(true); }