Newer
Older
/*
* HexavigesimalLabel.cpp
*
* Created on: Mar 26, 2013
* Author: Jan Travicek
*/
#include "HexavigesimalLabel.h"
#include <sax/FromXMLParserHelper.h>
#include <registration/TypeRegistration.hpp>
HexavigesimalLabel::HexavigesimalLabel(int hexavigesimal) : m_hexavigesimal(hexavigesimal) {
}
LabelBase* HexavigesimalLabel::clone() const {
return new HexavigesimalLabel(*this);
}
LabelBase* HexavigesimalLabel::plunder() && {
return new HexavigesimalLabel(std::move(*this));
}
int HexavigesimalLabel::getData() const {
void HexavigesimalLabel::setData(int data) {
this->m_hexavigesimal = data;
int HexavigesimalLabel::compare(const HexavigesimalLabel& other) const {
return m_hexavigesimal - other.m_hexavigesimal;
}
void HexavigesimalLabel::operator>>(std::ostream& out) const {
out << "(HexavigesimalLabel " << ext::toBase26(m_hexavigesimal) << ")";
}
HexavigesimalLabel::operator std::string() const {
return ext::toBase26(m_hexavigesimal);
HexavigesimalLabel HexavigesimalLabel::parse(std::deque<sax::Token>::iterator& input) {
sax::FromXMLParserHelper::popToken(input, sax::Token::TokenType::START_ELEMENT, HexavigesimalLabel::getXmlTagName());
HexavigesimalLabel data(ext::from_string < int > (sax::FromXMLParserHelper::popTokenData(input, sax::Token::TokenType::CHARACTER)));
sax::FromXMLParserHelper::popToken(input, sax::Token::TokenType::END_ELEMENT, HexavigesimalLabel::getXmlTagName());
return data;
}
void HexavigesimalLabel::compose(std::deque<sax::Token>& out) const {
out.emplace_back(HexavigesimalLabel::getXmlTagName(), sax::Token::TokenType::START_ELEMENT);
out.emplace_back(ext::to_string(m_hexavigesimal), sax::Token::TokenType::CHARACTER);
out.emplace_back(HexavigesimalLabel::getXmlTagName(), sax::Token::TokenType::END_ELEMENT);
auto hexavigesimalLabelType = registration::TypeRegister < label::Label, label::HexavigesimalLabel > ( );
auto hexavigesimalLabelType2 = registration::TypeRegister < alib::Object, label::HexavigesimalLabel > ( );