ColumnUtil { public static Column getDataColumnFromConstructedQualifier(Column lockColumn) { byte[] constructedQualifier = lockColumn.getQualifier(); if (constructedQualifier == null) { return lockColumn; } int index = -1; for (int i = 0; i < constructedQualifier.length; ++i) { if (PRESERVED_COLUMN_CHARACTER_BYTES[0] == constructedQualifier[i]) { index = i; break; } } if (index <= 0) { return lockColumn; } else { byte[] family = new byte[index]; byte[] qualifier = new byte[constructedQualifier.length - index - 1]; System.arraycopy(constructedQualifier, 0, family, 0, index); System.arraycopy(constructedQualifier, index + 1, qualifier, 0, constructedQualifier.length - index - 1); return new Column(family, qualifier); } }  static void init(Configuration conf); static boolean isCommitToSameFamily(); static boolean isCommitToDifferentFamily(); static boolean isPreservedColumn(Column column); static boolean containPreservedCharacter(Column column); static boolean isLockColumn(Column column); static boolean isCommitFamily(byte[] family); static boolean isLockColumn(byte[] family, byte[] qualifier); static boolean isPutColumn(byte[] family, byte[] qualifier); static boolean isPutColumn(Column column); static boolean isDeleteColumn(Column column); static boolean isDeleteColumn(byte[] family, byte[] qualifier); static boolean isWriteColumn(byte[] family, byte[] qualifier); static boolean isWriteColumn(Column column); static boolean isDataColumn(Column column); static Column getLockColumn(byte[] family, byte[] qualifier); static Column getLockColumn(Column dataColumn); static Column getPutColumn(Column dataColumn); static Column getDeleteColumn(Column dataColumn); static Column getDataColumn(Column lockOrWriteColumn); static Column getDataColumnFromConstructedQualifier(Column lockColumn); static final char PRESERVED_COLUMN_CHARACTER; static final byte[] PRESERVED_COLUMN_CHARACTER_BYTES; static final String PUT_QUALIFIER_SUFFIX; static final byte[] PUT_QUALIFIER_SUFFIX_BYTES; static final String DELETE_QUALIFIER_SUFFIX; static final byte[] DELETE_QUALIFIER_SUFFIX_BYTES; static final String PRESERVED_QUALIFIER_SUFFIX; static final byte[] LOCK_FAMILY_NAME; static final String LOCK_FAMILY_NAME_STRING; static final String PUT_FAMILY_NAME; static final byte[] PUT_FAMILY_NAME_BYTES; static final String DELETE_FAMILY_NAME; static final byte[] DELETE_FAMILY_NAME_BYTES; static final byte[][] COMMIT_FAMILY_NAME_BYTES; static final String THEMIS_COMMIT_FAMILY_TYPE; }
@Test public void testGetDataColumnFromConstructedQualifier() { for (byte[] family : ColumnUtil.COMMIT_FAMILY_NAME_BYTES) { Column expect = new Column(FAMILY, QUALIFIER); Column actual = ColumnUtil.getDataColumnFromConstructedQualifier(expect); Assert.assertEquals(expect, actual); expect = new Column(family, QUALIFIER); actual = ColumnUtil.getDataColumnFromConstructedQualifier(expect); Assert.assertEquals(expect, actual); expect = new Column(FAMILY, QUALIFIER); actual = ColumnUtil.getDataColumnFromConstructedQualifier(new Column(family, Bytes .toBytes("ThemisCF#Qualifier"))); Assert.assertEquals(expect, actual); expect = new Column(FAMILY, illegalQualifier); actual = ColumnUtil.getDataColumnFromConstructedQualifier(new Column(family, illegalLockQualifier)); Assert.assertEquals(expect, actual); } }