package com.alvazan.orm.api.z8spi; import java.io.UnsupportedEncodingException; import com.alvazan.orm.api.z8spi.conv.StandardConverters; import com.alvazan.orm.api.z8spi.meta.DboColumnMeta; import com.alvazan.orm.api.z8spi.meta.DboTableMeta; public class ScanInfo { private String indexColFamily; private byte[] rowKey; private DboTableMeta entityColFamily; //optional but logging won't work without it private DboColumnMeta columnName; public static ScanInfo createScanInfo(DboColumnMeta colMeta, String partitionBy, String partitionId) { DboTableMeta realColFamily = colMeta.getOwner(); String columnFamily = colMeta.getIndexTableName(); String indexRowKey = colMeta.getIndexRowKey(partitionBy, partitionId); byte[] rowKey = StandardConverters.convertToBytes(indexRowKey); ScanInfo scanInfo = new ScanInfo(realColFamily, colMeta, columnFamily, rowKey); return scanInfo; } public ScanInfo(String indexColFamily, DboTableMeta realColFamily, byte[] rowKey2) { this.indexColFamily = indexColFamily; this.entityColFamily = realColFamily; this.rowKey = rowKey2; } public ScanInfo(DboTableMeta realColFamily, DboColumnMeta colName, String indexColFamily, byte[] rowKey2) { this.entityColFamily = realColFamily; this.columnName = colName; this.indexColFamily = indexColFamily; this.rowKey = rowKey2; } public String getIndexColFamily() { return indexColFamily; } public byte[] getRowKey() { return rowKey; } public DboTableMeta getEntityColFamily() { return entityColFamily; } public DboColumnMeta getColumnName() { return columnName; } @Override public String toString() { return "CF="+indexColFamily+"(for cf="+entityColFamily+") rowKey="+toUTF8(rowKey); } private String toUTF8(byte[] data) { try { return new String(data, "UTF8"); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } } }