Package org.jfree.report.util

# Class Worker

java.lang.Object
java.lang.Thread
org.jfree.report.util.Worker

All Implemented Interfaces:
  `Runnable`

public final class Worker extends Thread
A simple worker implementation. The worker executes a assigned workload and then sleeps until another workload is set or the worker is killed.

Author:
  Thomas Morgner

## Nested Class Summary

## Nested classes/interfaces inherited from class java.lang.Thread

`Thread.Builder, Thread.State, Thread.UncaughtExceptionHandler`

## Field Summary

### Fields inherited from class java.lang.Thread

`MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY`

## Constructor Summary

Constructors
Constructor
Description
`Worker()`
Creates a new worker.

## Method Summary

Modifier and Type
Method
Description
`void`
`finish()`
Kills the worker after he completed his work.
`WorkerPool`
`getWorkerPool()`
Returns the worker's assigned pool.
`Runnable`
`getWorkload()`
Returns the workload object.
`boolean`
`isAvailable()`
Checks, whether this worker has some work to do.
`boolean`
`isFinish()`
Checks whether this worker has received the signal to finish and die.
`void`
`run()`
If a workload is set, process it.
`void`
`setWorkerPool(WorkerPool workerPool)`
Defines the worker's assigned pool.
`void`
`setWorkload(Runnable r)`
Set the next workload for this worker.

### Methods inherited from class java.lang.Thread

`activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, isVirtual, join, join, join, join, ofPlatform, ofVirtual, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, sleep, start, startVirtualThread, stop, suspend, threadId, toString, yield`

### Methods inherited from class java.lang.Object

`equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Constructor Details

### Worker

public Worker()
Creates a new worker.

## Method Details

### setWorkload

public void setWorkload(Runnable r)
Set the next workload for this worker.

Parameters:
  `r` - the next workload for the worker.
Throws:
  `IllegalStateException` - if the worker is not idle.

### getWorkload

public Runnable getWorkload()
Returns the workload object.

Returns:
  the runnable executed by this worker thread.

### finish

public void finish()
Kills the worker after he completed his work. Awakens the worker if he's sleeping, so that the worker dies without delay.

### isAvailable

public boolean isAvailable()
Checks, whether this worker has some work to do.

Returns:
  true, if this worker has no more work and is currently sleeping.

### run

public void run()
If a workload is set, process it. After the workload is processed, this worker starts to sleep until a new workload is set for the worker or the worker got the finish() request.

Specified by:
  `run` in interface `Runnable`
Overrides:
  `run` in class `Thread`

### isFinish

public boolean isFinish()
Checks whether this worker has received the signal to finish and die.

Returns:
  true, if the worker should finish the work and end the thread.

### getWorkerPool

public WorkerPool getWorkerPool()
Returns the worker's assigned pool.

Returns:
  the worker pool (or null, if the worker is not assigned to a pool).

### setWorkerPool

public void setWorkerPool(WorkerPool workerPool)
Defines the worker's assigned pool.

Parameters:
  `workerPool` - the worker pool (or null, if the worker is not assigned to a pool).