package aalg.algebra;

/**
 * Transformation of elements between two algebraic structures.
 * @author Ing. Petr Ležák
 *
 * @param <I> input algebraic structure
 * @param <O> output algebraic structure
 */
public interface IAlgebraicStructureTransformation<I extends IElement, O extends IElement> {
	/**
	 * Transforms element between source and target algebraic structure.
	 * @param element source element
	 * @return target element
	 */
	public O transformElement (final I element) throws TransformationException;
}
