/*
 * MockDataAccessContextThrowException.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;
import jp.co.cybec.cb3.exception.AccessorUnknownException;


/**
 * データアクセスコンテキストのモック。
 * @author Naoko Sugimoto
 */
public class MockDataAccessContextThrowException implements DataAccessContext, DataAccessContextLifeCycle {

	/** テストで発生させる例外 */
	private RuntimeException exception = new AccessorUnknownException("例外のテストです。");

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

	/**
	 * データアクセッサを返します。
	 * このモックでは、常に例外を発生させます。
	 * @param beanId データアクセッサのbean id。
	 * @return データアクセッサ。
	 */
	public Accessor lookup(String beanId) {
		throw exception;
	}

	/**
	 * データアクセスコンテキストの終了処理です。
	 * このモックでは、常に例外を発生させます。
	 */
	public void release() {
		throw exception;
	}

	/**
	 * テストで発生させる例外を設定します。
	 * @param e 例外
	 */
	public void setException(RuntimeException e) {
		exception = e;
	}

}
