fr.lip6.sma.simulacion.server
Class AgentListManagerImpl

java.lang.Object
  extended by fr.lip6.sma.simulacion.server.AgentListManagerImpl
All Implemented Interfaces:
AgentListManager
Direct Known Subclasses:
HTTPAgentListManager, MDXRAgentListManager

public abstract class AgentListManagerImpl
extends Object
implements AgentListManager

Classe de base pour le gestionnaire sur la liste des agents.

Version:
$Revision: 3 $
Author:
Paul Guyot
See Also:
"aucun test défini."

Field Summary
private  Map mAgentList
          Liste des agents (y compris l'agent local).
private  Set mClients
          Ensemble des clients de cette liste à prévenir en cas de: - succès ou d'échec d'enregistrement - modification de la liste
private  Collection mPlayerClasses
          Liste des classes des joueurs.
 
Constructor Summary
AgentListManagerImpl(Collection inPlayerClasses)
          Constructeur à partir de la classe des joueurs.
 
Method Summary
 void addListener(AgentListClient inClient)
          Ajoute un client dans la liste des clients.
 Agent getAgent(String inAgentClass, String inAgentName)
          Accesseur sur un agent.
 Agent getAgentByName(String inAgentName)
          Accesseur sur un agent à partir de son nom seul.
protected  Map getAgentList()
          Accesseur sur la liste des agents.
 Set getAgentSet()
          Accesseur sur l'ensemble des agents sur le réseau.
protected  boolean isPlayerClass(String inClass)
          Détermine si une classe donnée est une des classes des joueurs.
abstract  void registerLocalAgent(LocalAgent inLocalAgent)
          Enregistre un agent local sur le réseau.
 void removeListener(AgentListClient inClient)
          Supprime un client de la liste des clients.
protected  void tellClientsThatListChanged()
          Indique aux clients que la liste a changé.
protected  void tellClientsThatRegistrationFailed(LocalAgent inLocalAgent)
          Indique aux clients que l'enregistrement a ÈchouÈ.
protected  void tellClientsThatRegistrationSucceeded(LocalAgent inLocalAgent)
          Indique aux clients que l'enregistrement a rÈussi.
abstract  void unregisterLocalAgent(LocalAgent inLocalAgent)
          Désenregistre un agent local du réseau.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

mAgentList

private final Map mAgentList
Liste des agents (y compris l'agent local). Les clés sont les noms des agents (classe + : + nom). Les éléments sont des objets de l'interface Agent.


mClients

private final Set mClients
Ensemble des clients de cette liste à prévenir en cas de: - succès ou d'échec d'enregistrement - modification de la liste


mPlayerClasses

private final Collection mPlayerClasses
Liste des classes des joueurs.

Constructor Detail

AgentListManagerImpl

public AgentListManagerImpl(Collection inPlayerClasses)
Constructeur à partir de la classe des joueurs.

Parameters:
inPlayerClasses - classes des joueurs.
Method Detail

getAgentSet

public final Set getAgentSet()
Accesseur sur l'ensemble des agents sur le réseau.

Specified by:
getAgentSet in interface AgentListManager
Returns:
une copie de l'ensemble des agents sur le réseau

getAgent

public final Agent getAgent(String inAgentClass,
                            String inAgentName)
Accesseur sur un agent.

Specified by:
getAgent in interface AgentListManager
Parameters:
inAgentClass - classe de l'agent
inAgentName - nom de l'agent
Returns:
l'agent ou null si l'agent n'a pu être trouvé.

getAgentByName

public final Agent getAgentByName(String inAgentName)
Accesseur sur un agent à partir de son nom seul.

Specified by:
getAgentByName in interface AgentListManager
Parameters:
inAgentName - nom de l'agent
Returns:
l'agent ou null si l'agent n'a pu être trouvé.

addListener

public final void addListener(AgentListClient inClient)
Ajoute un client dans la liste des clients.

Specified by:
addListener in interface AgentListManager
Parameters:
inClient - client à ajouter

removeListener

public final void removeListener(AgentListClient inClient)
Supprime un client de la liste des clients.

Specified by:
removeListener in interface AgentListManager
Parameters:
inClient - client à supprimer

registerLocalAgent

public abstract void registerLocalAgent(LocalAgent inLocalAgent)
Enregistre un agent local sur le réseau.

Specified by:
registerLocalAgent in interface AgentListManager
Parameters:
inLocalAgent - agent local à enregistrer sur le réseau

unregisterLocalAgent

public abstract void unregisterLocalAgent(LocalAgent inLocalAgent)
Désenregistre un agent local du réseau.

Specified by:
unregisterLocalAgent in interface AgentListManager
Parameters:
inLocalAgent - agent local à désenregistrer du réseau

getAgentList

protected Map getAgentList()
Accesseur sur la liste des agents. Les clés sont de la forme Nom:Classe. Les valeurs sont des éléments de l'interface Agent.

Returns:
la liste des agents.
See Also:
mAgentList

tellClientsThatRegistrationSucceeded

protected final void tellClientsThatRegistrationSucceeded(LocalAgent inLocalAgent)
Indique aux clients que l'enregistrement a rÈussi.

Parameters:
inLocalAgent - agent local qui a ÈtÈ correctement enregistrÈ.

tellClientsThatRegistrationFailed

protected final void tellClientsThatRegistrationFailed(LocalAgent inLocalAgent)
Indique aux clients que l'enregistrement a ÈchouÈ.

Parameters:
inLocalAgent - agent local qui n'a pas ÈtÈ enregistrÈ.

tellClientsThatListChanged

protected final void tellClientsThatListChanged()
Indique aux clients que la liste a changé.


isPlayerClass

protected final boolean isPlayerClass(String inClass)
Détermine si une classe donnée est une des classes des joueurs.

Parameters:
inClass - classe à tester.
Returns:
true si inClass est une des classes des joueurs.