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:
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 addMessageListener(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 removeMessageListener(Listener<Msg> listener)
          Removes a Listener from being notified.
 void sendMessage(Msg message)
          Sends the given Message.
 void setAdapter(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(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>

sendMessage

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

Specified by:
sendMessage 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

addMessageListener

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

Specified by:
addMessageListener in interface MessageSender<Msg>
Parameters:
listener - the Listener to be notified

removeMessageListener

public void removeMessageListener(Listener<Msg> listener)
Description copied from interface: MessageSender
Removes a Listener from being notified.

Specified by:
removeMessageListener in interface MessageSender<Msg>
Parameters:
listener - the Listener to remove


Copyright © 2011-2012. All Rights Reserved.