Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
Registry.cpp 3.28 KiB
/*
 * Registry.cpp
 *
 *  Created on: 10. 7. 2017
 *	  Author: Jan Travnicek
 */

#include <abstraction/Registry.h>

#include <abstraction/AlgorithmRegistry.hpp>
#include <abstraction/ImmediateRegistry.hpp>
#include <abstraction/XmlParserRegistry.hpp>
#include <abstraction/XmlFileWriterRegistry.hpp>
#include <abstraction/ValuePrinterRegistry.hpp>
#include <abstraction/CastRegistry.hpp>
#include <abstraction/NormalizeRegistry.hpp>
#include <abstraction/DowncastRegistry.hpp>

namespace abstraction {

void Registry::listAlgorithmGroup ( const std::string & group ) {
	AlgorithmRegistry::listGroup ( group );
}

void Registry::listAlgorithmOverloads ( const std::string & algorithm ) {
	AlgorithmRegistry::listOverloads ( algorithm );
}

void Registry::listAlgorithms ( ) {
	AlgorithmRegistry::list ( );
}

void Registry::listDataTypes ( ) {
	XmlFileWriterRegistry::list ( );
}

void Registry::listDataTypeGroup ( const std::string & group ) {
	XmlFileWriterRegistry::listGroup ( group );
}

void Registry::listCastsFrom ( const std::string & type ) {
	CastRegistry::listFrom ( type );
}

void Registry::listCastsTo ( const std::string & type ) {
	CastRegistry::listTo ( type );
}

std::shared_ptr < abstraction::OperationAbstraction > Registry::getAlgorithmAbstraction ( const std::string & name, const ext::vector < std::string > & paramTypes ) {
	return AlgorithmRegistry::getAbstraction ( name, paramTypes );
}

std::shared_ptr < abstraction::OperationAbstraction > Registry::getAlgorithmAbstraction ( const std::string & name, const ext::vector < std::string > & paramTypes, bool & unwrap, bool & normalize ) {
	return AlgorithmRegistry::getAbstraction ( name, paramTypes, unwrap, normalize );
}

std::shared_ptr < abstraction::OperationAbstraction > Registry::getCastAbstraction ( const std::string & target, const std::string & param, bool & normalize ) {
	return CastRegistry::getAbstraction ( target, param, normalize );
}

bool Registry::isCastNoOp ( const std::string & target, const std::string & param ) {
	return CastRegistry::isNoOp ( target, param );
}

std::shared_ptr < abstraction::OperationAbstraction > Registry::getImmediateAbstraction ( const std::string & result, std::string value ) {
	return ImmediateRegistry::getAbstraction ( result, std::move ( value ) );
}

std::shared_ptr < abstraction::OperationAbstraction > Registry::getNormalizeAbstraction ( const std::string & param ) {
	return NormalizeRegistry::getAbstraction ( param );
}

std::shared_ptr < abstraction::OperationAbstraction > Registry::getDowncastAbstraction ( const std::string & concrete, const std::string & base ) {
	return DowncastRegistry::getAbstraction ( concrete, base );
}

std::shared_ptr < abstraction::OperationAbstraction > Registry::getValuePrinterAbstraction ( const std::string & param ) {
	return ValuePrinterRegistry::getAbstraction ( param );
}

std::shared_ptr < abstraction::OperationAbstraction > Registry::getXmlFileWriterAbstraction ( const std::string & param, std::string filename ) {
	return XmlFileWriterRegistry::getAbstraction ( param, std::move ( filename ) );
}

std::shared_ptr < abstraction::OperationAbstraction > Registry::getXmlParserAbstraction ( const std::string & typeName, ext::deque < sax::Token > tokens ) {
	return XmlParserRegistry::getAbstraction ( typeName, std::move ( tokens ) );
}

} /* namespace abstraction */