Wednesday, September 25, 2013

YO YO - P40's

package org.nanotek.cms.domain;

public interface Transformer<I, O> {

    /**
     * Transforms the input object (leaving it unchanged) into some output object.
     * The Transformation is also altered by a initial impulse that "can be measured as           the 'same type' but is not an obrigation can be derived classes or a super class. "
     * the event that will be produced in the output.
     * @param input  the object to be transformed, should be left unchanged
     * @return a transformed object
     * @throws ClassCastException (runtime) if the input is the wrong class
     * @throws IllegalArgumentException (runtime) if the input is invalid
     * @throws FunctorException (runtime) if the transform cannot be completed
     */
    public O transform(I input , O impulse);

}