本文整理了Java中co.cask.cdap.api.common.Bytes.equals()
方法的一些代码示例,展示了Bytes.equals()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Bytes.equals()
方法的具体详情如下:
包路径:co.cask.cdap.api.common.Bytes
类名称:Bytes
方法名:equals
[英]Checks segments of two byte arrays for equality.
[中]检查两字节数组的段是否相等。
代码示例来源:origin: cdapio/cdap
@Override
protected boolean matches(byte[] columnValue) {
return Bytes.equals(columnValue, value);
}
}
代码示例来源:origin: co.cask.cdap/cdap-data-fabric
private static boolean columnHasPrefix(byte[] qualifierBuffer, int qualifierOffset, byte[] prefix) {
// only comparing prefix bytes so we use the prefix length for both cases
return Bytes.equals(prefix, 0, prefix.length, qualifierBuffer, qualifierOffset, prefix.length);
}
代码示例来源:origin: cdapio/cdap
@Override
public boolean equals(Object object) {
if (object instanceof AccessToken) {
AccessToken other = (AccessToken) object;
return Objects.equal(identifier, other.identifier) &&
keyId == other.keyId &&
Bytes.equals(digest, other.digest);
}
return false;
}
代码示例来源:origin: cdapio/cdap
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
MDSKey that = (MDSKey) o;
return Bytes.equals(this.key, that.key);
}
代码示例来源:origin: co.cask.cdap/cdap-data-fabric
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
MDSKey that = (MDSKey) o;
return Bytes.equals(this.key, that.key);
}
代码示例来源:origin: cdapio/cdap
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
Field field = (Field) o;
if (!Objects.equals(fieldType, field.fieldType)) {
return false;
}
if (fieldType.getType() == FieldType.Type.BYTES) {
return Bytes.equals((byte[]) value, (byte[]) field.getValue());
}
return Objects.equals(value, field.value);
}
代码示例来源:origin: co.cask.cdap/cdap-data-fabric
public synchronized boolean swap(byte[] row, byte[] column, byte[] oldValue, byte[] newValue) throws IOException {
byte[] existing = getRow(row, new byte[][] { column }, null, null, -1, null).get(column);
// verify
if (oldValue == null && existing != null) {
return false;
}
if (oldValue != null && (existing == null || !Bytes.equals(oldValue, existing))) {
return false;
}
// write
if (newValue == null) {
// to-do
deleteColumn(row, column);
} else {
persist(Collections.singletonMap(row, Collections.singletonMap(column, newValue)), System.currentTimeMillis());
}
return true;
}
代码示例来源:origin: cdapio/cdap
public synchronized boolean swap(byte[] row, byte[] column, byte[] oldValue, byte[] newValue) throws IOException {
byte[] existing = getRow(row, new byte[][] { column }, null, null, -1, null).get(column);
// verify
if (oldValue == null && existing != null) {
return false;
}
if (oldValue != null && (existing == null || !Bytes.equals(oldValue, existing))) {
return false;
}
// write
if (newValue == null) {
// to-do
deleteColumn(row, column);
} else {
persist(Collections.singletonMap(row, Collections.singletonMap(column, newValue)), Long.MAX_VALUE);
}
return true;
}
代码示例来源:origin: cdapio/cdap
return false;
if (oldValue != null && (existingValue == null || !Bytes.equals(oldValue, existingValue.getBytes()))) {
return false;
代码示例来源:origin: co.cask.cdap/cdap-data-fabric
return false;
if (oldValue != null && (existingValue == null || !Bytes.equals(oldValue, existingValue.getBytes()))) {
return false;
代码示例来源:origin: cdapio/cdap
@Override
public final <T> void validateMAC(Codec<T> codec, Signed<T> signedMessage)
throws InvalidDigestException, InvalidKeyException {
try {
byte[] newDigest = generateMAC(signedMessage.getKeyId(), codec.encode(signedMessage.getMessage()));
if (!Bytes.equals(signedMessage.getDigestBytes(), newDigest)) {
throw new InvalidDigestException("Token signature is not valid!");
}
} catch (IOException ioe) {
throw Throwables.propagate(ioe);
}
}
代码示例来源:origin: co.cask.cdap/cdap-data-fabric
@Override
public boolean equals(Object other) {
if (!(other instanceof KeyValue)) {
return false;
}
KeyValue kv = (KeyValue) other;
// Comparing bytes should be fine doing equals test. Shouldn't have to
// worry about special .META. comparators doing straight equals.
return Bytes.equals(getBuffer(), getKeyOffset(), getKeyLength(),
kv.getBuffer(), kv.getKeyOffset(), kv.getKeyLength());
}
代码示例来源:origin: cdapio/cdap
@Override
public boolean equals(Object other) {
if (!(other instanceof KeyValue)) {
return false;
}
KeyValue kv = (KeyValue) other;
// Comparing bytes should be fine doing equals test. Shouldn't have to
// worry about special .META. comparators doing straight equals.
return Bytes.equals(getBuffer(), getKeyOffset(), getKeyLength(),
kv.getBuffer(), kv.getKeyOffset(), kv.getKeyLength());
}
代码示例来源:origin: cdapio/cdap
@Nullable
@Override
public Row next() {
// TODO: retrieve results in batches to minimize RPC overhead (requires multi-get support in table)
// keep going until we hit a non-null, non-empty data row, or we exhaust the index
for (Row indexRow = baseScanner.next(); indexRow != null; indexRow = baseScanner.next()) {
byte[] rowkey = indexRow.get(IDX_COL);
if (rowkey == null) {
LOG.warn("Row of Indexed table '{}' is missing index column. Row key: {}", getName(), indexRow.getRow());
continue;
}
byte[] columnValue = Arrays.copyOfRange(indexRow.getRow(),
column.length + 1,
indexRow.getRow().length - rowkey.length - 1);
// Verify that datarow matches the expected row key to avoid issues with column name or value
// containing the delimiter used. This is a sufficient check, as long as columns don't contain the null byte.
if (matches(columnValue)) {
Row row = table.get(rowkey);
// If a column has null byte (the key delimiter) in it, then we need to check against the data row's column
// to be sure this row isn't a false positive in the scan.
// For reference, take a look at IndexedTableTest#testIndexKeyDelimiterAmbiguity
if (hasColumnWithDelimiter && !Bytes.equals(row.get(column), columnValue)) {
continue;
}
return row;
}
}
// end of index
return null;
}
代码示例来源:origin: caskdata/cdap
@Override
public void apply() throws Exception {
// do a scan using idx value range [null (first row), idx3). Assert that we retrieve the values corresponding
// to idx1, idx2.
Scanner scanner = iTable.scanByIndex(idxCol, null, idx3);
Row next = scanner.next();
Assert.assertNotNull(next);
Assert.assertTrue(Bytes.equals(keyC, next.getRow()));
Assert.assertTrue(Bytes.equals(valC, next.get(valCol)));
next = scanner.next();
Assert.assertNotNull(next);
Assert.assertTrue(Bytes.equals(keyB, next.getRow()));
Assert.assertTrue(Bytes.equals(valB, next.get(valCol)));
assertEmpty(scanner);
}
});
代码示例来源:origin: caskdata/cdap
@Override
public void apply() throws Exception {
// do a scan using idx value range [idx2, idx5). Assert that we retrieve idx2, idx3, idx4.
Scanner scanner = iTable.scanByIndex(idxCol, idx2, idx5);
Row next = scanner.next();
Assert.assertNotNull(next);
Assert.assertTrue(Bytes.equals(keyB, next.getRow()));
Assert.assertTrue(Bytes.equals(valB, next.get(valCol)));
next = scanner.next();
Assert.assertNotNull(next);
Assert.assertTrue(Bytes.equals(keyA, next.getRow()));
Assert.assertTrue(Bytes.equals(valD, next.get(valCol)));
next = scanner.next();
Assert.assertNotNull(next);
Assert.assertTrue(Bytes.equals(keyE, next.getRow()));
Assert.assertTrue(Bytes.equals(valE, next.get(valCol)));
assertEmpty(scanner);
}
});
代码示例来源:origin: caskdata/cdap
@Test
public void testComplexKeySplit() {
// Tests key: [ "part1", "part2", "", 4l, byte[] { 0x5 } ]
List<String> firstParts = ImmutableList.of("part1", "part2", "");
long fourthPart = 4L;
byte[] fifthPart = new byte[] { 0x5 };
MDSKey.Builder builder = new MDSKey.Builder();
// intentionally testing the MDSKey.Builder#add(String... parts) method.
builder.add(firstParts.get(0), firstParts.get(1), firstParts.get(2));
builder.add(fourthPart);
builder.add(fifthPart);
MDSKey mdsKey = builder.build();
MDSKey.Splitter splitter = mdsKey.split();
for (String part : firstParts) {
Assert.assertEquals(part, splitter.getString());
}
Assert.assertEquals(fourthPart, splitter.getLong());
Assert.assertTrue(Bytes.equals(fifthPart, splitter.getBytes()));
}
代码示例来源:origin: caskdata/cdap
@Override
protected Entry computeNext() {
if (closed || (maxLimit <= 0)) {
return endOfData();
}
while (scanner.hasNext()) {
RawMessageTableEntry tableEntry = scanner.next();
// See if we need to skip the first row returned by the scanner
if (skipStartRow != null) {
byte[] row = skipStartRow;
// After first row, we don't need to match anymore
skipStartRow = null;
if (Bytes.equals(row, tableEntry.getKey())) {
continue;
}
}
MessageFilter.Result status = accept(tableEntry.getTxPtr());
if (status == MessageFilter.Result.ACCEPT) {
maxLimit--;
return new ImmutableMessageTableEntry(tableEntry.getKey(), tableEntry.getPayload(), tableEntry.getTxPtr());
}
if (status == MessageFilter.Result.HOLD) {
break;
}
}
return endOfData();
}
代码示例来源:origin: co.cask.cdap/cdap-tms
@Override
protected Entry computeNext() {
if (closed || (maxLimit <= 0)) {
return endOfData();
}
while (scanner.hasNext()) {
RawMessageTableEntry tableEntry = scanner.next();
// See if we need to skip the first row returned by the scanner
if (skipStartRow != null) {
byte[] row = skipStartRow;
// After first row, we don't need to match anymore
skipStartRow = null;
if (Bytes.equals(row, tableEntry.getKey())) {
continue;
}
}
MessageFilter.Result status = accept(tableEntry.getTxPtr());
if (status == MessageFilter.Result.ACCEPT) {
maxLimit--;
return new ImmutableMessageTableEntry(tableEntry.getKey(), tableEntry.getPayload(), tableEntry.getTxPtr());
}
if (status == MessageFilter.Result.HOLD) {
break;
}
}
return endOfData();
}
代码示例来源:origin: caskdata/cdap
@Test
public void testSkipStringAndBytes() {
MDSKey.Builder builder = new MDSKey.Builder();
builder.add("part1");
builder.add("part2");
builder.add("part3");
byte[] bytesToSkip = new byte[] { 0x1 };
byte[] bytesToCheck = new byte[] { 0x2 };
builder.add(bytesToSkip);
builder.add(bytesToCheck);
MDSKey mdsKey = builder.build();
MDSKey.Splitter splitter = mdsKey.split();
Assert.assertEquals("part1", splitter.getString());
splitter.skipString();
Assert.assertEquals("part3", splitter.getString());
splitter.skipBytes();
Assert.assertTrue(splitter.hasRemaining());
Assert.assertTrue(Bytes.equals(bytesToCheck, splitter.getBytes()));
Assert.assertFalse(splitter.hasRemaining());
}
内容来源于网络,如有侵权,请联系作者删除!