co.cask.cdap.api.common.Bytes.equals()方法的使用及代码示例

x33g5p2x  于2022-01-16 转载在 其他  
字(9.6k)|赞(0)|评价(0)|浏览(93)

本文整理了Java中co.cask.cdap.api.common.Bytes.equals()方法的一些代码示例,展示了Bytes.equals()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Bytes.equals()方法的具体详情如下:
包路径:co.cask.cdap.api.common.Bytes
类名称:Bytes
方法名:equals

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());
}

相关文章