Project Wonder 2.0

er.extensions
Class ERXLongResponseTask.DefaultImplementation

java.lang.Object
  extended byer.extensions.ERXLongResponseTask.DefaultImplementation
All Implemented Interfaces:
ERXLongResponseTask, Runnable
Enclosing class:
ERXLongResponseTask

public abstract static class ERXLongResponseTask.DefaultImplementation
extends Object
implements Runnable, ERXLongResponseTask


Nested Class Summary
 
Nested classes inherited from class er.extensions.ERXLongResponseTask
ERXLongResponseTask.DefaultImplementation
 
Field Summary
protected  boolean _cancelled
          Holds the cancel flag
protected  boolean _done
          Holds the done flag
protected  Exception _exception
          Exception code
protected  ERXLongResponse _longResponse
          Refresh page that controls this task
protected  Object _result
          Result code
protected  Object _status
          Status code
protected  Thread _thread
          Hold the thread that performs the task
 ERXLogger log
          logging support
 
Constructor Summary
ERXLongResponseTask.DefaultImplementation()
          Constructor
 
Method Summary
protected  void _finishInitialization()
          Sets up the object.
protected  WOComponent cancelPageForStatus(Object aStatus)
          Override this to return a sensible page to show after the task was stopped.
protected  Exception exception()
          Returns the exception that may have occurred in the run() method.
protected  boolean isCancelled()
          Checks if the task was stopped externally.
 boolean isDone()
          (non-Javadoc)
 ERXLongResponse longResponse()
          Returns the long response for this task.
 WOComponent nextPage()
          Default implementation that controls the pages returned on each iteration.
protected  WOComponent pageForException(Exception exception)
          Override this to return an exception page suitable for the given exception.
protected  WOComponent pageForResult(Object aResult)
          Override this to return the page after the task was completed without beeing stopped.
abstract  Object performAction()
          You need to override this and perform your long running task.
protected  WOComponent refreshPageForStatus(Object aStatus)
          Override this to return and modify the refresh page.
protected  Object result()
          The abstract result object that has been returned by performAction().
 void run()
          Implementation of the Runnable interface.
protected  void setException(Exception anObject)
          Use this method to flag if an exception page should get displayed after finishing the current step.
 void setLongResponse(ERXLongResponse sender)
          Sets the long response that controls this task.
protected  void setResult(Object anObject)
          Abstract result object that will get set when the task is finished.
protected  void setStatus(Object anObject)
           
 void start()
          Default implementation of the ERXLongResponseTask.start() method.
 Object status()
          Returns a current status.
 void stop()
          Stops the task.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

log

public ERXLogger log
logging support


_longResponse

protected ERXLongResponse _longResponse
Refresh page that controls this task


_status

protected Object _status
Status code


_result

protected Object _result
Result code


_exception

protected Exception _exception
Exception code


_cancelled

protected boolean _cancelled
Holds the cancel flag


_done

protected boolean _done
Holds the done flag


_thread

protected Thread _thread
Hold the thread that performs the task

Constructor Detail

ERXLongResponseTask.DefaultImplementation

public ERXLongResponseTask.DefaultImplementation()
Constructor

Method Detail

_finishInitialization

protected void _finishInitialization()
Sets up the object.


setLongResponse

public void setLongResponse(ERXLongResponse sender)
Sets the long response that controls this task.

Specified by:
setLongResponse in interface ERXLongResponseTask

longResponse

public ERXLongResponse longResponse()
Returns the long response for this task.

Returns:

run

public void run()
Implementation of the Runnable interface.

Specified by:
run in interface Runnable

status

public Object status()
Returns a current status. This can be any object and will given again to you to divine the next step.

Returns:

setStatus

protected void setStatus(Object anObject)

exception

protected Exception exception()
Returns the exception that may have occurred in the run() method.

Returns:

setException

protected void setException(Exception anObject)
Use this method to flag if an exception page should get displayed after finishing the current step.

Parameters:
anObject -

result

protected Object result()
The abstract result object that has been returned by performAction().

Returns:

setResult

protected void setResult(Object anObject)
Abstract result object that will get set when the task is finished.

Parameters:
anObject -

isCancelled

protected boolean isCancelled()
Checks if the task was stopped externally.

Returns:
true if stop() was called.

isDone

public boolean isDone()
(non-Javadoc)

Specified by:
isDone in interface ERXLongResponseTask
Returns:
true if the task is still running
See Also:
ERXLongResponseTask.isDone()

stop

public void stop()
Stops the task. This just sets the cancel flag. Its up to you to check in your task if you are interruptable. So you should check isCancelled() in your performAction().

Specified by:
stop in interface ERXLongResponseTask

start

public void start()
Default implementation of the ERXLongResponseTask.start() method. Creates a new thread unless there already exists one.

Specified by:
start in interface ERXLongResponseTask

pageForException

protected WOComponent pageForException(Exception exception)
Override this to return an exception page suitable for the given exception. This implementation just re-throws the exception.

Parameters:
exception -
Returns:
page for the exceptino

refreshPageForStatus

protected WOComponent refreshPageForStatus(Object aStatus)
Override this to return and modify the refresh page. This is called while the task is still running. Note that is the place where you can call ERXLongResponse.setRefreshInterval(int) to set the next refresh time.

Parameters:
aStatus -
Returns:

pageForResult

protected WOComponent pageForResult(Object aResult)
Override this to return the page after the task was completed without beeing stopped. Whether or not this counts as a success should be divined from the result object. This is the same object you return after being asked for result().

Parameters:
aResult - some result object
Returns:
result page for successfu completion

cancelPageForStatus

protected WOComponent cancelPageForStatus(Object aStatus)
Override this to return a sensible page to show after the task was stopped. The default implementation returns the refresh component's top-level page

Parameters:
aStatus - some status object
Returns:
result page for the cancelled task.

nextPage

public WOComponent nextPage()
Default implementation that controls the pages returned on each iteration.

Specified by:
nextPage in interface ERXLongResponseTask
Returns:
next page according to inner status.

performAction

public abstract Object performAction()
You need to override this and perform your long running task.

Returns:
result of performing the action

Last updated: Do, Dez 9, 2004 • 12:46 PM CET

Copyright © 2002 – 2004 Project Wonder.