com.sun.pdfview

## Class BaseWatchable

- java.lang.Object
- - 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

Constructors
`protected` `BaseWatchable()` Creates a new instance of BaseWatchable

### Method Summary

Methods
`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