com.googlecode.javaewah
Class IteratingBufferedRunningLengthWord

java.lang.Object
  extended by com.googlecode.javaewah.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 Summary
IteratingBufferedRunningLengthWord(EWAHCompressedBitmap bitmap)
          Instantiates a new iterating buffered running length word.
IteratingBufferedRunningLengthWord(EWAHIterator iterator)
          Instantiates a new iterating buffered running length word.
 
Method Summary
 IteratingBufferedRunningLengthWord clone()
           
 void discardFirstWords(long x)
          Discard first words, iterating to the next running length word if needed.
 void discardRunningWords()
          Discard all running words
 void discharge(BitmapStorage container)
          Write out the remaining words
 long discharge(BitmapStorage container, long max)
          Write out up to max words, returns how many were written
 void dischargeAsEmpty(BitmapStorage container)
          Write out the remain words, transforming them to zeroes.
 long dischargeNegated(BitmapStorage container, long max)
          Write out up to max words (negated), returns how many were written
 long getLiteralWordAt(int index)
          Get the nth literal word for the current running length word
 int getNumberOfLiteralWords()
          Gets the number of literal words for the current running length word.
 boolean getRunningBit()
          Gets the running bit.
 long getRunningLength()
          Gets the running length.
 boolean next()
          Move to the next RunningLengthWord
 long size()
          Size in uncompressed words of the current running length word.
 void writeLiteralWords(int numWords, BitmapStorage container)
          write the first N literal words to the target bitmap.
 void writeNegatedLiteralWords(int numWords, BitmapStorage container)
          write the first N literal words (negated) to the target bitmap.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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

discardRunningWords

public void discardRunningWords()
Description copied from interface: IteratingRLW
Discard all running words

Specified by:
discardRunningWords in interface IteratingRLW

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

clone

public IteratingBufferedRunningLengthWord clone()
                                         throws CloneNotSupportedException
Specified by:
clone in interface IteratingRLW
Overrides:
clone in class Object
Returns:
a copy of the iterator
Throws:
CloneNotSupportedException - this should not be thrown in theory


Copyright © 2014. All Rights Reserved.