org.restlet.routing

## Class Extractor

- java.lang.Object
- - org.restlet.Restlet
  - - org.restlet.routing.Filter
    - - org.restlet.routing.Extractor

All Implemented Interfaces:
  Uniform

    public class Extractor
    extends Filter

Filter extracting attributes from a call. Multiple extractions can be defined, based on the query string of the resource reference, on the request form (ex: posted from a browser) or on cookies.
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

### Field Summary

### Fields inherited from class org.restlet.routing.Filter

`CONTINUE, SKIP, STOP`

### Constructor Summary

Constructors
Constructor and Description
`Extractor()` Constructor.
`Extractor(Context context)` Constructor.
`Extractor(Context context, Restlet next)` Constructor.

### Method Summary

Methods
`protected int` `beforeHandle(Request request, Response response)` Allows filtering before its handling by the target Restlet.
`void` `extractFromCookie(java.lang.String attribute, java.lang.String cookieName, boolean first)` Extracts an attribute from the request cookies.
`void` `extractFromEntity(java.lang.String attribute, java.lang.String parameter, boolean first)` Extracts an attribute from the request entity form.
`void` `extractFromQuery(java.lang.String attribute, java.lang.String parameter, boolean first)` Extracts an attribute from the query string of the resource reference.

### Methods inherited from class org.restlet.routing.Filter

`afterHandle, doHandle, getNext, handle, hasNext, setNext, setNext, start, stop`

### Methods inherited from class org.restlet.Restlet

`finalize, getApplication, getAuthor, getContext, getDescription, getLogger, getName, getOwner, isStarted, isStopped, setAuthor, setContext, setDescription, setName, setOwner`

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

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

### Constructor Detail

#### Extractor

    public Extractor()

Constructor.

#### Extractor

    public Extractor(Context context)

Constructor.

Parameters:
  `context` - The context.

#### Extractor

    public Extractor(Context context,
             Restlet next)

Constructor.

Parameters:
  `context` - The context.
  `next` - The next Restlet.

### Method Detail

#### beforeHandle

    protected int beforeHandle(Request request,
                   Response response)

Allows filtering before its handling by the target Restlet. By default it extracts the attributes from form parameters (query, cookies, entity) and finally puts them in the request's attributes ( `Message.getAttributes()`).

Overrides:
  `beforeHandle` in class `Filter`
Parameters:
  `request` - The request to filter.
  `response` - The response to filter.
Returns:
  The continuation status.

#### extractFromCookie

    public void extractFromCookie(java.lang.String attribute,
                         java.lang.String cookieName,
                         boolean first)

Extracts an attribute from the request cookies.

Parameters:
  `attribute` - The name of the request attribute to set.
  `cookieName` - The name of the cookies to extract.
  `first` - Indicates if only the first cookie should be set. Otherwise as a List instance might be set in the attribute value.

#### extractFromEntity

    public void extractFromEntity(java.lang.String attribute,
                         java.lang.String parameter,
                         boolean first)

Extracts an attribute from the request entity form.

Parameters:
  `attribute` - The name of the request attribute to set.
  `parameter` - The name of the entity form parameter to extract.
  `first` - Indicates if only the first cookie should be set. Otherwise as a List instance might be set in the attribute value.

#### extractFromQuery

    public void extractFromQuery(java.lang.String attribute,
                        java.lang.String parameter,
                        boolean first)

Extracts an attribute from the query string of the resource reference.

Parameters:
  `attribute` - The name of the request attribute to set.
  `parameter` - The name of the query string parameter to extract.
  `first` - Indicates if only the first cookie should be set. Otherwise as a List instance might be set in the attribute value.