This commit is contained in:
温少
2012-05-21 15:32:08 +08:00
parent 43442071fc
commit 6a92c4eff2
3 changed files with 51 additions and 1 deletions
@@ -35,7 +35,7 @@ public class SingleTableQueryExecutePlan extends SingleTableExecutePlan {
private HResultSetMetaData resultMetaData;
private HMappingTable mapping;
private HMappingTable mapping;
public SingleTableQueryExecutePlan(){
@@ -1,6 +1,14 @@
package com.alibaba.druid.hbase.mapping;
import org.apache.hadoop.hbase.client.Result;
public interface HMapping {
byte[] getFamily(String columnName);
byte[] getQualifier(String columnName);
boolean isRow(String columnName);
Object getObject(Result result, String name);
}
@@ -0,0 +1,42 @@
package com.alibaba.druid.hbase.mapping;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.util.Bytes;
public class HMappingDefaultImpl implements HMapping {
private byte[] family = Bytes.toBytes("d");
@Override
public Object getObject(Result result, String columnName) {
byte[] family = this.getFamily(columnName);
byte[] bytes;
if (isRow(columnName)) {
bytes = result.getRow();
} else {
byte[] qualifier = Bytes.toBytes(columnName);
bytes = result.getValue(family, qualifier);
}
return bytes;
}
public byte[] getFamily(String columnName) {
return family;
}
@Override
public byte[] getQualifier(String columnName) {
return Bytes.toBytes(columnName);
}
@Override
public boolean isRow(String columnName) {
if ("id".equals(columnName)) {
return true;
}
return false;
}
}