package org.jboss.resteasy.spi;
/**
* Implementations of this interface are registered through the Registry class.
*
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
* @version $Revision: 1 $
*/
public interface ResourceFactory
{
/**
* Class to scan for jax-rs annotations
*
* @return
*/
Class<?> getScannableClass();
/**
* Callback after registration has been completed.
*
* @param factory allows singleton factories to pre-inject things like @Context references into the singleton instance
*/
void registered(ResteasyProviderFactory factory);
/**
* Called per request to obtain a resource instance to invoke http request on.
*
* @param request
* @param response
* @param factory
* @return
*/
Object createResource(HttpRequest request, HttpResponse response, ResteasyProviderFactory factory);
/**
* Callback when request is finished. usable for things like @PreDestroy if the underlying factory supports it
*
* @param request
* @param response
* @param resource
*/
void requestFinished(HttpRequest request, HttpResponse response, Object resource);
void unregistered();
}