/*
 * BlankSymbol.cpp
 *
 *  Created on: Mar 26, 2013
 *      Author: Jan Travnicek
 */

#include "BlankSymbol.h"
#include <alphabet/Symbol.h>
#include <object/Object.h>

#include <registration/XmlRegistration.hpp>

namespace alib {

alphabet::BlankSymbol xmlApi < alphabet::BlankSymbol >::parse ( ext::deque < sax::Token >::iterator & input ) {
	sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::START_ELEMENT, xmlTagName ( ) );
	sax::FromXMLParserHelper::popToken ( input, sax::Token::TokenType::END_ELEMENT, xmlTagName ( ) );
	return alphabet::BlankSymbol ( );
}

bool xmlApi < alphabet::BlankSymbol >::first ( const ext::deque < sax::Token >::const_iterator & input ) {
	return sax::FromXMLParserHelper::isToken ( input, sax::Token::TokenType::START_ELEMENT, xmlTagName ( ) );
}

const std::string & xmlApi < alphabet::BlankSymbol >::xmlTagName ( ) {
	static std::string xmlTagName = "BlankSymbol";

	return xmlTagName;
}

void xmlApi < alphabet::BlankSymbol >::compose ( ext::deque < sax::Token > & output, const alphabet::BlankSymbol & ) {
	output.emplace_back ( xmlTagName ( ), sax::Token::TokenType::START_ELEMENT );
	output.emplace_back ( xmlTagName ( ), sax::Token::TokenType::END_ELEMENT );
}

} /* namespace alib */

namespace {

static auto xmlWrite = registration::XmlWriterRegister < alphabet::BlankSymbol > ( );
static auto xmlRead = registration::XmlReaderRegister < alphabet::BlankSymbol > ( );

static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < alphabet::Symbol, alphabet::BlankSymbol > ( );
static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < alib::Object, alphabet::BlankSymbol > ( );

} /* namespace */