Class Blender

java.lang.Object
net.messagevortex.AbstractDaemon
net.messagevortex.blender.Blender
All Implemented Interfaces:
BlendingSender, RunningDaemon, TransportReceiver
Direct Known Subclasses:
DummyBlender, F5Blender, InitialRecipesBlender, SmtpBlender

public abstract class Blender extends AbstractDaemon implements TransportReceiver, BlendingSender
Interface specifying a blender.
  • Constructor Details

  • Method Details

    • setIncomingMessageListener

      public IncomingMessageRouterListener setIncomingMessageListener(IncomingMessageRouterListener listener)

      Sets the listener for incoming messages to the router listener.

      Parameters:
      listener - the listening router layer
      Returns:
      the previously set listener
    • getVerifier

      public final HeaderVerifier getVerifier()
    • setVerifier

      public final HeaderVerifier setVerifier(HeaderVerifier verifier)

      Sets the header verifier of the accounting layer.

      Parameters:
      verifier - the header verifier which is called upon incomming messages
      Returns:
      the previously set verifier
    • setBlenderReceiver

      public final BlendingReceiver setBlenderReceiver(BlendingReceiver receiver)

      Sets the listening router layer.

      All future messages successfully extracted and authorized by the header verifyer are passed to this object.

      Parameters:
      receiver - The listening router layer
      Returns:
      The old/previous router layer
    • setTransportSender

      public final TransportSender setTransportSender(TransportSender sender)

      Sets the transport sending layer.

      All future messages successfully blended are passed to this object.

      Parameters:
      sender - The listening transport layer
      Returns:
      The old/previous router layer
    • getTransportSender

      public final TransportSender getTransportSender()

      Gets the currently set transport layer.

      Returns:
      The old/previous router layer
    • blendMessage

      public abstract boolean blendMessage(BlendingSpec target, VortexMessage message) throws IOException

      This method is called by the router layer to blend a message.

      Specified by:
      blendMessage in interface BlendingSender
      Parameters:
      message - the message to be blended
      Returns:
      true if blended successfully and sent by the transport layer
      Throws:
      IOException
    • getBlendingAddress

      public abstract String getBlendingAddress()

      Returns the address supported for blender.

      The address is specified by <transport><address>!<publickey>.

      Returns:
      The vortex adress.
    • blendMessageToBytes

      public abstract byte[] blendMessageToBytes(BlendingSpec target, VortexMessage msg)

      Blends a VortexMessage into the apropriate text.

      Parameters:
      target - the blending spec for the recipient
      msg - the message to be blended
      Returns:
      the blended message
    • unblendMessage

      public abstract VortexMessage unblendMessage(byte[] blendedMessage)

      Extracts a vortexMessage from a blended message.

      Parameters:
      blendedMessage - the blended message
      Returns:
      the VortexMessage