Class ControlTracker<T>

  • Type Parameters:
    T - Attribute source type
    Direct Known Subclasses:
    OutputStreamControlTracker, WriterControlTracker

    public abstract class ControlTracker<T>
    extends Object
    Class used to track the state of a control allowing it to be lazily written to the output only if necessary and ensuring it can be appropriately reset when necessary
    • Method Detail

      • set

        public final void set​(T value)
        Sets the value for the control
        Parameters:
        value - Value
      • reset

        public final void reset()
                         throws IOException
        Resets the control to the default unintialized state, if necessary this will will cause the
        Throws:
        IOException
      • resetInternal

        protected abstract void resetInternal​(T value)
                                       throws IOException
        Method that derived classes must implement to add the actual logic for resetting the control against the stream
        Parameters:
        value - Value to be reset from
        Throws:
        IOException
      • apply

        public final void apply()
                         throws IOException
        Applies the control, if the current state of the control has not been previously applied to the stream then it will be applied now
        Throws:
        IOException
      • applyInternal

        protected abstract void applyInternal​(T value)
                                       throws IOException
        Method that derived classes must implement to add the actual logic for applying the control to the stream
        Parameters:
        value - Value to be applied
        Throws:
        IOException