Package org.restlet

Class Restlet

  • All Implemented Interfaces:
    Uniform
    Direct Known Subclasses:
    Application, Component, Connector, Filter, Finder, JaxRsRestlet, Redirector, Router, WrapperRestlet

    public abstract class Restlet
    extends java.lang.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.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.lang.String author
      The author(s).
      private Context context
      The context.
      private java.lang.String description
      The description.
      private java.lang.Class<? extends Finder> finderClass
      Finder class to instantiate.
      private java.lang.String name
      The display name.
      private java.lang.String owner
      The owner(s).
      private boolean started
      Indicates if the Restlet was started.
      private static java.lang.String UNABLE_TO_START
      Error message.
    • Constructor Summary

      Constructors 
      Constructor Description
      Restlet()
      Constructor with null context.
      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.
    • Field Detail

      • UNABLE_TO_START

        private static final java.lang.String UNABLE_TO_START
        Error message.
        See Also:
        Constant Field Values
      • author

        private volatile java.lang.String author
        The author(s).
      • context

        private volatile Context context
        The context.
      • description

        private volatile java.lang.String description
        The description.
      • finderClass

        private volatile java.lang.Class<? extends Finder> finderClass
        Finder class to instantiate.
      • name

        private volatile java.lang.String name
        The display name.
      • owner

        private volatile java.lang.String owner
        The owner(s).
      • started

        private volatile boolean started
        Indicates if the Restlet was started.
    • Constructor Detail

      • 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:
        Context.createChildContext()
    • Method Detail

      • fireContextChanged

        private static void fireContextChanged​(Restlet restlet,
                                               Context context)
        Indicates that a Restlet's context has changed.
        Parameters:
        restlet - The Restlet with a changed context.
        context - The new context.
      • finalize

        protected void finalize()
                         throws java.lang.Throwable
        Attempts to stop() the Restlet if it is still started.
        Overrides:
        finalize in class java.lang.Object
        Throws:
        java.lang.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 java.lang.String getAuthor()
        Returns the author(s).
        Returns:
        The author(s).
      • getContext

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

        public java.lang.String getDescription()
        Returns the description.
        Returns:
        The description
      • getLogger

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

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

        public java.lang.String getOwner()
        Returns the owner(s).
        Returns:
        The owner(s).
      • 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​(java.lang.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​(java.lang.String description)
        Sets the description.
        Parameters:
        description - The description.
      • setName

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

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

        public void start()
                   throws java.lang.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:
        java.lang.Exception
      • stop

        public void stop()
                  throws java.lang.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:
        java.lang.Exception