Package org.restlet.resource
Class Finder
- java.lang.Object
-
- org.restlet.Restlet
-
- org.restlet.resource.Finder
-
- All Implemented Interfaces:
Uniform
- Direct Known Subclasses:
Directory
public class Finder extends Restlet
Restlet that can find the target server resource that will effectively handle incoming calls. By default, based on a givenServerResource
subclass available via thegetTargetClass()
method, it automatically instantiates for each incoming call the target resource class using its default constructor and invoking theResource.init(Context, Request, Response)
method.
Once the target has been created, the call is automatically dispatched to theServerResource.handle()
method.
Once the call is handled, theResource.release()
method is invoked to permit clean-up actions.
Concurrency note: instances of this class or its subclasses can be invoked by several threads at the same time and therefore must be thread-safe. You should be especially careful when storing state in member variables.- Author:
- Jerome Louvel
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description ServerResource
create(java.lang.Class<? extends ServerResource> targetClass, Request request, Response response)
Creates a new instance of a givenServerResource
subclass.ServerResource
create(Request request, Response response)
Creates a new instance of theServerResource
subclass designated by the "targetClass" property.static Finder
createFinder(java.lang.Class<? extends ServerResource> targetClass, java.lang.Class<? extends Finder> finderClass, Context context, java.util.logging.Logger logger)
Creates a new finder instance based on the "targetClass" property.ServerResource
find(Request request, Response response)
Finds the targetServerResource
if available.java.lang.Class<? extends ServerResource>
getTargetClass()
Returns the target resource class which must be either a subclass ofServerResource
.void
handle(Request request, Response response)
Handles a call.void
setTargetClass(java.lang.Class<? extends ServerResource> targetClass)
Sets the target resource class which must be a subclass ofServerResource
.java.lang.String
toString()
-
Methods inherited from class org.restlet.Restlet
createFinder, finalize, getApplication, getAuthor, getContext, getDescription, getFinderClass, getLogger, getName, getOwner, handle, handle, handle, isStarted, isStopped, setAuthor, setContext, setDescription, setFinderClass, setName, setOwner, start, stop
-
-
-
-
Constructor Detail
-
Finder
public Finder()
Constructor.
-
Finder
public Finder(Context context)
Constructor.- Parameters:
context
- The context.
-
Finder
public Finder(Context context, java.lang.Class<? extends ServerResource> targetClass)
Constructor.- Parameters:
context
- The context.targetClass
- The targetServerResource
subclass.
-
-
Method Detail
-
createFinder
public static Finder createFinder(java.lang.Class<? extends ServerResource> targetClass, java.lang.Class<? extends Finder> finderClass, Context context, java.util.logging.Logger logger)
Creates a new finder instance based on the "targetClass" property.- Parameters:
targetClass
- The target Resource class to attach.finderClass
- The optional finder class to instantiate.context
- The current Context.logger
- The logger.- Returns:
- The new finder instance.
-
create
public ServerResource create(java.lang.Class<? extends ServerResource> targetClass, Request request, Response response)
Creates a new instance of a givenServerResource
subclass. Note thatError
andRuntimeException
thrown byServerResource
constructors are re-thrown by this method. Other exception are caught and logged.- Parameters:
targetClass
- The targetServerResource
subclass.request
- The request to handle.response
- The response to update.- Returns:
- The created resource or null.
-
create
public ServerResource create(Request request, Response response)
Creates a new instance of theServerResource
subclass designated by the "targetClass" property. The default behavior is to invoke thecreate(Class, Request, Response)
with the "targetClass" property as a parameter.- Parameters:
request
- The request to handle.response
- The response to update.- Returns:
- The created resource or null.
-
find
public ServerResource find(Request request, Response response)
Finds the targetServerResource
if available. The default behavior is to invoke thecreate(Request, Response)
method.- Parameters:
request
- The request to handle.response
- The response to update.- Returns:
- The target resource if available or null.
-
getTargetClass
public java.lang.Class<? extends ServerResource> getTargetClass()
Returns the target resource class which must be either a subclass ofServerResource
.- Returns:
- the target Handler class.
-
setTargetClass
public void setTargetClass(java.lang.Class<? extends ServerResource> targetClass)
Sets the target resource class which must be a subclass ofServerResource
.- Parameters:
targetClass
- The target resource class. It must be a subclass ofServerResource
.
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-