48 lines
1.6 KiB
C++
48 lines
1.6 KiB
C++
#include "common/ErrorPkg.hpp"
|
|
#include "se/CLTRID.hpp"
|
|
#include "se/IllegalArgException.hpp"
|
|
#include "se/ACExtensionCommand.hpp"
|
|
#include "xml/XMLHelper.hpp"
|
|
|
|
ACExtensionCommand::ACExtensionCommand(
|
|
const CommandType* commandType,
|
|
const ObjectType* objectType,
|
|
const std::string& ident,
|
|
const Extension& ext) : SendSE(),
|
|
cmdType(commandType),
|
|
objType(objectType),
|
|
extension(ext)
|
|
{
|
|
if (commandType == NULL)
|
|
{
|
|
throw IllegalArgException(
|
|
ErrorPkg::getMessage("se.command.type.missing"));
|
|
}
|
|
cmdType = commandType;
|
|
|
|
command = xmlWriter->appendChild( xmlWriter->appendChild( xmlWriter->getRoot(), "extension"),
|
|
"command", extension.getURI());
|
|
|
|
command->setAttribute(XStr("xsi:schemaLocation").str(),
|
|
XStr(extension.getSchemaLocation()).str());
|
|
|
|
cmdElement = xmlWriter->appendChild(command, cmdType->getCommandName());
|
|
|
|
objElement = xmlWriter->appendChild(cmdElement, commandType->getCommandName(), objectType->getURI());
|
|
objElement->setAttribute( XStr("xsi:schemaLocation").str(), XStr(objType->getSchemaLocation()).str());
|
|
|
|
DOMElement* element = xmlWriter->appendChild( objElement, objectType->getIdentType());
|
|
XMLHelper::setTextContent(element, ident);
|
|
|
|
}
|
|
|
|
std::string ACExtensionCommand::toXMLImpl()
|
|
{
|
|
XMLHelper::setTextContent(
|
|
xmlWriter->appendChild(command, "clTRID"),
|
|
CLTRID::nextVal());
|
|
|
|
return xmlWriter->toXML();
|
|
}
|
|
|