/*
 * MockDataAccessContext.java
 * Copyright (C) 2008 Cyber Beans Corporation. All rights reserved.
 */
package jp.co.cybec.cb3.mock.accessor;

import java.util.Map;

import jp.co.cybec.cb3.accessor.Accessor;
import jp.co.cybec.cb3.accessor.DataAccessContext;
import jp.co.cybec.cb3.accessor.DataAccessContextLifeCycle;


/**
 * データアクセスコンテキストのモック。
 * @author Naoko Sugimoto
 */
public class MockDataAccessContext implements DataAccessContext, DataAccessContextLifeCycle {
	/** 終了処理が呼ばれているかどうか */
	private boolean released = false;

	/** データアクセッサ */
	private Map<String, Accessor> dataAccessors;

	/**
	 * コンストラクタ。
	 * データアクセッサを初期化します。
	 * @param dataAccessors データアクセッサと、キー（＝設定ファイル名）を組み合わせたMap。
	 */
	public MockDataAccessContext(Map<String, Accessor> dataAccessors) {
		this.dataAccessors = dataAccessors;
	}

	/**
	 * データアクセッサを返します。
	 * @param beanId データアクセッサのbean id。
	 * @return データアクセッサ。
	 */
	public Accessor lookup(String beanId) {
		return dataAccessors.get(beanId);
	}

	/**
	 * データアクセスコンテキストの終了処理です。
	 */
	public void release() {
		released = true;
	}

	/**
	 * 終了処理が呼ばれているかどうかを判定します。
	 * @return 終了処理が呼ばれている場合はtrue、呼ばれていない場合はfalseを返す。
	 */
	public boolean isReleased() {
		return released;
	}
}
