/**
  * File: 		MapStringSet.java
  * Content: 	part of the RMI specification of sensei gmns
  * Author: 	LuisM Pena
  * Date: 		1st December 2001
  * Version:  0.29.00
  * Last change:
  *
  **/


package sensei.middleware.gmns;

import sensei.middleware.domains.ExtendedCheckpointable;
import sensei.middleware.domains.MemberStateException;

import java.rmi.Remote;
import java.rmi.RemoteException;

public interface MapStringSet extends ExtendedCheckpointable, MapStringSetObservable, Remote
{
  /**
   * Associates the specified value with the specified key in this map.
   * If the map previously contained a mapping for this key, the old value is replaced
   */
  public SetMemberInfo put(String groupName, SetMemberInfo set)
    throws InvalidSetMemberInfo, MemberStateException, RemoteException;

  /**
    * Removes the specified element from this set if it is present.
    * @returns previous value associated with specified key, or null if there was no mapping for key
    **/
  public SetMemberInfo remove(String groupName) throws MemberStateException, RemoteException;

  /**
    * Returns the associated value, given the key
    **/
  public SetMemberInfo get(String groupName) throws MemberStateException, RemoteException;

  /**
   * Returns the keys of the set
   */
  public String[] getKeys() throws MemberStateException, RemoteException;
}