Package net.sourceforge.jiu.ops
Class Operation
- java.lang.Object
-
- net.sourceforge.jiu.ops.Operation
-
- Direct Known Subclasses:
AutoDetectColorType
,BatchProcessorOperation
,Histogram1DCreator
,Histogram3DCreator
,ImageCodec
,ImagesToImageOperation
,ImageToImageOperation
,MeanDifference
,TextureAnalysis
public abstract class Operation extends Object
Base class for all operations.
It supports progress notification. All classes that want to be notified by a new progress level of the operation (defined as value between 0.0f (nothing has been done so far) to 1.0f (operation finished)) must implement the
ProgressListener
interface.An abortion state is stored in each Operation object. It should be queried by a running operation from time to time (via
getAbort()
- if it returnstrue
, the operation should terminate and return control to the caller. The abort state can be modified usingsetAbort(boolean)
.- Author:
- Marco Schmidt
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
abort
private Vector
progressListeners
-
Constructor Summary
Constructors Constructor Description Operation()
This constructor creates two internal empty lists for progress listeners and parameters.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addProgressListener(ProgressListener progressListener)
Adds the argument progress listener to the internal list of progress listeners.void
addProgressListeners(Vector progressListeners)
Adds several progress listeners to this operation object.boolean
getAbort()
Returns the current abort status.void
process()
This method does the actual work of the operation.void
removeProgressListener(ProgressListener progressListener)
Removes the argument progress listener from the internal list of progress listeners.void
setAbort(boolean newAbortStatus)
Sets a new abort status.void
setProgress(float progress)
This method will notify all registered progress listeners about a new progress level.void
setProgress(int zeroBasedIndex, int totalItems)
This method will notify all registered progress listeners about a new progress level.
-
-
-
Field Detail
-
abort
private boolean abort
-
progressListeners
private Vector progressListeners
-
-
Method Detail
-
addProgressListener
public void addProgressListener(ProgressListener progressListener)
Adds the argument progress listener to the internal list of progress listeners. Does not check if the argument already exists in that list, so you have to check for duplicates yourself.- Parameters:
progressListener
- the progress listener to be added
-
addProgressListeners
public void addProgressListeners(Vector progressListeners)
Adds several progress listeners to this operation object.- Parameters:
progressListeners
- contains zero or more objects implementing ProgressListener; each will be added by callingaddProgressListener(net.sourceforge.jiu.ops.ProgressListener)
on it
-
getAbort
public boolean getAbort()
Returns the current abort status. Iftrue
, a running operation should terminate what it is doing (return fromprocess()
).- Returns:
- abort status
- See Also:
setAbort(boolean)
-
process
public void process() throws MissingParameterException, OperationFailedException, WrongParameterException
This method does the actual work of the operation. It must be called after all parameters have been given to the operation object.- Throws:
WrongParameterException
- if at least one of the input parameters was not initialized appropriately (values out of the valid interval, etc.)MissingParameterException
- if any mandatory parameter was not given to the operationOperationFailedException
-
removeProgressListener
public void removeProgressListener(ProgressListener progressListener)
Removes the argument progress listener from the internal list of progress listeners.- Parameters:
progressListener
- the progress listener to be removed
-
setAbort
public void setAbort(boolean newAbortStatus)
Sets a new abort status.- Parameters:
newAbortStatus
- the new status- See Also:
getAbort()
-
setProgress
public void setProgress(float progress)
This method will notify all registered progress listeners about a new progress level. The argument must be from 0.0f to 1.0f where 0.0f marks the beginning and 1.0f completion. The progress value should not be smaller than any value that was previously set.- Parameters:
progress
- new progress value, from 0.0 to 1.0
-
setProgress
public void setProgress(int zeroBasedIndex, int totalItems)
This method will notify all registered progress listeners about a new progress level. Simply checks the arguments and callssetProgress((float)zeroBasedIndex / (float)totalItems);
.- Parameters:
zeroBasedIndex
- the index of the item that was just processed, zero-basedtotalItems
- the number of items that will be processed
-
-