Class IteratingBufferedRunningLengthWord

  • All Implemented Interfaces:
    IteratingRLW, Cloneable

    public final class IteratingBufferedRunningLengthWord
    extends Object
    implements IteratingRLW, Cloneable
    Mostly for internal use. Similar to BufferedRunningLengthWord, but automatically advances to the next BufferedRunningLengthWord as words are discarded.
    Since:
    0.4.0
    Author:
    David McIntosh
    • Constructor Detail

      • IteratingBufferedRunningLengthWord

        public IteratingBufferedRunningLengthWord​(EWAHIterator iterator)
        Instantiates a new iterating buffered running length word.
        Parameters:
        iterator - iterator
      • IteratingBufferedRunningLengthWord

        public IteratingBufferedRunningLengthWord​(EWAHCompressedBitmap bitmap)
        Instantiates a new iterating buffered running length word.
        Parameters:
        bitmap - over which we want to iterate
    • Method Detail

      • discardFirstWords

        public void discardFirstWords​(long x)
        Discard first words, iterating to the next running length word if needed.
        Specified by:
        discardFirstWords in interface IteratingRLW
        Parameters:
        x - the number of words to be discarded
      • discardLiteralWords

        public void discardLiteralWords​(long x)
        Description copied from interface: IteratingRLW
        Discard x literal words (assumes that there is no running word)
        Specified by:
        discardLiteralWords in interface IteratingRLW
        Parameters:
        x - the number of words to discard
      • next

        public boolean next()
        Move to the next RunningLengthWord
        Specified by:
        next in interface IteratingRLW
        Returns:
        whether the move was possible
      • discharge

        public long discharge​(BitmapStorage container,
                              long max)
        Write out up to max words, returns how many were written
        Parameters:
        container - target for writes
        max - maximal number of writes
        Returns:
        how many written
      • dischargeNegated

        public long dischargeNegated​(BitmapStorage container,
                                     long max)
        Write out up to max words (negated), returns how many were written
        Parameters:
        container - target for writes
        max - maximal number of writes
        Returns:
        how many written
      • dischargeAsEmpty

        public void dischargeAsEmpty​(BitmapStorage container)
        Write out the remain words, transforming them to zeroes.
        Parameters:
        container - target for writes
      • discharge

        public void discharge​(BitmapStorage container)
        Write out the remaining words
        Parameters:
        container - target for writes
      • getLiteralWordAt

        public long getLiteralWordAt​(int index)
        Get the nth literal word for the current running length word
        Specified by:
        getLiteralWordAt in interface IteratingRLW
        Parameters:
        index - zero based index
        Returns:
        the literal word
      • getNumberOfLiteralWords

        public int getNumberOfLiteralWords()
        Gets the number of literal words for the current running length word.
        Specified by:
        getNumberOfLiteralWords in interface IteratingRLW
        Returns:
        the number of literal words
      • getRunningBit

        public boolean getRunningBit()
        Gets the running bit.
        Specified by:
        getRunningBit in interface IteratingRLW
        Returns:
        the running bit
      • getRunningLength

        public long getRunningLength()
        Gets the running length.
        Specified by:
        getRunningLength in interface IteratingRLW
        Returns:
        the running length
      • size

        public long size()
        Size in uncompressed words of the current running length word.
        Specified by:
        size in interface IteratingRLW
        Returns:
        the long
      • writeLiteralWords

        public void writeLiteralWords​(int numWords,
                                      BitmapStorage container)
        write the first N literal words to the target bitmap. Does not discard the words or perform iteration.
        Parameters:
        numWords - number of words to be written
        container - where we write
      • writeNegatedLiteralWords

        public void writeNegatedLiteralWords​(int numWords,
                                             BitmapStorage container)
        write the first N literal words (negated) to the target bitmap. Does not discard the words or perform iteration.
        Parameters:
        numWords - number of words to be written
        container - where we write