class MediatorConfigurationSupport {

    public ValidationOutput validate(Shape shape, Acknowledgment.Strategy acknowledgment) {
        switch (shape) {
            case SUBSCRIBER:
                return validateSubscriber();
            case PUBLISHER:
                return validatePublisher();
            case PROCESSOR:
                return validateProcessor(acknowledgment);
            case STREAM_TRANSFORMER:
                return validateStreamTransformer(acknowledgment);
            default:
                throw ex.illegalStateExceptionForValidate(shape);
        }
    }

    public  MediatorConfigurationSupport(String methodAsString, Class<?> returnType, Class<?>[] parameterTypes,
            GenericTypeAssignable returnTypeAssignable, GenericTypeAssignable firstMethodParamTypeAssignable);

}