Package net.sf.jportlet.service.webflow

Source Code of net.sf.jportlet.service.webflow.WebflowServiceImpl

/*
* Created on Mar 23, 2003
*/
package net.sf.jportlet.service.webflow;

import java.io.InputStream;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Properties;

import javax.servlet.ServletConfig;

import net.sf.jportlet.portlet.event.ActionEvent;
import net.sf.jportlet.service.PortletServiceAdapter;
import net.sf.jportlet.service.PortletServiceConfig;
import net.sf.jportlet.service.PortletServiceException;


/**
* Implementation of {@link net.sf.jportlet.service.webflow.WebflowService}
*
* @author <a href="mailto:tchbansi@sourceforge.net">Herve Tchepannou</a>
*/
public class WebflowServiceImpl
    extends PortletServiceAdapter
    implements WebflowService
{
    //~ Static fields/initializers ---------------------------------------------

    public static final String CONFIG_FILENAME = "/WEB-INF/webflow.properties";

    //~ Instance fields --------------------------------------------------------

    private HashMap _mappings = new HashMap(  );

    //~ Methods ----------------------------------------------------------------

    /**
     * @see net.sf.jportlet.service.webflow.WebflowService#nextURI(net.sf.jportlet.portlet.event.ActionEvent)
     */
    public String nextURI( ActionEvent event )
    {
        String       portlet = event.getPortlet(  ).getPortletConfig(  ).getPortletName(  );
        StringBuffer key = new StringBuffer(  );

        key.append( portlet );
        key.append( '.' ).append( event.getAction(  ) );
        key.append( '.' ).append( event.getReturnCode(  ) );

        String uri = ( String ) _mappings.get( key.toString(  ) );

        if ( _log.isDebugEnabled(  ) )
        {
            _log.debug( "nextURI: " + key + "=" + uri );
        }

        return uri;
    }

    /**
     * @see net.sf.jportlet.service.PortletService#getServiceName()
     */
    public String getServiceName(  )
    {
        return WebflowService.NAME;
    }

    /**
     * @see net.sf.jportlet.service.PortletService#destroy()
     */
    public void destroy(  )
    {
        super.destroy(  );

        _mappings.clear(  );
    }

    /**
     * @see net.sf.jportlet.service.PortletService#init(net.sf.jportlet.service.PortletServiceConfig)
     */
    public void init( PortletServiceConfig serviceConfig )
        throws PortletServiceException
    {
        super.init( serviceConfig );

        ServletConfig servletConfig = serviceConfig.getServletConfig(  );
        InputStream   in = servletConfig.getServletContext(  ).getResourceAsStream( CONFIG_FILENAME );

        if ( in == null )
        {
            throw new PortletServiceException( "File not found: " + CONFIG_FILENAME );
        }

        try
        {
            Properties config = new Properties(  );
            config.load( in );

            boolean  debug = _log.isDebugEnabled(  );
            Iterator it = config.keySet(  ).iterator(  );

            while ( it.hasNext(  ) )
            {
                Object key = it.next(  );
                Object uri = config.get( key );

                if ( debug )
                {
                    _log.debug( "Adding mapping: " + key + "=" + uri );
                }

                _mappings.put( key, uri );
            }
        }
        catch ( Exception e )
        {
            throw new PortletServiceException( e );
        }
    }
}
TOP

Related Classes of net.sf.jportlet.service.webflow.WebflowServiceImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.