/*
 * NormalizeRotation.h
 *
 *  Created on: 9. 2. 2014
 *      Author: Jan Travnicek
 */

#ifndef _NORMALIZE_ROTATION_H__
#define _NORMALIZE_ROTATION_H__

#include <core/multipleDispatch.hpp>

#include <string/String.h>
#include <string/StringFeatures.h>

namespace string {

namespace simplify {

class NormalizeRotation : public std::SingleDispatch<NormalizeRotation, string::String, string::StringBase> {
public:
	/**
	 * Performs conversion.
	 * @return left regular grammar equivalent to source automaton.
	 */
	static string::String normalize(const string::String& string);

	static string::CyclicString < > normalize(const string::CyclicString < >& string);
};

} /* namespace simplify */

} /* namespace string */

#endif /* _NORMALIZE_ROTATION_H__ */