/*
 * Copyright (C) 2005 NTT DATA Corporation
 * 
 */
package org.postgresforest.tool.util;

import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.QualifiedName;

/**
 * セッション･プロパティクラス
 * 
 */
public class SessionProperty {
	private static final String FOREST_TOOL = "org.postgresforest.tool";
	
	/**
	 * セッション･プロパティ取得処理
	 * 
	 * セッション･プロパティにオブジェクトを取得する。
	 * 
	 * @param keyName プロパティのキー名
	 * @return	Object
	 */
	static public Object get(String keyName){
		Object obj = null;

		//セッション･プロパティにオブジェクトを取得する
		QualifiedName key = new QualifiedName(FOREST_TOOL, keyName);
		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
		try {
			obj = root.getSessionProperty(key);
		} catch (CoreException e) {
			e.printStackTrace();
			return null;
		}
		return obj;
	}

	/**
	 * セッション･プロパティ設定処理
	 * 
	 * セッション･プロパティからオブジェクトを設定する
	 * 
	 * @param keyName プロパティのキー名
	 * @param obj 設定するオブジェクト
	 * @return	true:設定成功.false:設定失敗
	 */
	static public boolean set(String keyName, Object obj){

		//セッション･プロパティからオブジェクトを取得する
		QualifiedName key = new QualifiedName(FOREST_TOOL, keyName);
		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
		try {
			root.setSessionProperty(key, obj);
		} catch (CoreException e) {
			e.printStackTrace();
			return false;
		}
		return true;
	}
}
