/**
*
*/
package com.impetus.kundera.hbase.client.service;
import java.io.IOException;
import java.util.List;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.util.Bytes;
import com.impetus.kundera.hbase.client.Writer;
import com.impetus.kundera.metadata.EntityMetadata.Column;
import com.impetus.kundera.property.PropertyAccessException;
import com.impetus.kundera.property.PropertyAccessorHelper;
import com.impetus.kundera.proxy.EnhancedEntity;
/**
* @author impetus
*
*/
public class HBaseWriter implements Writer {
@Override
public void writeColumns(HTable htable, String columnFamily, String rowKey,List<Column> columns, EnhancedEntity e) throws IOException {
Put p = new Put(Bytes.toBytes(rowKey));
for(Column col:columns) {
// Set<String> keys = columnValues.keySet();
// Iterator<String> iter = keys.iterator();
// while(iter.hasNext()){
String qualifier = col.getName();
try {
PropertyAccessorHelper.getObject(e.getEntity(), col.getField());
p.add(Bytes.toBytes(columnFamily), Bytes.toBytes(qualifier), PropertyAccessorHelper.get(e.getEntity(), col.getField()));
} catch (PropertyAccessException e1) {
throw new IOException(e1.getMessage());
}
}
htable.put(p);
}
}