org.restlet
Class Context

java.lang.Object
  extended by org.restlet.Context

public class Context
extends java.lang.Object

Contextual data and services provided to a Restlet. The context is the means by which a Restlet may access the software environment within the framework. It is typically provided by the immediate parent Restlet (Application is the most common case).

Concurrency note: attributes and parameters of a context are stored in concurrent collections that guarantee thread safe access and modification. If several threads concurrently access objects and modify these collections, they should synchronize on the lock of the Context instance.

Author:
Jerome Louvel

Constructor Summary
Context()
          Constructor.
Context(java.util.logging.Logger logger)
          Constructor.
Context(java.lang.String loggerName)
          Constructor.
 
Method Summary
 Context createChildContext()
          Creates a protected child context.
 java.util.concurrent.ConcurrentMap<java.lang.String,java.lang.Object> getAttributes()
          Returns a modifiable attributes map that can be used by developers to save information relative to the context.
 Uniform getClientDispatcher()
          Returns a request dispatcher to available client connectors.
static Context getCurrent()
          Returns the context associated to the current Restlet.
static java.util.logging.Logger getCurrentLogger()
          Returns the current context's logger.
 Uniform getDispatcher()
          Deprecated. Use getClientDispatcher() instead.
 java.util.logging.Logger getLogger()
          Returns the logger.
 Series<Parameter> getParameters()
          Returns the modifiable series of parameters.
 Uniform getServerDispatcher()
          Returns a request dispatcher to component's virtual hosts.
 void setAttributes(java.util.Map<java.lang.String,java.lang.Object> attributes)
          Sets the modifiable map of attributes.
static void setCurrent(Context context)
          Sets the context to associated with the current thread.
 void setLogger(java.util.logging.Logger logger)
          Sets the logger.
 void setLogger(java.lang.String loggerName)
          Sets the logger.
 void setParameters(Series<Parameter> parameters)
          Sets the modifiable series of parameters.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Context

public Context()
Constructor. Writes log messages to "org.restlet".


Context

public Context(java.util.logging.Logger logger)
Constructor.

Parameters:
logger - The logger instance of use.

Context

public Context(java.lang.String loggerName)
Constructor.

Parameters:
loggerName - The name of the logger to use.
Method Detail

getCurrent

public static Context getCurrent()
Returns the context associated to the current Restlet. The context can be the one of a Component, an Application, a Filter or any other Restlet subclass. Warning: this method should only be used under duress. You should by default prefer obtaining the current context using methods such as Restlet.getContext() or Handler.getContext(). This variable is stored internally as a thread local variable and updated each time a request is handled by a Restlet via the Restlet.handle(org.restlet.data.Request, org.restlet.data.Response) method.

Returns:
The current context.

getCurrentLogger

public static java.util.logging.Logger getCurrentLogger()
Returns the current context's logger.

Returns:
The current context's logger.

setCurrent

public static void setCurrent(Context context)
Sets the context to associated with the current thread.

Parameters:
context - The thread's context.

createChildContext

public Context createChildContext()
Creates a protected child context. This is especially useful for new application attached to their parent component, to ensure their isolation from the other applications. By default it just creates a new context instance.

Returns:
The child context.

getAttributes

public java.util.concurrent.ConcurrentMap<java.lang.String,java.lang.Object> getAttributes()
Returns a modifiable attributes map that can be used by developers to save information relative to the context. Creates a new instance if no one has been set. This is a convenient mean to provide common objects to all the Restlets and Resources composing an Application.

In addition, this map is a shared space between the developer and the Restlet implementation. For this purpose, all attribute names starting with "org.restlet" are reserved. Currently the following attributes are used:
Attribute name Class name Description
org.restlet.application org.restlet.Application The parent application providing this context, if any.

Returns:
The modifiable attributes map.

getClientDispatcher

public Uniform getClientDispatcher()
Returns a request dispatcher to available client connectors. When you ask the dispatcher to handle a request, it will automatically select the appropriate client connector for your request, based on the request.protocol property or on the resource URI's scheme. This call is blocking and will return an updated response object.

Returns:
A request dispatcher to available client connectors.

getDispatcher

@Deprecated
public Uniform getDispatcher()
Deprecated. Use getClientDispatcher() instead.

Returns a request dispatcher to available client connectors. When you ask the dispatcher to handle a request, it will automatically select the best client connector for your request, based on the request.protocol property or on the resource URI's scheme. This call is blocking and will return an updated response object.

Returns:
A request dispatcher to virtual hosts of the local component.

getLogger

public java.util.logging.Logger getLogger()
Returns the logger.

Returns:
The logger.

getParameters

public Series<Parameter> getParameters()
Returns the modifiable series of parameters. Creates a new instance if no one has been set. A parameter is a pair composed of a name and a value and is typically used for configuration purpose, like Java properties. Note that multiple parameters with the same name can be declared and accessed.

Returns:
The modifiable series of parameters.

getServerDispatcher

public Uniform getServerDispatcher()
Returns a request dispatcher to component's virtual hosts. This is mostly useful for application that want to optimize calls to other applications hosted in the same component or to the application itself.

The processing is the same as what would have been done if the request came from one of the component's server connectors. It first must match one of the registered virtual hosts. Then it can be routed to one of the attaced Restlets, typically an Application.

Returns:
A request dispatcher to the server connectors' router.

setAttributes

public void setAttributes(java.util.Map<java.lang.String,java.lang.Object> attributes)
Sets the modifiable map of attributes.

Parameters:
attributes - The modifiable map of attributes.

setLogger

public void setLogger(java.util.logging.Logger logger)
Sets the logger.

Parameters:
logger - The logger.

setLogger

public void setLogger(java.lang.String loggerName)
Sets the logger.

Parameters:
loggerName - The name of the logger to use.

setParameters

public void setParameters(Series<Parameter> parameters)
Sets the modifiable series of parameters.

Parameters:
parameters - The modifiable series of parameters.


Copyright © 2005-2008 Noelios Technologies.