/*
 * @(#)UserService.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.3 $ $Date: 2006/03/09 14:43:01 $
 */
public interface UserService extends Remote {

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

	/**
	 * ユーザ追加。
	 * 
	 * @param userName ユーザ名
	 * @param relationId ユーザと紐づくID
	 * @return boolean true：追加成功／false：追加失敗
	 * @throws RemoteException
	 */
	public boolean add(String userName, String relationId) throws RemoteException;

	/**
	 * ユーザ削除。
	 * 
	 * @param userName ユーザ名
	 * @return boolean true：削除成功／false：削除失敗
	 * @throws RemoteException
	 */
	public boolean remove(String userName) throws RemoteException;

	/**
	 * ユーザに紐づく管理用IDでユーザを削除。
	 * 
	 * @param relationId ユーザに紐づくID
	 * @return boolean true：削除成功／false：削除失敗
	 * @throws RemoteException
	 */
	public boolean removeByRelationId(String relationId) throws RemoteException;

	/**
	 * ユーザ管理マップ取得。
	 * 
	 * @return Map<String, String> ユーザ管理マップ（key:ユーザ名、value:関連するID）
	 * @throws RemoteException
	 */
	public Map<String, String> get() throws RemoteException;

	/**
	 * ユーザ一覧設定。
	 * 
	 * @param users ユーザ管理マップ（key:ユーザ名、value:関連するID）
	 * @throws RemoteException
	 */
	public void set(Map<String, String> users) throws RemoteException;

}
