ruper2/src/java/core/org/krysalis/ruper/util/chainprocess HandlerChain.java,NONE,1.1 HandlerManager.java,NONE,1.1 Handler.java,NONE,1.1

[email protected]
Newsgroups gmane.comp.krysalis.metamorphosis.cvs
Message-ID <[email protected]>
Update of /cvsroot/metamorphosis/ruper2/src/java/core/org/krysalis/ruper/util/chainprocess
In directory sc8-pr-cvs1:/tmp/cvs-serv10851/src/java/core/org/krysalis/ruper/util/chainprocess

Added Files:
	HandlerChain.java HandlerManager.java Handler.java 
Log Message:
handler chain process added

--- NEW FILE: HandlerChain.java ---
package org.krysalis.ruper.util.chainprocess;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class HandlerChain 
{
	private String m_name;
	
    /** List of handlers in this chain */
    private List m_handlers = new ArrayList();

	public HandlerChain(String name)
	{
		m_name = name;
	}
	
    public void addHandler(Handler handler)
    {
        m_handlers.add(handler);        
    }

    public void addHandlerAt(int position, Handler handler)
    {
        m_handlers.add(position, handler);
    }

    public List process(final List list)
    {
    	List processedList = new ArrayList(list);
    	
		Iterator handlerIterator = m_handlers.iterator();

        if (handlerIterator.hasNext())
        {
            Handler handler = (Handler) handlerIterator.next();
			processedList = handler.process( processedList );
        }
        
        return processedList;
    }

    public void removeHandler(Handler handler)
    {
        m_handlers.remove( handler );
    }

	/**
	 * @return
	 */
	public List getHandlers()
	{
		return m_handlers;
	}

	/**
	 * @return
	 */
	public String getName()
	{
		return m_name;
	}

	/**
	 * @param list
	 */
	public void setHandlers(List list)
	{
		m_handlers = list;
	}

	/**
	 * @param string
	 */
	public void setName(String string)
	{
		m_name = string;
	}

}

--- NEW FILE: HandlerManager.java ---
package org.krysalis.ruper.util.chainprocess;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;


public class HandlerManager
{
	protected List m_handlerChains;
	
	public HandlerManager()
	{
		this.m_handlerChains = new ArrayList();
	}
	/*
	 * Adds the listeners for adding different handler impl to the handler chain
	 */
	public void addHandlerChain(HandlerChain handlerChain)
	{
		m_handlerChains.add(handlerChain);        
	}

	/*
	 * Prioratize by addding at a certain position
	 */
	public void addHandlerChainAt(int position, HandlerChain handlerChain)
	{
		m_handlerChains.add(position, handlerChain);
	}

	public void removeHandlerChain(HandlerChain handlerChain)
	{
		m_handlerChains.remove( handlerChain );
	}
	
    public List process( final List list )
        throws Exception
    {
    	List processedList = null;
    	
		Iterator handlerIterator = m_handlerChains.iterator();

		if (handlerIterator.hasNext())
		{
			// call the listener execute to see if they want to get added
			HandlerChain handlerChain = (HandlerChain) handlerIterator.next();
			processedList = handlerChain.process( list);
		}
		
		return processedList;
    }
    
	/**
	 * @return
	 */
	public List getHandlerChains()
	{
		return m_handlerChains;
	}


	public HandlerChain getHandlerChain(int index)
	{
		return (HandlerChain)m_handlerChains.get(index);
	}


	/**
	 * @param list
	 */
	public void setHandlerChains(List list)
	{
		m_handlerChains = list;
	}


}

--- NEW FILE: Handler.java ---
package org.krysalis.ruper.util.chainprocess;

import java.util.List;

public interface Handler
{
     List process( final List list);

}




-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.