Class BaseProgressMonitor
- java.lang.Object
-
- io.github.duckasteroid.progress.base.AbstractProgressMonitor
-
- io.github.duckasteroid.progress.base.BaseProgressMonitor
-
- All Implemented Interfaces:
io.github.duckasteroid.progress.ProgressMonitor
,java.io.Closeable
,java.lang.AutoCloseable
,java.lang.Comparable<io.github.duckasteroid.progress.ProgressMonitor>
public final class BaseProgressMonitor extends AbstractProgressMonitor implements io.github.duckasteroid.progress.ProgressMonitor
A root implementation of the progress monitor interface. Capable of creating sub tasks as required. Maintains and notifies a list of listeners.
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.concurrent.atomic.AtomicBoolean
cancelled
Has cancellation been requested.protected java.util.List<ProgressMonitorListener>
listeners
A set of listeners.
-
Constructor Summary
Constructors Constructor Description BaseProgressMonitor()
BaseProgressMonitor(long size)
BaseProgressMonitor(java.lang.String name)
BaseProgressMonitor(java.lang.String name, long size)
BaseProgressMonitor(java.lang.String name, long size, java.util.Collection<ProgressMonitorListener> listeners)
Create a new progress monitor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addProgressMonitorListener(ProgressMonitorListener listener)
java.util.List<io.github.duckasteroid.progress.ProgressMonitor>
getAllActive()
A list of all the active monitors in this monitor and all children that are active.java.util.List<io.github.duckasteroid.progress.ProgressMonitor>
getContext()
Always returns an empty list.io.github.duckasteroid.progress.ProgressMonitor
getParent()
Always returnsnull
.boolean
isCancelled()
void
notifyListeners(io.github.duckasteroid.progress.ProgressMonitor source, ProgressUpdateType updateType)
Notify any listeners of an update.protected void
onDone()
Called exactly once when this transitions to the done state.void
removeProgressMonitorListener(ProgressMonitorListener listener)
void
setCancelled(boolean cancelled)
-
Methods inherited from class io.github.duckasteroid.progress.base.AbstractProgressMonitor
appendActive, compareTo, done, equals, getFractionDone, getSize, getStatus, getTaskName, getUnit, getWorkDone, hashCode, isDone, newSubTask, newSubTask, removeSubTask, setSize, setStatus, setUnit, toString, updateWork, worked, worked
-
-
-
-
Field Detail
-
listeners
protected final transient java.util.List<ProgressMonitorListener> listeners
A set of listeners.
-
cancelled
protected java.util.concurrent.atomic.AtomicBoolean cancelled
Has cancellation been requested.
-
-
Constructor Detail
-
BaseProgressMonitor
public BaseProgressMonitor()
-
BaseProgressMonitor
public BaseProgressMonitor(java.lang.String name)
-
BaseProgressMonitor
public BaseProgressMonitor(java.lang.String name, long size)
-
BaseProgressMonitor
public BaseProgressMonitor(java.lang.String name, long size, java.util.Collection<ProgressMonitorListener> listeners)
Create a new progress monitor.- Parameters:
name
- the name of the monitorsize
- the size (units of work)listeners
- any listeners for the monitor
-
BaseProgressMonitor
public BaseProgressMonitor(long size)
-
-
Method Detail
-
addProgressMonitorListener
public void addProgressMonitorListener(ProgressMonitorListener listener)
-
removeProgressMonitorListener
public void removeProgressMonitorListener(ProgressMonitorListener listener)
-
notifyListeners
public void notifyListeners(io.github.duckasteroid.progress.ProgressMonitor source, ProgressUpdateType updateType)
Description copied from class:AbstractProgressMonitor
Notify any listeners of an update.- Specified by:
notifyListeners
in classAbstractProgressMonitor
- Parameters:
source
- the source of the updateupdateType
- the type of update being made
-
onDone
protected void onDone()
Description copied from class:AbstractProgressMonitor
Called exactly once when this transitions to the done state. (used to do update in subtasks!!)- Specified by:
onDone
in classAbstractProgressMonitor
-
getAllActive
public java.util.List<io.github.duckasteroid.progress.ProgressMonitor> getAllActive()
A list of all the active monitors in this monitor and all children that are active. As soon as a monitor is marked done - all children are removed from this list.- Returns:
- the list of all active monitors (in the order they were created - with their children after them)
-
getParent
public io.github.duckasteroid.progress.ProgressMonitor getParent()
Always returnsnull
.- Specified by:
getParent
in interfaceio.github.duckasteroid.progress.ProgressMonitor
-
getContext
public java.util.List<io.github.duckasteroid.progress.ProgressMonitor> getContext()
Always returns an empty list.- Specified by:
getContext
in interfaceio.github.duckasteroid.progress.ProgressMonitor
-
isCancelled
public boolean isCancelled()
- Specified by:
isCancelled
in interfaceio.github.duckasteroid.progress.ProgressMonitor
-
setCancelled
public void setCancelled(boolean cancelled)
- Specified by:
setCancelled
in interfaceio.github.duckasteroid.progress.ProgressMonitor
-
-