org.apache.wicket.request.cycle
Class RequestCycle

java.lang.Object
  extended by org.apache.wicket.request.RequestHandlerStack
      extended by org.apache.wicket.request.cycle.RequestCycle
All Implemented Interfaces:
IEventSink, IRequestCycle
Direct Known Subclasses:
WicketExampleRequestCycle

public class RequestCycle
extends RequestHandlerStack
implements IRequestCycle, IEventSink

RequestCycle consists of two steps:

  1. Resolve request handler
  2. Execute request handler
During IRequestHandler execution the handler can execute other IRequestHandlers, schedule another IRequestHandler or replace all IRequestHandlers on stack with another IRequestHandler.

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

Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.wicket.request.RequestHandlerStack
RequestHandlerStack.ReplaceHandlerException
 
Constructor Summary
RequestCycle(RequestCycleContext context)
          Construct.
 
Method Summary
 void detach()
          Detaches all IRequestHandlers.
static RequestCycle get()
          Returns request cycle associated with current thread.
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()
           
protected  RequestCycle getRequestCycle()
           
 long getStartTime()
           
 UrlRenderer getUrlRenderer()
          Returns UrlRenderer for this RequestCycle.
protected  IRequestHandler handleException(Exception e)
          Return IRequestHandler for the given exception.
 boolean isCleanupFeedbackMessagesOnDetach()
          Gets whether or not feedback messages are to be cleaned up on detach.
<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
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.
protected  IRequestHandler resolveRequestHandler()
          Resolves current request to a IRequestHandler.
 void setCleanupFeedbackMessagesOnDetach(boolean cleanupFeedbackMessagesOnDetach)
          Sets whether or not feedback messages should be cleaned up on detach.
<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.
 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 org.apache.wicket.request.RequestHandlerStack
executeRequestHandler, getActiveRequestHandler, getRequestHandlerScheduledAfterCurrent, getResponse, replaceAllRequestHandlers, replaceCurrentRequestHandler, scheduleRequestHandlerAfterCurrent, setResponse
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.wicket.request.IRequestCycle
getResponse, scheduleRequestHandlerAfterCurrent
 

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 -

getRequestCycle

protected RequestCycle getRequestCycle()
Specified by:
getRequestCycle in class RequestHandlerStack
See Also:
RequestHandlerStack.getRequestCycle()

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.

Parameters:
handler -
Returns:
Url instance or null

mapUrlFor

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

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.

Type Parameters:
C -
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 void detach()
Description copied from class: RequestHandlerStack
Detaches all IRequestHandlers.

Overrides:
detach in class RequestHandlerStack
See Also:
RequestHandlerStack.detach()

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

public boolean isCleanupFeedbackMessagesOnDetach()
Gets whether or not feedback messages are to be cleaned up on detach.

Returns:
true if they are

setCleanupFeedbackMessagesOnDetach

public void setCleanupFeedbackMessagesOnDetach(boolean cleanupFeedbackMessagesOnDetach)
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()


Copyright © 2004-2010 Apache Software Foundation. All Rights Reserved.