private void addPropertyMetadataItemToMutation( Mutation m, Property property, Metadata.Entry metadataItem) { Text columnQualifier = getPropertyMetadataColumnQualifierText(property, metadataItem); ColumnVisibility metadataVisibility = visibilityToAccumuloVisibility(metadataItem.getVisibility()); if (metadataItem.getValue() == null) { addPropertyMetadataItemDeleteToMutation(m, columnQualifier, metadataVisibility); } else { addPropertyMetadataItemAddToMutation( m, columnQualifier, metadataVisibility, property.getTimestamp(), metadataItem.getValue()); } }
public void addPropertyDeleteMetadataToMutation( Mutation m, PropertyDeleteMutation propertyDeleteMutation) { if (propertyDeleteMutation instanceof PropertyPropertyDeleteMutation) { Property property = ((PropertyPropertyDeleteMutation) propertyDeleteMutation).getProperty(); Metadata metadata = property.getMetadata(); for (Metadata.Entry metadataItem : metadata.entrySet()) { Text columnQualifier = getPropertyMetadataColumnQualifierText(property, metadataItem); ColumnVisibility metadataVisibility = visibilityToAccumuloVisibility(metadataItem.getVisibility()); addPropertyMetadataItemDeleteToMutation(m, columnQualifier, metadataVisibility); } } }
private Text getPropertyMetadataColumnQualifierText( Property property, Metadata.Entry metadataItem) { final String propertyName = property.getName(); final String propertyKey = property.getKey(); final String visibilityString = property.getVisibility().getVisibilityString(); final String metadataKey = metadataItem.getKey(); //noinspection StringBufferReplaceableByString - for speed we use StringBuilder StringBuilder keyBuilder = new StringBuilder( propertyName.length() + propertyKey.length() + visibilityString.length() + metadataKey.length()); keyBuilder.append(getNameSubstitutionStrategy().deflate(propertyName)); keyBuilder.append(getNameSubstitutionStrategy().deflate(propertyKey)); keyBuilder.append(visibilityString); keyBuilder.append(getNameSubstitutionStrategy().deflate(metadataKey)); String key = keyBuilder.toString(); Text r = propertyMetadataColumnQualifierTextCache.peek(key); if (r == null) { r = KeyHelper.getColumnQualifierFromPropertyMetadataColumnQualifier( propertyName, propertyKey, visibilityString, metadataKey, getNameSubstitutionStrategy()); propertyMetadataColumnQualifierTextCache.put(key, r); } return r; }
public void addPropertyDeleteToMutation(Mutation m, Property property) { Preconditions.checkNotNull(m, "mutation cannot be null"); Preconditions.checkNotNull(property, "property cannot be null"); Text columnQualifier = KeyHelper.getColumnQualifierFromPropertyColumnQualifier( property, getNameSubstitutionStrategy()); ColumnVisibility columnVisibility = visibilityToAccumuloVisibility(property.getVisibility()); m.putDelete( AccumuloElement.CF_PROPERTY, columnQualifier, columnVisibility, currentTimeMillis()); for (Metadata.Entry metadataEntry : property.getMetadata().entrySet()) { Text metadataEntryColumnQualifier = getPropertyMetadataColumnQualifierText(property, metadataEntry); ColumnVisibility metadataEntryVisibility = visibilityToAccumuloVisibility(metadataEntry.getVisibility()); addPropertyMetadataItemDeleteToMutation( m, metadataEntryColumnQualifier, metadataEntryVisibility); } }
private void addPropertyMetadataItemToKeyValuePairs( List<KeyValuePair> results, Text vertexRowKey, Property property, Metadata.Entry metadataItem) { Text columnQualifier = getPropertyMetadataColumnQualifierText(property, metadataItem); ColumnVisibility metadataVisibility = visibilityToAccumuloVisibility(metadataItem.getVisibility()); if (metadataItem.getValue() == null) { throw new VertexiumException("Property metadata deletes are not supported"); } else { addPropertyMetadataItemAddToKeyValuePairs( results, vertexRowKey, columnQualifier, metadataVisibility, property.getTimestamp(), metadataItem.getValue()); } }