Package com.pugh.sockso.web.action

Source Code of com.pugh.sockso.web.action.Coverer

package com.pugh.sockso.web.action;

import com.pugh.sockso.web.Request;
import com.pugh.sockso.web.action.covers.CovererPlugin;

import java.util.ArrayList;

import org.apache.log4j.Logger;

public class Coverer extends BaseAction {

    private static final Logger log = Logger.getLogger( Coverer.class );
   
    private final ArrayList<CovererPlugin> plugins;

    /**
     *  Create a new coverer action
     *
     */

    public Coverer() {
       
        this.plugins = new ArrayList<CovererPlugin>();
       
    }

    /**
     *  Add a plugin, these are evaluated in order added
     *
     *  @param plugin
     *
     */

    public void addPlugin( CovererPlugin plugin ) {

        plugins.add( plugin );

    }

    /**
     *  When handling a request just try and find a plugin to serve the cover
     *
     */

    public void handleRequest() throws Exception {

        final Request req = getRequest();
        final String itemName = req.getUrlParam( 2 );
       
        for ( final CovererPlugin plugin : plugins ) {

            plugin.setRequest( getRequest() );
            plugin.setResponse( getResponse() );
            plugin.setDatabase( getDatabase() );
            plugin.setProperties( getProperties() );
            plugin.setLocale( getLocale() );

            if ( plugin.serveCover(itemName) ) {
                log.debug( "Served cover with " + plugin.getClass().getSimpleName() );
                break;
            }

        }

    }

    /**
     *  No login required when serving covers, same as FileServer
     *
     *  @return
     *
     */

    @Override
    public boolean requiresLogin() {

        return false;
       
    }

    /**
     *  No login means no session required at all
     *
     *  @return
     *
     */

    @Override
    public boolean requiresSession() {

        return false;

    }

}
TOP

Related Classes of com.pugh.sockso.web.action.Coverer

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.