uk.ac.starlink.table.join
Interface ProgressIndicator

All Known Implementing Classes:
NullProgressIndicator, RangeModelProgressIndicator, TextProgressIndicator

public interface ProgressIndicator

Callback interface for indicating how an algorithm is progressing. An instance can be passed to a time-consuming routine which will make periodic calls on it as the work progresses.

A user of an instance of this interface can be expected to call all the methods it defines from the same thread, i.e. implementations do not need to be thread-safe. However no requirements should be placed on what thread this is; in particular it must be OK to call it from threads other than the AWT event dispatch thread.

Since:
24 Mar 2004

Method Summary
 void endStage()
          Indicates that no more setLevel(double) calls will be made until the next startStage(java.lang.String).
 void logMessage(String msg)
          Registers a comment about the progress of the algorithm.
 void setLevel(double level)
          Specifies that the work of the most recently-started stage is a certain proportion complete.
 void startStage(String stage)
          Indicates that a number of setLevel(double) calls may follow, followed by a endStage() call.
 

Method Detail

startStage

void startStage(String stage)
Indicates that a number of setLevel(double) calls may follow, followed by a endStage() call.

Parameters:
stage - name/description of the processing stage

setLevel

void setLevel(double level)
              throws InterruptedException
Specifies that the work of the most recently-started stage is a certain proportion complete. Calls to this method must take place between paired calls to startStage(java.lang.String) and endStage(), preferably with non-decreasing values of level.

The method may throw an InterruptedException as a message to the caller that the work should be interrupted. A caller which receives such an exception should stop using resources and tidy up as soon as is convenient.

Parameters:
level - value between 0. and 1. indicating amount of completion
Throws:
InterruptedException - as a message to the caller that the work is no longer required Is this abuse of InterruptedException??

endStage

void endStage()
Indicates that no more setLevel(double) calls will be made until the next startStage(java.lang.String).


logMessage

void logMessage(String msg)
Registers a comment about the progress of the algorithm. This should not be called between calls to startStage(java.lang.String) and endStage().

Parameters:
msg - message

Copyright © 2004 CLRC: Central Laboratory of the Research Councils. All rights reserved.