/** {@inheritDoc} */ @Override public byte[] toHBaseFamilyName(LocalityGroupLayout localityGroup) { return Bytes.toBytes(localityGroup.getName()); }
/** {@inheritDoc} */ @Override public byte[] toHBaseFamilyName(LocalityGroupLayout localityGroup) { return Bytes.toBytes(localityGroup.getName()); }
/** * Creates a new {@link HBaseNativeColumnNameTranslator} instance. * * @param layout The layout of the table to translate column names for. */ public HBaseNativeColumnNameTranslator(FijiTableLayout layout) { mLayout = layout; for (FamilyLayout family : mLayout.getFamilies()) { // Validate that all Fiji column families are the same as their respective locality groups Preconditions.checkArgument(family.getName().equals(family.getLocalityGroup().getName()), "For HBASE_NATIVE column name translation, family: '%s' must match locality group: '%s'", family.getName(), family.getLocalityGroup().getName()); // Validate all Fiji column families are group type Preconditions.checkArgument(family.isGroupType(), "For HBASE_NATIVE column name translation, family: '%s' must be a group type.", family.getName()); } }
final String previous = idMap.put(lgLayout.getId(), lgLayout.getName()); Preconditions.checkState(previous == null, String.format("Duplicate locality group ID '%s' associated to '%s' and '%s'.", lgLayout.getId(), lgLayout.getName(), previous)); } else { unassigned.add(lgLayout); if (!idMap.containsKey(columnId)) { localityGroup.setId(columnId); idMap.put(columnId, localityGroup.getName()); break;
throw new InvalidLayoutException(String.format( "Invalid TTL seconds for locality group '%s': TTL must be positive, got %d.", getName(), mDesc.getTtlSeconds())); getName(), mDesc.getMaxVersions())); throw new InvalidLayoutException(String.format( "Descriptor for locality group '%s' has ID %s but reference ID is %s.", getName(), mId, reference.getId())); throw new InvalidLayoutException(String.format( "Invalid rename: no reference locality group '%s' for family '%s'.", getName(), refFName)); throw new InvalidLayoutException(String.format( "Invalid rename: cannot find reference family '%s' in locality group '%s'.", refFName, getName())); throw new InvalidLayoutException(String.format( "Deleted family '%s' unknown in reference locality group '%s'.", refFName, getName()));
throw new NoSuchColumnException(String.format( "No family with ID %s in locality group %s of table %s.", familyID.getId(), localityGroup.getName(), mLayout.getName()));
throw new NoSuchColumnException(String.format( "No family with ID %s in locality group %s of table %s.", familyID.getId(), localityGroup.getName(), mLayout.getName()));
/** {@inheritDoc}*/ @Override public HBaseColumnName toHBaseColumnName(FijiColumnName fijiColumnName) throws NoSuchColumnException { final String familyName = fijiColumnName.getFamily(); final String qualifierName = fijiColumnName.getQualifier(); // Validate the Fiji family final FamilyLayout family = mLayout.getFamilyMap().get(familyName); if (family == null) { throw new NoSuchColumnException(fijiColumnName.toString()); } // Validate the Fiji qualifier if (family.isGroupType() && !family.getColumnMap().containsKey(qualifierName)) { throw new NoSuchColumnException(fijiColumnName.toString()); } final byte[] localityGroupBytes = Bytes.toBytes(family.getLocalityGroup().getName()); final byte[] familyBytes = Bytes.toBytes(familyName); final byte[] qualifierBytes = Bytes.toBytes(qualifierName); final byte[] hbaseQualifierBytes = ShortColumnNameTranslator.concatWithSeparator(SEPARATOR, familyBytes, qualifierBytes); return new HBaseColumnName(localityGroupBytes, hbaseQualifierBytes); }