/*
 * @(#)AssertionService.java
 *
 * Copyright 2006 Sony Corporation
 */
package info.dragonlady.cluster;

import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.Map;


/**
 * アサーション情報操作インターフェース。
 * 
 * @author Hiroshi.Ebata(INFOCITY)
 * @version $Revision: 1.2 $ $Date: 2006/03/09 14:43:01 $
 */
public interface AssertionService extends Remote {

	/**
	 * サービス名定数。
	 */
	public static final String SERVICE_NAME = "AssertionService";

	/**
	 * 指定ID、アサーションハンドル、アサーションのマッピングを設定。
	 * 
	 * @param id ID
	 * @param handle アサーションハンドル
	 * @param assertion アサーション
	 * @throws RemoteException
	 */
	public void put(String id, String handle, String assertion) throws RemoteException;

	/**
	 * 指定ハンドルをキーとするアサーション、アサーションハンドルのマッピングを削除。
	 * 
	 * @param handle アサーションハンドル
	 * @throws RemoteException
	 */
	public void removeByHandle(byte[] handle) throws RemoteException;

	/**
	 * 指定IDをキーとするアサーション、アサーションハンドルのマッピングを削除。
	 * 
	 * @param id ID
	 * @throws RemoteException
	 */
	public void removeById(String id) throws RemoteException;

	/**
	 * アサーションマップ取得。
	 * 
	 * @return Map アサーションマップ
	 * @throws RemoteException
	 */
	public Map getAssertionMap() throws RemoteException;

	/**
	 * アサーションハンドルマップ取得。
	 * 
	 * @return Map アサーションハンドルマップ
	 * @throws RemoteException
	 */
	public Map getHandleMap() throws RemoteException;

	/**
	 * アサーションマップ設定。
	 * 
	 * @param assertionMap アサーションマップ
	 * @throws RemoteException
	 */
	public void setAssertionMap(Map assertionMap) throws RemoteException;

	/**
	 * アサーションハンドルマップ設定。
	 * 
	 * @param handleMap アサーションハンドルマップ
	 * @throws RemoteException
	 */
	public void setHandleMap(Map handleMap) throws RemoteException;

}
