class ComputationExceptionBuilder {

    public ComputationException build() {
        ComputationException exception;
        if (message != null && cause != null) {
            exception = new ComputationException(message, cause, outMsgByLogFileName, errMsgByLogFileName, bytesByFileName);
        } else if (message != null) {
            exception = new ComputationException(message, outMsgByLogFileName, errMsgByLogFileName, bytesByFileName);
        } else if (cause != null) {
            exception = new ComputationException(cause, outMsgByLogFileName, errMsgByLogFileName, bytesByFileName);
        } else {
            exception = new ComputationException(outMsgByLogFileName, errMsgByLogFileName, bytesByFileName);
        }
        return exception;
    }

    public  ComputationExceptionBuilder();
    public  ComputationExceptionBuilder(Throwable cause);

}