package org.wcs.model.bo.db;

/**
 * 数据库操作结果
 */
public class DataBaseActionIntResult {

    /**
     * 影响的数据行
     */
    private final int result;

    /**
     * 异常
     */
    private final Exception exception;

    /**
     * 创建一个空结果，禁止普通初始化
     */
    private DataBaseActionIntResult() {
        this.result = 0;
        this.exception = null;
    }

    /**
     * 创建一个成功结果
     * @param result 结果
     */
    public DataBaseActionIntResult(int result) {
        this.result = result;
        this.exception = null;
    }

    /**
     * 创建一个失败结果
     * @param exception 异常
     */
    public DataBaseActionIntResult(Exception exception) {
        this.result = 0;
        this.exception = exception;
    }

    /**
     * 创建一个结果
     * @param result 结果
     * @param exception 异常
     */
    public DataBaseActionIntResult(int result, Exception exception) {
        this.result = result;
        this.exception = exception;
    }

    /**
     * 获取结果
     * @return 数据
     */
    public int result() {
        return result;
    }

    /**
     * 获取异常
     * @return 异常
     */
    public Exception exception() {
        return exception;
    }

    /**
     * 抛出异常
     * @throws Exception 异常
     */
    public void throwException() throws Exception {
        if (exception != null) {
            throw exception;
        }
    }
}
