package org.vertexium.accumulo.iterator.model; import org.apache.hadoop.io.Text; public class PropertyColumnQualifier extends KeyBase { public static final int PART_INDEX_PROPERTY_NAME = 0; public static final int PART_INDEX_PROPERTY_KEY = 1; private final String[] parts; public PropertyColumnQualifier(Text columnQualifier) { this.parts = splitOnValueSeparator(columnQualifier.toString(), 2); } public PropertyColumnQualifier(String propertyName, String propertyKey) { this.parts = new String[]{ propertyName, propertyKey }; } public String getPropertyName() { return parts[PART_INDEX_PROPERTY_NAME]; } public String getPropertyKey() { return parts[PART_INDEX_PROPERTY_KEY]; } public String getDiscriminator(String visibilityString, long timestamp) { assertNoValueSeparator(getPropertyName()); assertNoValueSeparator(getPropertyKey()); assertNoValueSeparator(visibilityString); String timestampString = Long.toString(timestamp); int length = getPropertyName().length() + 1 + getPropertyKey().length() + 1 + visibilityString.length() + 1 + timestampString.length(); //noinspection StringBufferReplaceableByString return new StringBuilder(length) .append(getPropertyName()) .append(VALUE_SEPARATOR) .append(getPropertyKey()) .append(VALUE_SEPARATOR) .append(visibilityString) .append(VALUE_SEPARATOR) .append(timestampString) .toString(); } }