/*
 * @(#)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";

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

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

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

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

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

	/**
	 * アサーションマップとアサーションハンドルマップを設定。
	 * 
	 * @param assertionMap アサーションマップ
	 * @param handleMap アサーションハンドルマップ
	 * @throws RemoteException
	 */
	public void setMap(Map<String, String> assertionMap, Map<String, String> handleMap) throws RemoteException;

}
