Package org.restlet

Class Restlet

java.lang.Object
org.restlet.Restlet
All Implemented Interfaces:
Uniform
Direct Known Subclasses:
Application, Component, Connector, Filter, Finder, Redirector, Router, WrapperRestlet

public abstract class Restlet extends Object implements Uniform
Uniform class that provides a context and life cycle support. It has many subclasses that focus on specific ways to process calls. The context property is typically provided by a parent Component as a way to encapsulate access to shared features such as logging and client connectors.

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
  • Constructor Details

    • Restlet

      public Restlet()
      Constructor with null context.
    • Restlet

      public Restlet(Context context)
      Constructor with the Restlet's context which can be the parent's application context, but shouldn't be the parent Component's context for security reasons.
      Parameters:
      context - The context of the Restlet.
      See Also:
  • Method Details

    • createFinder

      public Finder createFinder(Class<? extends ServerResource> resourceClass)
      Creates a new finder instance based on the "targetClass" property. If none is define, the createFinder(Class) method is invoked if available, otherwise the Finder.createFinder(Class, Class, Context, Logger) method is called with the Finder class as parameter.
      Parameters:
      resourceClass - The target ServerResource class to find.
      Returns:
      The new finder instance.
      See Also:
    • finalize

      protected void finalize() throws Throwable
      Attempts to stop() the Restlet if it is still started.
      Overrides:
      finalize in class Object
      Throws:
      Throwable
    • getApplication

      public Application getApplication()
      Returns the parent application if it exists, or null.
      Returns:
      The parent application if it exists, or null.
    • getAuthor

      public String getAuthor()
      Returns the author(s).
      Returns:
      The author(s).
    • getContext

      public Context getContext()
      Returns the context.
      Returns:
      The context.
    • getDescription

      public String getDescription()
      Returns the description.
      Returns:
      The description
    • getFinderClass

      public Class<? extends Finder> getFinderClass()
      Returns the finder class used to instantiate resource classes. By default, it returns the Finder class. This property is leveraged by Application.setOutboundRoot(Class) and Application.setInboundRoot(Class) methods.
      Returns:
      the finder class to instantiate.
    • getLogger

      public Logger getLogger()
      Returns the context's logger.
      Returns:
      The context's logger.
    • getName

      public String getName()
      Returns the display name.
      Returns:
      The display name.
    • getOwner

      public String getOwner()
      Returns the owner(s).
      Returns:
      The owner(s).
    • handle

      public final Response handle(Request request)
      Handles a call. Creates an empty Response object and then invokes handle(Request, Response).
      Parameters:
      request - The request to handle.
      Returns:
      The returned response.
    • handle

      public void handle(Request request, Response response)
      Handles a call. The default behavior is to initialize the Restlet by setting the current context using the Context.setCurrent(Context) method and by attempting to start it, unless it was already started. If an exception is thrown during the start action, then the response status is set to Status.SERVER_ERROR_INTERNAL.

      Subclasses overriding this method should make sure that they call super.handle(request, response) before adding their own logic.

      Specified by:
      handle in interface Uniform
      Parameters:
      request - The request to handle.
      response - The response to update.
    • handle

      public final void handle(Request request, Response response, Uniform onResponseCallback)
      Handles a call.
      Parameters:
      request - The request to handle.
      response - The response to update.
      onResponseCallback - The callback invoked upon response reception.
    • handle

      public final void handle(Request request, Uniform onReceivedCallback)
      Handles a call.
      Parameters:
      request - The request to handle.
      onReceivedCallback - The callback invoked upon request reception.
    • isStarted

      public boolean isStarted()
      Indicates if the Restlet is started.
      Returns:
      True if the Restlet is started.
    • isStopped

      public boolean isStopped()
      Indicates if the Restlet is stopped.
      Returns:
      True if the Restlet is stopped.
    • setAuthor

      public void setAuthor(String author)
      Sets the author(s).
      Parameters:
      author - The author(s).
    • setContext

      public void setContext(Context context)
      Sets the context.
      Parameters:
      context - The context.
    • setDescription

      public void setDescription(String description)
      Sets the description.
      Parameters:
      description - The description.
    • setFinderClass

      public void setFinderClass(Class<? extends Finder> finderClass)
      Sets the finder class to instantiate. This property is leveraged by Application.setOutboundRoot(Class) and Application.setInboundRoot(Class) methods.
      Parameters:
      finderClass - The finder class to instantiate.
    • setName

      public void setName(String name)
      Sets the display name.
      Parameters:
      name - The display name.
    • setOwner

      public void setOwner(String owner)
      Sets the owner(s).
      Parameters:
      owner - The owner(s).
    • start

      public void start() throws Exception
      Starts the Restlet. By default its only sets "started" internal property to true. WARNING: this method must be called at the end of the starting process by subclasses otherwise concurrent threads could enter into the call handling logic too early.
      Throws:
      Exception
    • stop

      public void stop() throws Exception
      Stops the Restlet. By default its only sets "started" internal property to false. WARNING: this method must be called at the beginning of the stopping process by subclasses otherwise concurrent threads could continue to (improperly) handle calls.
      Throws:
      Exception