ix.ispace
Class ContactManager

java.lang.Object
  |
  +--ix.ispace.ContactManager

public class ContactManager
extends java.lang.Object

Keeps track of known relationships between agents and agent capabilities.


Field Summary
protected  java.util.List agentData
           
protected  java.util.List groups
           
protected  java.util.List listeners
           
protected  java.util.Map nameToGroup
           
protected  MultiMap relMap
           
 
Constructor Summary
ContactManager()
           
 
Method Summary
 void addAgent(java.lang.String name)
           
 void addAgent(java.lang.String name, AgentRelationship rel)
           
 void addAgentGroup(AgentGroup group)
           
 void addAgents(java.util.List names, AgentRelationship rel)
           
 void addContactListener(ix.ispace.event.ContactListener listener)
           
protected  void addStandardAgentGroups()
           
 void changeRelationship(java.lang.String name, AgentRelationship newRel)
           
 void deleteAgent(java.lang.String name)
           
 void fireContactChange(AgentData oldData, AgentData newData)
           
 void fireContactDeleted(AgentData data)
           
 void fireContactEvent(ix.ispace.event.ContactEvent event)
           
 void fireNewContact(AgentData data)
           
 java.util.List getAgentData()
           
 java.util.List getAgentData(AgentRelationship rel)
           
 java.util.List getAgentData(Capability c)
           
 AgentData getAgentData(java.lang.String name)
           
 AgentGroup getAgentGroup(java.lang.String name)
           
 java.util.Collection getAgentGroups()
           
 java.util.List getSortedNameList()
           
 void noteAgent(java.lang.String name)
          Record the agent as a contact if it is not already known.
 void noteAgent(java.lang.String name, AgentRelationship assumedRel)
           
 void processCommandLineArguments()
          Process command-line arguments that are about our relationships with other agents.
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

listeners

protected java.util.List listeners

agentData

protected java.util.List agentData

relMap

protected MultiMap relMap

groups

protected java.util.List groups

nameToGroup

protected java.util.Map nameToGroup
Constructor Detail

ContactManager

public ContactManager()
Method Detail

addAgent

public void addAgent(java.lang.String name)

addAgent

public void addAgent(java.lang.String name,
                     AgentRelationship rel)

addAgents

public void addAgents(java.util.List names,
                      AgentRelationship rel)

noteAgent

public void noteAgent(java.lang.String name)
Record the agent as a contact if it is not already known. This makes it easier to reply to agents that have sent things to us, e.g. by putting their name in menus of agents that might be sent to.

noteAgent

public void noteAgent(java.lang.String name,
                      AgentRelationship assumedRel)

changeRelationship

public void changeRelationship(java.lang.String name,
                               AgentRelationship newRel)

deleteAgent

public void deleteAgent(java.lang.String name)

getAgentData

public java.util.List getAgentData()

getAgentData

public AgentData getAgentData(java.lang.String name)

getAgentData

public java.util.List getAgentData(AgentRelationship rel)

getAgentData

public java.util.List getAgentData(Capability c)

getSortedNameList

public java.util.List getSortedNameList()

getAgentGroups

public java.util.Collection getAgentGroups()

getAgentGroup

public AgentGroup getAgentGroup(java.lang.String name)

addAgentGroup

public void addAgentGroup(AgentGroup group)

addStandardAgentGroups

protected void addStandardAgentGroups()

processCommandLineArguments

public void processCommandLineArguments()
Process command-line arguments that are about our relationships with other agents.

For each AgentRelationship, R, R+"s" is treated as a parameter whose value should be a comma-separated list of names.

Simple capabilities can be given by

    -external-capabilities=ipcName:verb, ...
 
See Also:
AgentRelationship

addContactListener

public void addContactListener(ix.ispace.event.ContactListener listener)

fireNewContact

public void fireNewContact(AgentData data)

fireContactDeleted

public void fireContactDeleted(AgentData data)

fireContactChange

public void fireContactChange(AgentData oldData,
                              AgentData newData)

fireContactEvent

public void fireContactEvent(ix.ispace.event.ContactEvent event)