public final class BitExp extends Object
Exp
.
The bin expression argument in these methods can be a reference to a bin or the result of another expression. Expressions that modify bin values are only used for temporary expression evaluation and are not permanently applied to the bin. Bit modify expressions return the blob bin's value.
Offset orientation is left-to-right. Negative offsets are supported. If the offset is negative, the offset starts backwards from end of the bitmap. If an offset is out of bounds, a parameter error will be returned.
Constructor and Description |
---|
BitExp() |
Modifier and Type | Method and Description |
---|---|
static Exp |
add(BitPolicy policy,
Exp bitOffset,
Exp bitSize,
Exp value,
boolean signed,
BitOverflowAction action,
Exp bin)
Create expression that adds value to byte[] bin starting at bitOffset for bitSize and returns byte[].
|
static Exp |
and(BitPolicy policy,
Exp bitOffset,
Exp bitSize,
Exp value,
Exp bin)
Create expression that performs bitwise "and" on value and byte[] bin at bitOffset for bitSize
and returns byte[].
|
static Exp |
count(Exp bitOffset,
Exp bitSize,
Exp bin)
Create expression that returns integer count of set bits from byte[] bin starting at
bitOffset for bitSize.
|
static Exp |
get(Exp bitOffset,
Exp bitSize,
Exp bin)
Create expression that returns bits from byte[] bin starting at bitOffset for bitSize.
|
static Exp |
getInt(Exp bitOffset,
Exp bitSize,
boolean signed,
Exp bin)
Create expression that returns integer from byte[] bin starting at bitOffset for bitSize.
|
static Exp |
insert(BitPolicy policy,
Exp byteOffset,
Exp value,
Exp bin)
Create expression that inserts value bytes into byte[] bin at byteOffset and returns byte[].
|
static Exp |
lscan(Exp bitOffset,
Exp bitSize,
Exp value,
Exp bin)
Create expression that returns integer bit offset of the first specified value bit in byte[] bin
starting at bitOffset for bitSize.
|
static Exp |
lshift(BitPolicy policy,
Exp bitOffset,
Exp bitSize,
Exp shift,
Exp bin)
Create expression that shifts left byte[] bin starting at bitOffset for bitSize and returns byte[].
|
static Exp |
not(BitPolicy policy,
Exp bitOffset,
Exp bitSize,
Exp bin)
Create expression that negates byte[] bin starting at bitOffset for bitSize and returns byte[].
|
static Exp |
or(BitPolicy policy,
Exp bitOffset,
Exp bitSize,
Exp value,
Exp bin)
Create expression that performs bitwise "or" on value and byte[] bin at bitOffset for bitSize
and returns byte[].
|
static Exp |
remove(BitPolicy policy,
Exp byteOffset,
Exp byteSize,
Exp bin)
Create expression that removes bytes from byte[] bin at byteOffset for byteSize and returns byte[].
|
static Exp |
resize(BitPolicy policy,
Exp byteSize,
int resizeFlags,
Exp bin)
Create expression that resizes byte[] to byteSize according to resizeFlags (See
BitResizeFlags )
and returns byte[]. |
static Exp |
rscan(Exp bitOffset,
Exp bitSize,
Exp value,
Exp bin)
Create expression that returns integer bit offset of the last specified value bit in byte[] bin
starting at bitOffset for bitSize.
|
static Exp |
rshift(BitPolicy policy,
Exp bitOffset,
Exp bitSize,
Exp shift,
Exp bin)
Create expression that shifts right byte[] bin starting at bitOffset for bitSize and returns byte[].
|
static Exp |
set(BitPolicy policy,
Exp bitOffset,
Exp bitSize,
Exp value,
Exp bin)
Create expression that sets value on byte[] bin at bitOffset for bitSize and returns byte[].
|
static Exp |
setInt(BitPolicy policy,
Exp bitOffset,
Exp bitSize,
Exp value,
Exp bin)
Create expression that sets value to byte[] bin starting at bitOffset for bitSize and returns byte[].
|
static Exp |
subtract(BitPolicy policy,
Exp bitOffset,
Exp bitSize,
Exp value,
boolean signed,
BitOverflowAction action,
Exp bin)
Create expression that subtracts value from byte[] bin starting at bitOffset for bitSize and returns byte[].
|
static Exp |
xor(BitPolicy policy,
Exp bitOffset,
Exp bitSize,
Exp value,
Exp bin)
Create expression that performs bitwise "xor" on value and byte[] bin at bitOffset for bitSize
and returns byte[].
|
public static Exp resize(BitPolicy policy, Exp byteSize, int resizeFlags, Exp bin)
BitResizeFlags
)
and returns byte[].
// Resize bin "a" and compare bit count
Exp.eq(
BitExp.count(Exp.val(0), Exp.val(3),
BitExp.resize(BitPolicy.Default, Exp.val(4), 0, Exp.blobBin("a"))),
Exp.val(2))
public static Exp insert(BitPolicy policy, Exp byteOffset, Exp value, Exp bin)
// Insert bytes into bin "a" and compare bit count
Exp.eq(
BitExp.count(Exp.val(0), Exp.val(3),
BitExp.insert(BitPolicy.Default, Exp.val(1), Exp.val(bytes), Exp.blobBin("a"))),
Exp.val(2))
public static Exp remove(BitPolicy policy, Exp byteOffset, Exp byteSize, Exp bin)
// Remove bytes from bin "a" and compare bit count
Exp.eq(
BitExp.count(Exp.val(0), Exp.val(3),
BitExp.remove(BitPolicy.Default, Exp.val(2), Exp.val(3), Exp.blobBin("a"))),
Exp.val(2))
public static Exp set(BitPolicy policy, Exp bitOffset, Exp bitSize, Exp value, Exp bin)
// Set bytes in bin "a" and compare bit count
Exp.eq(
BitExp.count(Exp.val(0), Exp.val(3),
BitExp.set(BitPolicy.Default, Exp.val(13), Exp.val(3), Exp.val(bytes), Exp.blobBin("a"))),
Exp.val(2))
public static Exp or(BitPolicy policy, Exp bitOffset, Exp bitSize, Exp value, Exp bin)
public static Exp xor(BitPolicy policy, Exp bitOffset, Exp bitSize, Exp value, Exp bin)
public static Exp and(BitPolicy policy, Exp bitOffset, Exp bitSize, Exp value, Exp bin)
public static Exp not(BitPolicy policy, Exp bitOffset, Exp bitSize, Exp bin)
public static Exp lshift(BitPolicy policy, Exp bitOffset, Exp bitSize, Exp shift, Exp bin)
public static Exp rshift(BitPolicy policy, Exp bitOffset, Exp bitSize, Exp shift, Exp bin)
public static Exp add(BitPolicy policy, Exp bitOffset, Exp bitSize, Exp value, boolean signed, BitOverflowAction action, Exp bin)
BitOverflowAction
is used.
public static Exp subtract(BitPolicy policy, Exp bitOffset, Exp bitSize, Exp value, boolean signed, BitOverflowAction action, Exp bin)
BitOverflowAction
is used.
public static Exp setInt(BitPolicy policy, Exp bitOffset, Exp bitSize, Exp value, Exp bin)
public static Exp get(Exp bitOffset, Exp bitSize, Exp bin)
// Bin "a" bits = [0b10000000]
Exp.eq(
BitExp.get(Exp.val(9), Exp.val(5), Exp.blobBin("a")),
Exp.val(new byte[] {(byte)0b10000000}))
public static Exp count(Exp bitOffset, Exp bitSize, Exp bin)
// Bin "a" bit count <= 2
Exp.le(BitExp.count(Exp.val(0), Exp.val(5), Exp.blobBin("a")), Exp.val(2))
public static Exp lscan(Exp bitOffset, Exp bitSize, Exp value, Exp bin)
// lscan(a) == 5
Exp.eq(BitExp.lscan(Exp.val(24), Exp.val(8), Exp.val(true), Exp.blobBin("a")), Exp.val(5))
bitOffset
- offset int expressionbitSize
- size int expressionvalue
- boolean expressionbin
- bin or blob value expressionpublic static Exp rscan(Exp bitOffset, Exp bitSize, Exp value, Exp bin)
// rscan(a) == 7
Exp.eq(BitExp.rscan(Exp.val(32), Exp.val(8), Exp.val(true), Exp.blobBin("a")), Exp.val(7))
bitOffset
- offset int expressionbitSize
- size int expressionvalue
- boolean expressionbin
- bin or blob value expressionpublic static Exp getInt(Exp bitOffset, Exp bitSize, boolean signed, Exp bin)
// getInt(a) == 16899
Exp.eq(BitExp.getInt(Exp.val(8), Exp.val(16), false, Exp.blobBin("a")), Exp.val(16899))
Copyright © 2012–2023 Aerospike, Inc. All rights reserved.