.java.smap_Java Get.getAttributesMap方法代码示例

import org.apache.hadoop.hbase.client.Get; //导入方法依赖的package包/类

/**

* Create a protocol buffer Get based on a client Get.

*

* @param get the client Get

* @return a protocol buffer Get

* @throws IOException

*/

public static ClientProtos.Get toGet(

final Get get) throws IOException {

ClientProtos.Get.Builder builder =

ClientProtos.Get.newBuilder();

builder.setRow(ByteStringer.wrap(get.getRow()));

builder.setCacheBlocks(get.getCacheBlocks());

builder.setMaxVersions(get.getMaxVersions());

if (get.getFilter() != null) {

builder.setFilter(ProtobufUtil.toFilter(get.getFilter()));

}

for (Entry cftr : get.getColumnFamilyTimeRange().entrySet()) {

HBaseProtos.ColumnFamilyTimeRange.Builder b = HBaseProtos.ColumnFamilyTimeRange.newBuilder();

b.setColumnFamily(ByteString.copyFrom(cftr.getKey()));

b.setTimeRange(timeRangeToProto(cftr.getValue()));

builder.addCfTimeRange(b);

}

TimeRange timeRange = get.getTimeRange();

if (!timeRange.isAllTime()) {

HBaseProtos.TimeRange.Builder timeRangeBuilder =

HBaseProtos.TimeRange.newBuilder();

timeRangeBuilder.setFrom(timeRange.getMin());

timeRangeBuilder.setTo(timeRange.getMax());

builder.setTimeRange(timeRangeBuilder.build());

}

Map attributes = get.getAttributesMap();

if (!attributes.isEmpty()) {

NameBytesPair.Builder attributeBuilder = NameBytesPair.newBuilder();

for (Map.Entry attribute: attributes.entrySet()) {

attributeBuilder.setName(attribute.getKey());

attributeBuilder.setValue(ByteStringer.wrap(attribute.getValue()));

builder.addAttribute(attributeBuilder.build());

}

}

if (get.hasFamilies()) {

Column.Builder columnBuilder = Column.newBuilder();

Map> families = get.getFamilyMap();

for (Map.Entry> family: families.entrySet()) {

NavigableSet qualifiers = family.getValue();

columnBuilder.setFamily(ByteStringer.wrap(family.getKey()));

columnBuilder.clearQualifier();

if (qualifiers != null && qualifiers.size() > 0) {

for (byte[] qualifier: qualifiers) {

columnBuilder.addQualifier(ByteStringer.wrap(qualifier));

}

}

builder.addColumn(columnBuilder.build());

}

}

if (get.getMaxResultsPerColumnFamily() >= 0) {

builder.setStoreLimit(get.getMaxResultsPerColumnFamily());

}

if (get.getRowOffsetPerColumnFamily() > 0) {

builder.setStoreOffset(get.getRowOffsetPerColumnFamily());

}

if (get.isCheckExistenceOnly()){

builder.setExistenceOnly(true);

}

if (get.isClosestRowBefore()){

builder.setClosestRowBefore(true);

}

if (get.getConsistency() != null && get.getConsistency() != Consistency.STRONG) {

builder.setConsistency(toConsistency(get.getConsistency()));

}

return builder.build();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值