Class FiniteProgress

  • All Implemented Interfaces:
    Progress
    Direct Known Subclasses:
    StepProgress

    public class FiniteProgress
    extends AbstractProgress
    A progress object for a given overall number of items to process. The number of already processed items at a point in time can be updated.

    The main feature of this class is to provide a String representation of the progress suitable as a message for printing to the command line interface.

    Since:
    0.1
    Author:
    Arthur Zimek
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private int total
      The overall number of items to process.
      private int totalLength
      Holds the length of a String describing the total number.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected FiniteProgress​(java.lang.String task, int total)
      Constructor.
        FiniteProgress​(java.lang.String task, int total, Logging logger)
      Constructor with auto-reporting to logging.
    • Field Detail

      • total

        private final int total
        The overall number of items to process.
      • totalLength

        private final int totalLength
        Holds the length of a String describing the total number.
    • Constructor Detail

      • FiniteProgress

        protected FiniteProgress​(java.lang.String task,
                                 int total)
        Constructor.
        Parameters:
        task - the name of the task
        total - the overall number of items to process
      • FiniteProgress

        public FiniteProgress​(java.lang.String task,
                              int total,
                              Logging logger)
        Constructor with auto-reporting to logging.
        Parameters:
        task - the name of the task
        total - the overall number of items to process
        logger - the logger to report to
    • Method Detail

      • setProcessed

        protected void setProcessed​(int processed)
                             throws java.lang.IllegalArgumentException
        Sets the number of items already processed at a time being.
        Overrides:
        setProcessed in class AbstractProgress
        Parameters:
        processed - the number of items already processed at a time being
        Throws:
        java.lang.IllegalArgumentException - if the given number is negative or exceeds the overall number of items to process
      • appendToBuffer

        public java.lang.StringBuilder appendToBuffer​(java.lang.StringBuilder buf)
        Append a string representation of the progress to the given string buffer.
        Specified by:
        appendToBuffer in interface Progress
        Specified by:
        appendToBuffer in class AbstractProgress
        Parameters:
        buf - Buffer to serialize to
        Returns:
        Buffer the data was serialized to.
      • numDigits

        private int numDigits​(int x)
        Length of a number.
        Parameters:
        x - Number
        Returns:
        Number of digits
      • isComplete

        public boolean isComplete()
        Test whether the progress was completed.
        Returns:
        Whether the progress was completed.
      • getTotal

        public int getTotal()
        Get the final value for the progress.
        Returns:
        final value
      • ensureCompleted

        public void ensureCompleted​(Logging logger)
        Ensure that the progress was completed, to make progress bars disappear
        Parameters:
        logger - Logger to report to.