Package com.zaxxer.sparsebits
Class SparseBitSet.CopyStrategy
- java.lang.Object
-
- com.zaxxer.sparsebits.SparseBitSet.AbstractStrategy
-
- com.zaxxer.sparsebits.SparseBitSet.CopyStrategy
-
- Enclosing class:
- SparseBitSet
protected static class SparseBitSet.CopyStrategy extends SparseBitSet.AbstractStrategy
Copies the needed parts of the b set to the a set.get| 0 1 0| 0 1 1| 0 1
-
-
Field Summary
-
Fields inherited from class com.zaxxer.sparsebits.SparseBitSet.AbstractStrategy
F_OP_F_EQ_F, F_OP_X_EQ_F, X_OP_F_EQ_F, X_OP_F_EQ_X
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
CopyStrategy()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected boolean
block(int base, int u3, int v3, long[] a3, long[] b3)
Deals with a part of a block that consists of whole words, starting with the given first index, and ending with the word before the last index.protected int
properties()
Properties of this strategy.protected boolean
start(SparseBitSet b)
Instances of this class are to be serially reusable.protected boolean
word(int base, int u3, long[] a3, long[] b3, long mask)
Deal with a scan that include a partial word within a level3 block.-
Methods inherited from class com.zaxxer.sparsebits.SparseBitSet.AbstractStrategy
finish, isZeroBlock
-
-
-
-
Method Detail
-
properties
protected int properties()
Description copied from class:SparseBitSet.AbstractStrategy
Properties of this strategy.- Specified by:
properties
in classSparseBitSet.AbstractStrategy
- Returns:
- the int containing the bits representing the properties of this strategy
-
start
protected boolean start(SparseBitSet b)
Description copied from class:SparseBitSet.AbstractStrategy
Instances of this class are to be serially reusable. To start a particular use, an instance is (re-)started by calling this method. It is passed the reference to the other bit set (usually to allow a check on whether it is null or not, so as to simplify the implementation of the block() method.- Specified by:
start
in classSparseBitSet.AbstractStrategy
- Parameters:
b
- the "other" set, for whatever checking is needed.- Returns:
- true -> if the cache should be set to zero
-
word
protected boolean word(int base, int u3, long[] a3, long[] b3, long mask)
Description copied from class:SparseBitSet.AbstractStrategy
Deal with a scan that include a partial word within a level3 block. All that is required is that the result be stored (if needed) into the given a set block at the correct position, and that the operation only affect those bits selected by 1 bits in the mask.- Specified by:
word
in classSparseBitSet.AbstractStrategy
- Parameters:
base
- the base index of the block (to be used if needed)u3
- the index of the word within blocka3
- the level3 block from the a set.b3
- the (nominal) level3 block from the b set (not null).mask
- for the (partial) word- Returns:
- true if the resulting word is zero
-
block
protected boolean block(int base, int u3, int v3, long[] a3, long[] b3)
Description copied from class:SparseBitSet.AbstractStrategy
Deals with a part of a block that consists of whole words, starting with the given first index, and ending with the word before the last index. For the words processed, the return value should indicate whether all those resulting words were zero, or not.- Specified by:
block
in classSparseBitSet.AbstractStrategy
- Parameters:
base
- the base index of the block (to be used if needed)u3
- the index of the first word within block to processv3
- the index of the last word, which may be within blocka3
- the level3 block from the a set.b3
- the (nominal) level3 block from the b set (not null).- Returns:
- true if the words scanned within the level3 block were all zero
-
-