Class AbstractProgressLogger

  • All Implemented Interfaces:
    ProgressLoggerInterface
    Direct Known Subclasses:
    ProgressLogger

    public abstract class AbstractProgressLogger
    extends Object
    implements ProgressLoggerInterface
    Abstract implementation of a Little progress logging class to facilitate consistent output of useful information when progressing through a stream of SAM records. Concrete subclasses must provide the logger
    • Constructor Detail

      • AbstractProgressLogger

        protected AbstractProgressLogger​(String noun,
                                         String verb,
                                         int n)
        Construct an AbstractProgressLogger. This must be called by any subclasses
        Parameters:
        n - the frequency with which to output (i.e. every N records)
        verb - the verb to log, e.g. "Processed, Read, Written".
        noun - the noun to use when logging, e.g. "Records, Variants, Loci"
    • Method Detail

      • log

        protected abstract void log​(String... message)
        Log a message to whatever logger is being used
        Parameters:
        message - a message to be logged by the logger (recommended output level is INFO or the equivalent)
      • log

        public boolean log()
        Logs the last last record if it wasn't previously logged.
        Returns:
        boolean true if logging was triggered, false otherwise
      • record

        protected boolean record​(String chrom,
                                 int pos,
                                 String rname)
      • record

        public boolean record​(SAMRecord rec)
        Records that a given record has been processed and triggers logging if necessary.
        Specified by:
        record in interface ProgressLoggerInterface
        Returns:
        boolean true if logging was triggered, false otherwise
      • getCount

        public long getCount()
        Returns the count of records processed.
      • getElapsedSeconds

        public long getElapsedSeconds()
        Returns the number of seconds since progress tracking began.
      • reset

        public void reset()
        Resets the start time to now and the number of records to zero.
        Specified by:
        reset in interface ProgressLoggerInterface