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 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.

Author:
  Jerome Louvel

### Constructor Summary

Constructors
Constructor and 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.

### Method Summary

Methods
`protected void` `finalize()` Attempts to `stop()` the Restlet if it is still started.
`Application` `getApplication()` Returns the parent application if it exists, or null.
`java.lang.String` `getAuthor()` Returns the author(s).
`Context` `getContext()` Returns the context.
`java.lang.String` `getDescription()` Returns the description.
`java.util.logging.Logger` `getLogger()` Returns the context's logger.
`java.lang.String` `getName()` Returns the display name.
`java.lang.String` `getOwner()` Returns the owner(s).
`void` `handle(Request request, Response response)` Handles a call.
`boolean` `isStarted()` Indicates if the Restlet is started.
`boolean` `isStopped()` Indicates if the Restlet is stopped.
`void` `setAuthor(java.lang.String author)` Sets the author(s).
`void` `setContext(Context context)` Sets the context.
`void` `setDescription(java.lang.String description)` Sets the description.
`void` `setName(java.lang.String name)` Sets the display name.
`void` `setOwner(java.lang.String owner)` Sets the owner(s).
`void` `start()` Starts the Restlet.
`void` `stop()` Stops the Restlet.

### Methods inherited from class java.lang.Object

`clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### 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

#### 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.

#### 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.

Throws:
  `java.lang.Exception`

#### stop

    public void stop()
              throws java.lang.Exception

Stops the Restlet.

Throws:
  `java.lang.Exception`