The Observer-Conditioned-Observable (OCO) combines digitizing and transcoding of numeric change events. During the processing of numeric events, the transcoder converts the number from one range into another while preserving the mathematical integrity of the value. Numeric controllers that generate such events can be based in floating point numbers or integer numbers. For example, the JSpinners of Swing are based in floating point numbers, but JSliders are based in integers. Thus, the dynamic range of the JSliders is typically many orders of magnitude away from the dynamic range of the spinners. Even worse, changes in a numeric model can propagate to an integer-based spinner. This leads to quantization error and back propagation of the re-quantized value. Interactive programs use multiple viewers and controllers to alter an underlying numeric model. These can update each other in an observer-observable loop that can propagate unintended and unmanaged digitization errors. The OCO desig...
Douglas A. Lyon, Carl F. R. Weiman