An immutable object containing all interesting values in a
ProgressReporter
.
This represents a snapshot of all values at a single moment so instantiation of this class should be guarded against multi-threaded modification of the source ProgressReporter
This class is the only way an observer can query the properties of a ProgressReporter
; though they do not have to be, all variables are declared final
to help remind the user of this class that modification to any of its properties would have no effect on the reporter itself.
An exception to this insulation is the objectData
variable; both the reporter and the ProgressReport consumer have full access to it. This is to facilitate advanced 2-way communication between the 2 parties.
@author knguyen
@see ProgressReporter#getProgressReport()