package org.itscool.commons.pool;

/**
 * ObjectPoolにセットされるオブジェクトラップクラスです
 * @author kanoum
*/
public class ObjectPoolElement {
    /**
     * ObjectPoolにセットされるオブジェクトの本体
     */
    private Object object;
    /**
     * このオブジェクトがObjectPoolから取得（使用）中であるかを判定する為のフラグ
     */
    private boolean use;
    /**
     * エレメントにセットされているオブジェクトを取得します
     * @return エレメントにセットされているオブジェクト
     */
    public Object getObject() {
        return object;
    }

    /**
     * このオブジェクトがObjectPoolから取得（使用）中であるかを判定します
     * @return このオブジェクトが使用中の場合はtrueを返します
     */
    public boolean isUse() {
        return use;
    }

    /**
     * ObjectPoolにオブジェクトの本体をセットします
     * @param object ObjectPoolにセットするオブジェクトの本体
     */
    public void setObject(Object object) {
        this.object = object;
    }

    /**
     * このオブジェクトがObjectPoolから取得（使用）中/未使用をセットします
     * @param b このオブジェクトを使用するときはtrueをセットします
     */
    public void setUse(boolean b) {
        use = b;
    }

}
