|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.ObjectAMETAS.place.AMETASPlaceUser
AMETAS.agentdev.AMETASAgent
AMETAS.event.AMETASNotifiableAgent
Ermöglicht Agenten eine einfache Ereignisverarbeitung. Diese Klasse
stellt eine Standardimplementierung von notifyListener bereit, die eintreffende Events an die Methoden
eines AMETASEventHandler-Objekts weiterleitet. Um all
dies braucht sich der Entwickler nicht mehr zu kümmern. Er muss nur
noch einen eigenen EventHandler von AMETASEventHandler ableiten, in
dem er nur die für ihn relevanten handle-Methoden
überschreibt. Diese werden dann automatisch aufgerufen. Dem
AMETASNotifiableAgent können mit
addEventHandler mehrere EventHandler-Objekte übergeben
werden, die alle notifiziert werden. Wichtig hierbei ist, dass die
handle-Methoden dieser Objekte nacheinander vom gleichen Thread
(Notificator-Thread) aufgerufen werden. Ein EventHandler-Objekt
blockiert also alle weiteren bei der Ausführung seiner
Handler-Methode. Dies sollte jedoch keine Probleme
bereiten, da zum einen ein Agent nicht sehr viele EventHandler
registrieren wird und zum anderen alle aufgerufenen
EventHandler-Objekte unter der Kontrolle dieses einen Agenten
stehen. Er kann also nicht von fremden Objekten blockiert
werden.
| Field Summary |
| Fields inherited from class AMETAS.agentdev.AMETASAgent |
DONT_RELAY, m_bFirstStart, m_Driver, m_sHomePlace |
| Fields inherited from class AMETAS.place.AMETASPlaceUser |
m_drvPU |
| Constructor Summary | |
AMETASNotifiableAgent(AMETASPlaceUserID idNew)
Konstruktor, mit dem eine spezielle ID verliehen wird. |
|
AMETASNotifiableAgent(java.lang.String sName)
Konstruktor, mit dem eine spezielle ID erzeugt wird. |
|
AMETASNotifiableAgent(java.lang.String sName,
java.lang.String sGroup)
Konstruktor, mit dem eine spezielle ID erzeugt wird. |
|
| Method Summary | |
void |
addEventHandler(AMETASEventHandlerIf hnd)
Fügt diesem AMETASNotifiable einen neuen
EventHandler hinzu. |
boolean |
containsHandler(AMETASEventHandlerIf eh)
Prüft nach, ob der übergebene Handler in dem Array aller zur Zeit enthaltenen EventHandler vorkommt. |
AMETASEventHandlerIf[] |
getHandlerList()
Liefert ein Array aller zur Zeit enthaltenen EventHandler zurück. |
void |
notifyListener(AMETASEvent evt)
Eine Standardimplementierung der notifyListener-Methode des Interfaces
AMETASNotifiable. |
void |
removeEventHandler(AMETASEventHandlerIf hnd)
Entfernt einen EventHandler. |
| Methods inherited from class AMETAS.agentdev.AMETASAgent |
firstStart, getDriver, getHomePlace, setDriverIf, setFirstStart, setHomePlace, toString |
| Methods inherited from class AMETAS.place.AMETASPlaceUser |
checkPermission, dispatchMessage, getID, getName, getPUDriverIf, getPULoader, getSignableData, handleApplicationMessage, handleCustomMessage, handleMessageMessage, handlePlaceMessage, handleSecurityMessage, handleServiceMessage, handleTradingMessage, invoke, output, recoverError, specializeTypes, submitMessage |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
public AMETASNotifiableAgent(AMETASPlaceUserID idNew)
idNew - ID des AgentenAMETASPlaceUserID
public AMETASNotifiableAgent(java.lang.String sName,
java.lang.String sGroup)
sName - Name des AgentensGroup - Gruppen-ID des AgentenAMETASPlaceUserIDpublic AMETASNotifiableAgent(java.lang.String sName)
sName - Name des AgentenAMETASPlaceUserID| Method Detail |
public void addEventHandler(AMETASEventHandlerIf hnd)
AMETASNotifiable einen neuen
EventHandler hinzu. Da die Liste der EventHandler eines
Agenten bei einer Migration mitgenommen wird, darf ein
EventHandler nur genau einmal mit dieser Methode hinzugefügt
werden. Dies kann z.B. im Konstruktor des Agenten
erfolgen. Nach einer Migration muß der Agent sich natürlich
wieder neu für die gewünschten Events über seinen Treiber
registrieren!
hnd - EventHandler dieses Agentenpublic void removeEventHandler(AMETASEventHandlerIf hnd)
hnd - Zu entfernender EventHandler dieses Agentenpublic AMETASEventHandlerIf[] getHandlerList()
null wenn keine Handler existieren.public boolean containsHandler(AMETASEventHandlerIf eh)
true falls der übergebene Handler in dem
Array aller zur Zeit enthaltenen EventHandler vorkommt, sonst
false.public void notifyListener(AMETASEvent evt)
notifyListener-Methode des Interfaces
AMETASNotifiable. Sie ruft die
handleEvent-Methoden des eingesetzten
EventHandlers auf.
notifyListener in interface AMETASNotifiableevt - Übergebenes Ereignis.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||