org.apache.wicket.request.cycle
Class RequestCycle

java.lang.Object
  extended by org.apache.wicket.request.cycle.RequestCycle
All Implemented Interfaces:
IEventSink, IRequestCycle

public class RequestCycle
extends Object
implements IRequestCycle, IEventSink

RequestCycle consists of two steps:

  1. Resolve request handler
  2. Execute request handler
During IRequestHandler execution the handler can schedule another IRequestHandler to run after it is done, or replace all IRequestHandlers on stack with another IRequestHandler.

Author:
Matej Knopp, igor.vaynberg
See Also:
scheduleRequestHandlerAfterCurrent(IRequestHandler), replaceAllRequestHandlers(IRequestHandler)

Constructor Summary
RequestCycle(RequestCycleContext context)
          Construct.
 
Method Summary
 void detach()
          Detaches RequestCycle state.
<T extends IRequestHandler>
T
find(Class<T> type)
          Finds a IRequestHandler which is either the currently executing handler or is scheduled to be executed.
static RequestCycle get()
          Returns request cycle associated with current thread.
 IRequestHandler getActiveRequestHandler()
           
protected  int getExceptionRetryCount()
           
 RequestCycleListenerCollection getListeners()
           
<T> T
getMetaData(MetaDataKey<T> key)
          Gets metadata for this request cycle using the given key.
 Response getOriginalResponse()
          Get the original response the request was created with.
 Request getRequest()
           
 IRequestHandler getRequestHandlerScheduledAfterCurrent()
           
 Response getResponse()
          
 long getStartTime()
           
 UrlRenderer getUrlRenderer()
          Returns UrlRenderer for this RequestCycle.
protected  IRequestHandler handleException(Exception e)
          Return IRequestHandler for the given exception.
 boolean isCleanupFeedbackMessagesOnDetach()
          Deprecated. see IApplicationSettings.getFeedbackMessageCleanupFilter() TODO 7.0 remove
<C extends Page>
Url
mapUrlFor(Class<C> pageClass, PageParameters parameters)
          Returns a bookmarkable URL that references a given page class using a given set of page parameters.
 Url mapUrlFor(IRequestHandler handler)
          Returns URL for the request handler or null if the handler couldn't have been encoded.
 Url mapUrlFor(ResourceReference reference, PageParameters params)
          Returns a Url for the resource reference
protected  UrlRenderer newUrlRenderer()
           
protected  void onBeginRequest()
          Called when the request cycle object is beginning its response
 void onDetach()
          Called after request processing is complete, usually takes care of detaching state
protected  void onEndRequest()
          Called when the request cycle object has finished its response
 void onEvent(IEvent<?> event)
          Called when an event is sent to this sink
 boolean processRequest()
          Processes the request.
 boolean processRequestAndDetach()
          Convenience method that processes the request and detaches the RequestCycle.
 void replaceAllRequestHandlers(IRequestHandler handler)
           
protected  IRequestHandler resolveRequestHandler()
          Resolves current request to a IRequestHandler.
 void scheduleRequestHandlerAfterCurrent(IRequestHandler handler)
          
 void setCleanupFeedbackMessagesOnDetach(boolean cleanupFeedbackMessagesOnDetach)
          Deprecated. see isCleanupFeedbackMessagesOnDetach() TODO 7.0 remove
<T> void
setMetaData(MetaDataKey<T> key, T object)
          Sets the metadata for this request cycle using the given key.
 void setRequest(Request request)
          INTERNAL This method is for internal Wicket use.
 Response setResponse(Response response)
          
 void setResponsePage(Class<? extends IRequestablePage> pageClass)
          Convenience method for setting next page to be rendered.
 void setResponsePage(Class<? extends IRequestablePage> pageClass, PageParameters parameters)
          Convenience method for setting next page to be rendered.
 void setResponsePage(IRequestablePage page)
          Convenience method for setting next page to be rendered.
<C extends Page>
CharSequence
urlFor(Class<C> pageClass, PageParameters parameters)
          Returns a rendered bookmarkable URL that references a given page class using a given set of page parameters.
 CharSequence urlFor(IRequestHandler handler)
          Returns the rendered URL for the request handler or null if the handler couldn't have been rendered.
 CharSequence urlFor(ResourceReference reference, PageParameters params)
          Returns a rendered Url for the resource reference
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RequestCycle

public RequestCycle(RequestCycleContext context)
Construct.

Parameters:
context -
Method Detail

get

public static RequestCycle get()
Returns request cycle associated with current thread.

Returns:
request cycle instance or null if no request cycle is associated with current thread.

newUrlRenderer

protected UrlRenderer newUrlRenderer()
Returns:
a new url renderer

getOriginalResponse

public Response getOriginalResponse()
Get the original response the request was created with. Access to the original response may be necessary if the response has been temporarily replaced but the components require methods from original response (i.e. cookie methods of WebResponse, etc).

Returns:
The original response object.

getUrlRenderer

public final UrlRenderer getUrlRenderer()
Returns UrlRenderer for this RequestCycle.

Specified by:
getUrlRenderer in interface IRequestCycle
Returns:
UrlRenderer instance.

resolveRequestHandler

protected IRequestHandler resolveRequestHandler()
Resolves current request to a IRequestHandler.

Returns:
RequestHandler instance

getExceptionRetryCount

protected int getExceptionRetryCount()
Returns:
How many times will Wicket attempt to render the exception request handler before giving up.

processRequest

public boolean processRequest()
Processes the request.

Returns:
true if the request resolved to a Wicket request, false otherwise.

processRequestAndDetach

public boolean processRequestAndDetach()
Convenience method that processes the request and detaches the RequestCycle.

Returns:
true if the request resolved to a Wicket request, false otherwise.

handleException

protected IRequestHandler handleException(Exception e)
Return IRequestHandler for the given exception.

Parameters:
e -
Returns:
RequestHandler instance

getRequest

public Request getRequest()
Specified by:
getRequest in interface IRequestCycle
Returns:
current request

setRequest

public void setRequest(Request request)
INTERNAL This method is for internal Wicket use. Do not call it yourself unless you know what you are doing.

Parameters:
request -

setMetaData

public final <T> void setMetaData(MetaDataKey<T> key,
                                  T object)
Sets the metadata for this request cycle using the given key. If the metadata object is not of the correct type for the metadata key, an IllegalArgumentException will be thrown. For information on creating MetaDataKeys, see MetaDataKey.

Type Parameters:
T -
Parameters:
key - The singleton key for the metadata
object - The metadata object
Throws:
IllegalArgumentException
See Also:
MetaDataKey

getMetaData

public final <T> T getMetaData(MetaDataKey<T> key)
Gets metadata for this request cycle using the given key.

Type Parameters:
T - The type of the metadata
Parameters:
key - The key for the data
Returns:
The metadata or null if no metadata was found for the given key
See Also:
MetaDataKey

mapUrlFor

public Url mapUrlFor(IRequestHandler handler)
Returns URL for the request handler or null if the handler couldn't have been encoded.

Note: The produced URL is relative to the filter path. Application code most probably need URL relative to the currently used page, for this use urlFor(org.apache.wicket.request.IRequestHandler)

Parameters:
handler - the request handler for which to create a callback url
Returns:
Url instance or null

mapUrlFor

public Url mapUrlFor(ResourceReference reference,
                     PageParameters params)
Returns a Url for the resource reference

Note: The produced URL is relative to the filter path. Application code most probably need URL relative to the currently used page, for this use urlFor(org.apache.wicket.request.resource.ResourceReference, org.apache.wicket.request.mapper.parameter.PageParameters)

Parameters:
reference - resource reference
params - parameters for the resource or null if none
Returns:
Url for the reference

mapUrlFor

public final <C extends Page> Url mapUrlFor(Class<C> pageClass,
                                            PageParameters parameters)
Returns a bookmarkable URL that references a given page class using a given set of page parameters. Since the URL which is returned contains all information necessary to instantiate and render the page, it can be stored in a user's browser as a stable bookmark.

Note: The produced URL is relative to the filter path. Application code most probably need URL relative to the currently used page, for this use urlFor(Class, org.apache.wicket.request.mapper.parameter.PageParameters)

Type Parameters:
C - The type of the page
Parameters:
pageClass - Class of page
parameters - Parameters to page or null if none
Returns:
Bookmarkable URL to page

urlFor

public final CharSequence urlFor(ResourceReference reference,
                                 PageParameters params)
Returns a rendered Url for the resource reference

Parameters:
reference - resource reference
params - parameters for the resource or null if none
Returns:
Url for the reference

urlFor

public final <C extends Page> CharSequence urlFor(Class<C> pageClass,
                                                  PageParameters parameters)
Returns a rendered bookmarkable URL that references a given page class using a given set of page parameters. Since the URL which is returned contains all information necessary to instantiate and render the page, it can be stored in a user's browser as a stable bookmark.

Type Parameters:
C -
Parameters:
pageClass - Class of page
parameters - Parameters to page or null if none
Returns:
Bookmarkable URL to page

urlFor

public CharSequence urlFor(IRequestHandler handler)
Returns the rendered URL for the request handler or null if the handler couldn't have been rendered.

The resulting URL will be relative to current page.

Parameters:
handler -
Returns:
Url String or null

detach

public final void detach()
Detaches RequestCycle state. Called after request processing is complete


onDetach

public void onDetach()
Called after request processing is complete, usually takes care of detaching state


setResponsePage

public void setResponsePage(IRequestablePage page)
Convenience method for setting next page to be rendered.

Parameters:
page -

setResponsePage

public void setResponsePage(Class<? extends IRequestablePage> pageClass)
Convenience method for setting next page to be rendered.

Parameters:
pageClass -

setResponsePage

public void setResponsePage(Class<? extends IRequestablePage> pageClass,
                            PageParameters parameters)
Convenience method for setting next page to be rendered.

Parameters:
pageClass -
parameters -

isCleanupFeedbackMessagesOnDetach

@Deprecated
public final boolean isCleanupFeedbackMessagesOnDetach()
Deprecated. see IApplicationSettings.getFeedbackMessageCleanupFilter() TODO 7.0 remove

Gets whether or not feedback messages are to be cleaned up on detach.

Returns:
true if they are

setCleanupFeedbackMessagesOnDetach

@Deprecated
public final void setCleanupFeedbackMessagesOnDetach(boolean cleanupFeedbackMessagesOnDetach)
Deprecated. see isCleanupFeedbackMessagesOnDetach() TODO 7.0 remove

Sets whether or not feedback messages should be cleaned up on detach.

Parameters:
cleanupFeedbackMessagesOnDetach - true if you want them to be cleaned up

getStartTime

public final long getStartTime()
Returns:
The start time for this request

onEvent

public void onEvent(IEvent<?> event)
Called when an event is sent to this sink

Specified by:
onEvent in interface IEventSink

onBeginRequest

protected void onBeginRequest()
Called when the request cycle object is beginning its response


onEndRequest

protected void onEndRequest()
Called when the request cycle object has finished its response


getListeners

public RequestCycleListenerCollection getListeners()
Returns:
listeners

getResponse

public Response getResponse()

Specified by:
getResponse in interface IRequestCycle

setResponse

public Response setResponse(Response response)

Specified by:
setResponse in interface IRequestCycle

scheduleRequestHandlerAfterCurrent

public void scheduleRequestHandlerAfterCurrent(IRequestHandler handler)

Specified by:
scheduleRequestHandlerAfterCurrent in interface IRequestCycle

getActiveRequestHandler

public IRequestHandler getActiveRequestHandler()
Returns:
active handler on executor
See Also:
RequestHandlerStack.getActive()

getRequestHandlerScheduledAfterCurrent

public IRequestHandler getRequestHandlerScheduledAfterCurrent()
Returns:
the handler scheduled to be executed after current by the executor
See Also:
RequestHandlerStack.next()

replaceAllRequestHandlers

public void replaceAllRequestHandlers(IRequestHandler handler)
Parameters:
handler -
See Also:
RequestHandlerStack.replaceAll(IRequestHandler)

find

public <T extends IRequestHandler> T find(Class<T> type)
Finds a IRequestHandler which is either the currently executing handler or is scheduled to be executed.

Returns:
the found IRequestHandler or null


Copyright © 2006-2013 Apache Software Foundation. All Rights Reserved.