/*
 * RankedTree.cpp
 *
 *  Created on: Nov 23, 2013
 *      Author: Stepan Plachy
 */

#include "RankedTree.h"
#include <tree/Tree.h>
#include <tree/RankedTreeWrapper.h>
#include <object/Object.h>

#include <registration/ValuePrinterRegistration.hpp>
#include <registration/XmlRegistration.hpp>
#include <registration/CastRegistration.hpp>
#include <registration/ComponentRegistration.hpp>

namespace {

static auto components = registration::ComponentRegister < tree::RankedTree < > > ( );

static auto valuePrinter = registration::ValuePrinterRegister < tree::RankedTree < > > ( );

static auto xmlWrite = registration::XmlWriterRegister < tree::RankedTree < > > ( );
static auto xmlRead = registration::XmlReaderRegister < tree::RankedTree < > > ( );

static auto xmlGroup1 = registration::XmlRegisterTypeInGroup < tree::Tree, tree::RankedTree < > > ( );
static auto xmlGroup2 = registration::XmlRegisterTypeInGroup < tree::RankedTreeWrapper, tree::RankedTree < > > ( );
static auto xmlGroup3 = registration::XmlRegisterTypeInGroup < alib::Object, tree::RankedTree < > > ( );

static auto RankedTreeFromUnrankedTree = registration::CastRegister < tree::RankedTree < >, tree::UnrankedTree < > > ( );
static auto RankedTreeFromPostfixRankedTree = registration::CastRegister < tree::RankedTree < >, tree::PostfixRankedTree < > > ( );

} /* namespace */