org.robokind.api.messaging
Class DefaultMessageSender<Msg,Rec>

java.lang.Object
  extended by org.robokind.api.messaging.DefaultMessageSender<Msg,Rec>
Type Parameters:
Msg - type of Message capable of sending
Rec - type of Record which is sent
All Implemented Interfaces:
org.jflux.api.core.Listener<Msg>, org.jflux.api.core.Notifier<Msg>, MessageSender<Msg>

public class DefaultMessageSender<Msg,Rec>
extends Object
implements MessageSender<Msg>

Default MessageSender implementation. Uses an Adapter to serialize a Message to a Record. The Record is sent with a RecordSender.

Author:
Matthew Stevenson

Field Summary
protected  RecordSender<Rec> myRecordSender
          RecordSender used to send Records.
 
Constructor Summary
DefaultMessageSender()
          Creates an empty DefaultMessageSender.
 
Method Summary
 void addListener(org.jflux.api.core.Listener<Msg> listener)
          Adds a Listener to be notified when a Message has been sent.
protected  void fireMessageEvent(Msg message)
          Notifies listeners of a Message being sent.
protected  Rec getRecord(Msg message)
          Adapts a Message to a Record using an Adapter
 void handleEvent(Msg event)
           
 void notifyListeners(Msg message)
          Sends the given Message.
 void removeListener(org.jflux.api.core.Listener<Msg> listener)
          Removes a Listener from being notified.
 void setAdapter(org.jflux.api.core.Adapter<Msg,Rec> adapter)
          Sets the Adapter for serializing Messages to Records.
 void setRecordSender(RecordSender<Rec> sender)
          Sets the underlying RecordSender to send the serialized Records.
 void start()
          Initializes and connects the MessageSender, making it ready to send Messages.
 void stop()
          Stops the MessageSender, making it unable to send Messages.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

myRecordSender

protected RecordSender<Rec> myRecordSender
RecordSender used to send Records. This is set using the setRecordSender method.

Constructor Detail

DefaultMessageSender

public DefaultMessageSender()
Creates an empty DefaultMessageSender.

Method Detail

setRecordSender

public void setRecordSender(RecordSender<Rec> sender)
Sets the underlying RecordSender to send the serialized Records.

Parameters:
sender - RecordSender to set

setAdapter

public void setAdapter(org.jflux.api.core.Adapter<Msg,Rec> adapter)
Sets the Adapter for serializing Messages to Records.

Parameters:
adapter - Adapter to set

start

public void start()
           throws Exception
Description copied from interface: MessageSender
Initializes and connects the MessageSender, making it ready to send Messages.

Specified by:
start in interface MessageSender<Msg>
Throws:
Exception - if there is an error starting

stop

public void stop()
Description copied from interface: MessageSender
Stops the MessageSender, making it unable to send Messages.

Specified by:
stop in interface MessageSender<Msg>

notifyListeners

public void notifyListeners(Msg message)
Description copied from interface: MessageSender
Sends the given Message.

Specified by:
notifyListeners in interface org.jflux.api.core.Notifier<Msg>
Specified by:
notifyListeners in interface MessageSender<Msg>
Parameters:
message - the Message to send

getRecord

protected Rec getRecord(Msg message)
Adapts a Message to a Record using an Adapter

Parameters:
message - Message to adapt
Returns:
Record created from the message

fireMessageEvent

protected void fireMessageEvent(Msg message)
Notifies listeners of a Message being sent.

Parameters:
message - Message being sent

addListener

public void addListener(org.jflux.api.core.Listener<Msg> listener)
Description copied from interface: MessageSender
Adds a Listener to be notified when a Message has been sent.

Specified by:
addListener in interface org.jflux.api.core.Notifier<Msg>
Specified by:
addListener in interface MessageSender<Msg>
Parameters:
listener - the Listener to be notified

removeListener

public void removeListener(org.jflux.api.core.Listener<Msg> listener)
Description copied from interface: MessageSender
Removes a Listener from being notified.

Specified by:
removeListener in interface org.jflux.api.core.Notifier<Msg>
Specified by:
removeListener in interface MessageSender<Msg>
Parameters:
listener - the Listener to remove

handleEvent

public void handleEvent(Msg event)
Specified by:
handleEvent in interface org.jflux.api.core.Listener<Msg>


Copyright © 2011-2013. All Rights Reserved.