com.sun.pdfview
Class BaseWatchable

java.lang.Object
  extended by com.sun.pdfview.BaseWatchable
All Implemented Interfaces:
Watchable, java.lang.Runnable
Direct Known Subclasses:
PDFParser, PDFRenderer

public abstract class BaseWatchable
extends java.lang.Object
implements Watchable, java.lang.Runnable

An abstract implementation of the watchable interface, that is extended by the parser and renderer to do their thing.


Field Summary
 
Fields inherited from interface com.sun.pdfview.Watchable
COMPLETED, ERROR, NEEDS_DATA, NOT_STARTED, PAUSED, RUNNING, STOPPED, UNKNOWN
 
Constructor Summary
protected BaseWatchable()
          Creates a new instance of BaseWatchable
 
Method Summary
protected  void cleanup()
          Clean up after a set of iterations.
protected  void execute(boolean synchronous)
          Start executing this watchable
 int getStatus()
          Get the status of this watchable
 void go()
          Start this watchable and run in a new thread until it is finished or stopped.
 void go(boolean synchronous)
          Start this watchable and run until it is finished or stopped.
 void go(int steps)
          Start this watchable and run for the given number of steps or until finished or stopped.
 void go(long millis)
          Start this watchable and run for the given amount of time, or until finished or stopped.
 boolean isExecutable()
          return true if this watchable is ready to be executed
 boolean isFinished()
          Return whether this watchable has finished.
static boolean isSuppressSetErrorStackTrace()
          return true if we would be suppressing setError stack traces.
protected abstract  int iterate()
          Perform a single iteration of this watchable.
 void run()
           
protected  void setError(java.lang.Exception error)
          Set an error on this watchable
protected  void setStatus(int status)
          Set the status of this watchable
static void setSuppressSetErrorStackTrace(boolean suppressTrace)
          set suppression of stack traces from setError.
protected  void setup()
          Prepare for a set of iterations.
 void stop()
          Stop this watchable.
 void waitForFinish()
          Wait for this watchable to finish
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BaseWatchable

protected BaseWatchable()
Creates a new instance of BaseWatchable

Method Detail

iterate

protected abstract int iterate()
                        throws java.lang.Exception
Perform a single iteration of this watchable. This is the minimum granularity which the go() commands operate over.

Returns:
one of three values:
  • Watchable.RUNNING if there is still data to be processed
  • Watchable.NEEDS_DATA if there is no data to be processed but the execution is not yet complete
  • Watchable.COMPLETED if the execution is complete
Throws:
java.lang.Exception

setup

protected void setup()
Prepare for a set of iterations. Called before the first iterate() call in a sequence. Subclasses should extend this method if they need to do anything to setup.


cleanup

protected void cleanup()
Clean up after a set of iterations. Called after iteration has stopped due to completion, manual stopping, or error.


run

public void run()
Specified by:
run in interface java.lang.Runnable

getStatus

public int getStatus()
Get the status of this watchable

Specified by:
getStatus in interface Watchable
Returns:
one of the well-known statuses

isFinished

public boolean isFinished()
Return whether this watchable has finished. A watchable is finished when its status is either COMPLETED, STOPPED or ERROR


isExecutable

public boolean isExecutable()
return true if this watchable is ready to be executed


stop

public void stop()
Stop this watchable. Stop will cause all processing to cease, and the watchable to be destroyed.

Specified by:
stop in interface Watchable

go

public void go()
Start this watchable and run in a new thread until it is finished or stopped. Note the watchable may be stopped if go() with a different time is called during execution.

Specified by:
go in interface Watchable

go

public void go(boolean synchronous)
Start this watchable and run until it is finished or stopped. Note the watchable may be stopped if go() with a different time is called during execution.

Parameters:
synchronous - if true, run in this thread

go

public void go(int steps)
Start this watchable and run for the given number of steps or until finished or stopped.

Specified by:
go in interface Watchable
Parameters:
steps - the number of steps to run for

go

public void go(long millis)
Start this watchable and run for the given amount of time, or until finished or stopped.

Specified by:
go in interface Watchable
Parameters:
millis - the number of milliseconds to run for

waitForFinish

public void waitForFinish()
Wait for this watchable to finish


execute

protected void execute(boolean synchronous)
Start executing this watchable

Parameters:
synchronous - if true, run in this thread

setStatus

protected void setStatus(int status)
Set the status of this watchable


isSuppressSetErrorStackTrace

public static boolean isSuppressSetErrorStackTrace()
return true if we would be suppressing setError stack traces.

Returns:
boolean

setSuppressSetErrorStackTrace

public static void setSuppressSetErrorStackTrace(boolean suppressTrace)
set suppression of stack traces from setError.

Parameters:
suppressTrace -

setError

protected void setError(java.lang.Exception error)
Set an error on this watchable