Package org.geoserver.rest

Source Code of org.geoserver.rest.BeanResourceFinder

/* Copyright (c) 2001 - 2007 TOPP - www.openplans.org.  All rights reserved.
* This code is licensed under the GPL 2.0 license, availible at the root
* application directory.
*/
package org.geoserver.rest;

import org.restlet.Finder;
import org.restlet.data.Request;
import org.restlet.data.Response;
import org.restlet.resource.Resource;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

/**
* A resource finder which simply returns a resource corresponding to a spring bean
* with a specific name.
* <p>
* The following shows an example of using this class in a spring context:
* <pre>
*   <bean id="myResource" class="org.acme.MyResource"/>
*  
*   <bean id="myBeanResourceFinder" class="org.geoserver.rest.BeanResourceFinder">
*     <constructor-arg ref="myResource"/>
*   </bean>
* </pre>
* </p>
*
* @author David Winslow, OpenGEO
* @author Justin Deoliveira, OpenGEO
*
*/
public class BeanResourceFinder extends Finder implements ApplicationContextAware{
    /** the app context used to look up the bean*/
    ApplicationContext applicationContext;
    /** the name of the bean to lookup */
    String beanName;

    /**
     * Creates the new finder specifying the name of the bean to return.
     *
     * @param beanName The name of a spring bean which is a subclass of {@link Resource}.
     */
    public BeanResourceFinder(String beanName) {
        this.beanName = beanName;
    }
   
    /**
     * Creates the new finder specifying the name of the bean to return, and the application
     * context with which to look-up the bean.
     *
     * @param context The application context.
     * @param beanName The name of a spring bean which is a subclass of {@link Resource}.
     *
     */
    public BeanResourceFinder(ApplicationContext context, String beanName){
        this.applicationContext = context;
        this.beanName = beanName;
    }

    public void setApplicationContext(ApplicationContext context){
        applicationContext = context;
    }       

    public void setBeanToFind(String name){
        this.beanName = name;
    }

    public String getBeanToFind(){
        return beanName;
    }

    public Resource findTarget(Request request, Response response){
        Resource res = (Resource) applicationContext.getBean(getBeanToFind());
        res.init(getContext(), request, response);
        return res;
    }
}
TOP

Related Classes of org.geoserver.rest.BeanResourceFinder

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.