Source code: MessageHandlerContainer.java

index |  57 lines | javadoc ]

package nl.west.aaa;

import java.util.*;
import java.io.*;

/**
 * Class that handles incoming messages by 
 * sending them to registered handlers.
 */
public class MessageHandlerContainer
    implements MessageHandler
{

    /**
     * The registered handlers of incoming messages.
     * The first handler should be tried first.
     */
    protected Vector messageHandlers=new Vector();
    
    /**
     * Try sending the message to the handlers.
     * If a handler responds positive true is returned,
     * otherwise false is returned.
     */
    public boolean handleMessage(Message msg,AAAUnit unit)
    {
        Enumeration e=messageHandlers.elements();
        boolean result=false;
        while(e.hasMoreElements()&&!result)
        {
            MessageHandler handler=(MessageHandler)e.nextElement();
            result=handler.handleMessage(msg,unit);
        }
        return result;
    }
    
    /**
     * Register the MessageHandler as a handler of 
     * incoming messages. All incoming messages that are
     * not replies to sent messages are fed through
     * the registered MessageHandlers.
     */
    public void addMessageHandler(MessageHandler handler)
    {
        messageHandlers.add(handler);
    }

    /**
     * Remove the given MessageHandler from the list
     * of registered MessageHandlers.
     */    
    public void removeMessageHandler(MessageHandler handler)
    {
        messageHandlers.remove(handler);
    }

}


Arthur <arthur@ch.twi.tudelft.nl> http://ch.twi.tudelft.nl/~arthur/
2002-05-27