package de.uka.ipd.consensus.foundation.user;

import java.io.Serializable;

/**
 * This interface represents a role (for example, the admin role) that is managed by the UserManager and that can be assigned to users.
 * @author Thomas Much
 * @version 2006-06-14
 * @see UserManager
 * @see de.uka.ipd.consensus.foundation.schema.User
 */
public interface UserRole extends Serializable {

	/**
	 * Returns the unique rolename, e.g. "admin".
	 * @return the name of the role
	 */
	public String getRolename();
	
	
	/**
	 * Returns a short human-readable description of the role.
	 * @return a short description of the role
	 */
	public String getDescription();


	/**
	 * Returns the UserManager that manages the roles.
	 * @return the UserManager instance
	 */
	public UserManager getUserManager();

}
