/*
 * LOGICAL-PARADOX.ORG
 * Copyright (C)2005 satoshi akabane(akabane@logical-paradox.org)
 * $Id: NodeContext.java,v 1.3 2005/09/28 16:14:29 rampil Exp $
 */
package org.logical_paradox.vsan.dac;

import org.logical_paradox.vsan.node.Database;

/**
 * このアレイノードのコンテキスト
 * @author satoshi akabane@logical-paradox.org
 * @version $Revision: 1.3 $
 */
public class NodeContext {
	/** ノードID */
	private final String nodeId;
	/** DACのコンフィグレーション */
	private DacConfig config;
	/** データベース */
	private Database database;
	/** ドメインに参加しているか */
	private boolean joined = false;

	/**
	 * コンストラクタ
	 * @param config_ コンフィグ
	 */
	public NodeContext(DacConfig config_) {
		config = config_;
		nodeId = config.getNodeId();
	}
	/**
	 * ドメインへの参加状態を設定する．
	 * @param b true:参加している / false:参加していない
	 */
	public void join(boolean b) {
		joined = b;
	}
	/**
	 * ドメインへの参加状態を返す．
	 * @return true:参加している / false:参加していない
	 */
	public boolean isJoined() {
		return joined;
	}
	/**
	 * データベースを設定する
	 * @param db データベース
	 */
	public void setDatabase(Database db) {
		database = db;
	}
	/**
	 * コンフィグレーションを設定する
	 * @param config_ コンフィグレーション
	 */
	public void setConfig(DacConfig config_) {
		config = config_;
	}
	/**
	 * ノードIDを返す
	 * @return ノードID
	 */
	public String getNodeId() {
		return nodeId;
	}
	/**
	 * コンフィグレーションを返す
	 * @return コンフィグレーション
	 */
	public DacConfig getConfig() {
		return config;
	}
	/**
	 * データベースを返す
	 * @return データベース
	 */
	public Database getDatabase() {
		return database;
	}
}
