public static JSONObject propertyYoJson(Property property) { JSONObject json = new JSONObject(); json.put("key", property.getKey()); json.put("name", property.getName()); json.put("metadata", propertyMetadataToJson(property.getMetadata())); json.put("visibility", property.getVisibility().toString()); json.put("value", property.getValue().toString()); return json; }
private JSONObject propertyToJson(Property property) { JSONObject json = new JSONObject(); json.put("key", property.getKey()); json.put("name", property.getName()); json.put("visibility", property.getVisibility().getVisibilityString()); Object value = property.getValue(); if (!(value instanceof StreamingPropertyValue)) { json.put("value", objectToJsonString(value)); } Metadata metadata = property.getMetadata(); if (metadata != null) { json.put("metadata", metadataToJson(metadata)); } return json; }
@Test public void testMetadata() { Vertex v1 = graph.prepareVertex("v1", VISIBILITY_A) .setProperty("prop1", "value1", VISIBILITY_A) .setProperty("prop1", "value1", VISIBILITY_B) .save(AUTHORIZATIONS_A_AND_B); ExistingElementMutation<Vertex> m = graph.getVertex("v1", AUTHORIZATIONS_A_AND_B).prepareMutation(); m.setPropertyMetadata(v1.getProperty("prop1", VISIBILITY_A), "metadata1", "metadata-value1aa", VISIBILITY_A); m.setPropertyMetadata(v1.getProperty("prop1", VISIBILITY_A), "metadata1", "metadata-value1ab", VISIBILITY_B); m.setPropertyMetadata(v1.getProperty("prop1", VISIBILITY_B), "metadata1", "metadata-value1bb", VISIBILITY_B); m.save(AUTHORIZATIONS_A_AND_B); v1 = graph.getVertex("v1", AUTHORIZATIONS_A_AND_B); Property prop1A = v1.getProperty("prop1", VISIBILITY_A); assertEquals(2, prop1A.getMetadata().entrySet().size()); assertEquals("metadata-value1aa", prop1A.getMetadata().getValue("metadata1", VISIBILITY_A)); assertEquals("metadata-value1ab", prop1A.getMetadata().getValue("metadata1", VISIBILITY_B)); Property prop1B = v1.getProperty("prop1", VISIBILITY_B); assertEquals(1, prop1B.getMetadata().entrySet().size()); assertEquals("metadata-value1bb", prop1B.getMetadata().getValue("metadata1", VISIBILITY_B)); }
@Test public void testMetadata() { Vertex v1 = graph.prepareVertex("v1", VISIBILITY_A) .setProperty("prop1", "value1", VISIBILITY_A) .setProperty("prop1", "value1", VISIBILITY_B) .save(AUTHORIZATIONS_A_AND_B); ExistingElementMutation<Vertex> m = graph.getVertex("v1", AUTHORIZATIONS_A_AND_B).prepareMutation(); m.setPropertyMetadata(v1.getProperty("prop1", VISIBILITY_A), "metadata1", "metadata-value1aa", VISIBILITY_A); m.setPropertyMetadata(v1.getProperty("prop1", VISIBILITY_A), "metadata1", "metadata-value1ab", VISIBILITY_B); m.setPropertyMetadata(v1.getProperty("prop1", VISIBILITY_B), "metadata1", "metadata-value1bb", VISIBILITY_B); m.save(AUTHORIZATIONS_A_AND_B); v1 = graph.getVertex("v1", AUTHORIZATIONS_A_AND_B); Property prop1A = v1.getProperty("prop1", VISIBILITY_A); assertEquals(2, prop1A.getMetadata().entrySet().size()); assertEquals("metadata-value1aa", prop1A.getMetadata().getValue("metadata1", VISIBILITY_A)); assertEquals("metadata-value1ab", prop1A.getMetadata().getValue("metadata1", VISIBILITY_B)); Property prop1B = v1.getProperty("prop1", VISIBILITY_B); assertEquals(1, prop1B.getMetadata().entrySet().size()); assertEquals("metadata-value1bb", prop1B.getMetadata().getValue("metadata1", VISIBILITY_B)); }
public void addPropertyRemoveMetadataToMutation(Mutation m, PropertyRemoveMutation propertyRemoveMutation) { if (propertyRemoveMutation instanceof PropertyPropertyRemoveMutation) { Property property = ((PropertyPropertyRemoveMutation) propertyRemoveMutation).getProperty(); Metadata metadata = property.getMetadata(); for (Metadata.Entry metadataItem : metadata.entrySet()) { Text columnQualifier = getPropertyMetadataColumnQualifier(property, metadataItem.getKey()); ColumnVisibility metadataVisibility = visibilityToAccumuloVisibility(metadataItem.getVisibility()); m.putDelete(AccumuloElement.CF_PROPERTY_METADATA, columnQualifier, metadataVisibility); } } }
void alterPropertyMetadatas(AccumuloElement element, List<SetPropertyMetadata> setPropertyMetadatas) { if (setPropertyMetadatas.size() == 0) { return; } List<Property> propertiesToSave = new ArrayList<>(); for (SetPropertyMetadata apm : setPropertyMetadatas) { Property property = element.getProperty(apm.getPropertyKey(), apm.getPropertyName(), apm.getPropertyVisibility()); if (property == null) { throw new SecureGraphException(String.format("Could not find property %s:%s(%s)", apm.getPropertyKey(), apm.getPropertyName(), apm.getPropertyVisibility())); } property.getMetadata().add(apm.getMetadataName(), apm.getNewValue(), apm.getMetadataVisibility()); propertiesToSave.add(property); } BatchWriter writer = getWriterFromElementType(element); String rowPrefix = getRowPrefixForElement(element); String elementRowKey = rowPrefix + element.getId(); Mutation m = new Mutation(elementRowKey); for (Property property : propertiesToSave) { elementMutationBuilder.addPropertyMetadataToMutation(m, property); } addMutations(writer, m); }
private void alterElementPropertyMetadata(Element element, List<SetPropertyMetadata> setPropertyMetadatas) { for (SetPropertyMetadata apm : setPropertyMetadatas) { Property property = element.getProperty(apm.getPropertyKey(), apm.getPropertyName(), apm.getPropertyVisibility()); if (property == null) { throw new SecureGraphException("Could not find property " + apm.getPropertyKey() + ":" + apm.getPropertyName()); } property.getMetadata().add(apm.getMetadataName(), apm.getNewValue(), apm.getMetadataVisibility()); } }
prop1Metadata = prop1.getMetadata(); assertNotNull(prop1Metadata); assertEquals(1, prop1Metadata.entrySet().size()); assertEquals(1, count(v.getProperties("prop1"))); prop1 = v.getProperties("prop1").iterator().next(); prop1Metadata = prop1.getMetadata(); assertEquals(2, prop1Metadata.entrySet().size()); assertEquals("metadata1Value", prop1Metadata.getEntry("metadata1", VISIBILITY_A).getValue()); assertEquals(1, count(v.getProperties("prop1"))); prop1 = v.getProperties("prop1").iterator().next(); prop1Metadata = prop1.getMetadata(); assertEquals(2, prop1Metadata.entrySet().size());
public void addPropertyRemoveToMutation(Mutation m, Property property) { checkNotNull(m, "mutation cannot be null"); checkNotNull(property, "property cannot be null"); Text columnQualifier = getPropertyColumnQualifier(property); ColumnVisibility columnVisibility = visibilityToAccumuloVisibility(property.getVisibility()); m.putDelete(AccumuloElement.CF_PROPERTY, columnQualifier, columnVisibility); for (Metadata.Entry metadataEntry : property.getMetadata().entrySet()) { Text metadataEntryColumnQualifier = getPropertyMetadataColumnQualifier(property, metadataEntry.getKey()); ColumnVisibility metadataEntryVisibility = visibilityToAccumuloVisibility(metadataEntry.getVisibility()); m.putDelete(AccumuloElement.CF_PROPERTY_METADATA, metadataEntryColumnQualifier, metadataEntryVisibility); } }
prop1Metadata = prop1.getMetadata(); assertNotNull(prop1Metadata); assertEquals(1, prop1Metadata.entrySet().size()); assertEquals(1, count(v.getProperties("prop1"))); prop1 = v.getProperties("prop1").iterator().next(); prop1Metadata = prop1.getMetadata(); assertEquals(2, prop1Metadata.entrySet().size()); assertEquals("metadata1Value", prop1Metadata.getEntry("metadata1", VISIBILITY_A).getValue()); assertEquals(1, count(v.getProperties("prop1"))); prop1 = v.getProperties("prop1").iterator().next(); prop1Metadata = prop1.getMetadata(); assertEquals(2, prop1Metadata.entrySet().size());
@Test public void testChangePropertyMetadata() { Metadata prop1Metadata = new Metadata(); prop1Metadata.add("prop1_key1", "valueOld", VISIBILITY_EMPTY); graph.prepareVertex("v1", VISIBILITY_A) .setProperty("prop1", "value1", prop1Metadata, VISIBILITY_EMPTY) .setProperty("prop2", "value2", null, VISIBILITY_EMPTY) .save(AUTHORIZATIONS_A_AND_B); Vertex v1 = graph.getVertex("v1", AUTHORIZATIONS_A); v1.prepareMutation() .setPropertyMetadata("prop1", "prop1_key1", "valueNew", VISIBILITY_EMPTY) .save(AUTHORIZATIONS_A_AND_B); assertEquals("valueNew", v1.getProperty("prop1").getMetadata().getEntry("prop1_key1", VISIBILITY_EMPTY).getValue()); v1 = graph.getVertex("v1", AUTHORIZATIONS_A); assertEquals("valueNew", v1.getProperty("prop1").getMetadata().getEntry("prop1_key1", VISIBILITY_EMPTY).getValue()); v1 = graph.getVertex("v1", AUTHORIZATIONS_A); v1.prepareMutation() .setPropertyMetadata("prop2", "prop2_key1", "valueNew", VISIBILITY_EMPTY) .save(AUTHORIZATIONS_A_AND_B); assertEquals("valueNew", v1.getProperty("prop2").getMetadata().getEntry("prop2_key1", VISIBILITY_EMPTY).getValue()); v1 = graph.getVertex("v1", AUTHORIZATIONS_A); assertEquals("valueNew", v1.getProperty("prop2").getMetadata().getEntry("prop2_key1", VISIBILITY_EMPTY).getValue()); }
@Test public void testChangePropertyMetadata() { Metadata prop1Metadata = new Metadata(); prop1Metadata.add("prop1_key1", "valueOld", VISIBILITY_EMPTY); graph.prepareVertex("v1", VISIBILITY_A) .setProperty("prop1", "value1", prop1Metadata, VISIBILITY_EMPTY) .setProperty("prop2", "value2", null, VISIBILITY_EMPTY) .save(AUTHORIZATIONS_A_AND_B); Vertex v1 = graph.getVertex("v1", AUTHORIZATIONS_A); v1.prepareMutation() .setPropertyMetadata("prop1", "prop1_key1", "valueNew", VISIBILITY_EMPTY) .save(AUTHORIZATIONS_A_AND_B); assertEquals("valueNew", v1.getProperty("prop1").getMetadata().getEntry("prop1_key1", VISIBILITY_EMPTY).getValue()); v1 = graph.getVertex("v1", AUTHORIZATIONS_A); assertEquals("valueNew", v1.getProperty("prop1").getMetadata().getEntry("prop1_key1", VISIBILITY_EMPTY).getValue()); v1 = graph.getVertex("v1", AUTHORIZATIONS_A); v1.prepareMutation() .setPropertyMetadata("prop2", "prop2_key1", "valueNew", VISIBILITY_EMPTY) .save(AUTHORIZATIONS_A_AND_B); assertEquals("valueNew", v1.getProperty("prop2").getMetadata().getEntry("prop2_key1", VISIBILITY_EMPTY).getValue()); v1 = graph.getVertex("v1", AUTHORIZATIONS_A); assertEquals("valueNew", v1.getProperty("prop2").getMetadata().getEntry("prop2_key1", VISIBILITY_EMPTY).getValue()); }
public void addPropertyMetadataToMutation(Mutation m, Property property) { Metadata metadata = property.getMetadata(); for (Metadata.Entry metadataItem : metadata.entrySet()) { Text columnQualifier = getPropertyMetadataColumnQualifier(property, metadataItem.getKey()); ColumnVisibility metadataVisibility = visibilityToAccumuloVisibility(metadataItem.getVisibility()); if (metadataItem.getValue() == null) { m.putDelete(AccumuloElement.CF_PROPERTY_METADATA, columnQualifier, metadataVisibility); } else { Value metadataValue = new Value(valueSerializer.objectToValue(metadataItem.getValue())); m.put(AccumuloElement.CF_PROPERTY_METADATA, columnQualifier, metadataVisibility, metadataValue); } } }
void alterElementPropertyVisibilities(InMemoryElement element, List<AlterPropertyVisibility> alterPropertyVisibilities, Authorizations authorizations) { for (AlterPropertyVisibility apv : alterPropertyVisibilities) { Property property = element.getProperty(apv.getKey(), apv.getName(), apv.getExistingVisibility()); if (property == null) { throw new SecureGraphException("Could not find property " + apv.getKey() + ":" + apv.getName()); } Object value = property.getValue(); Metadata metadata = property.getMetadata(); element.removeProperty(apv.getKey(), apv.getName(), authorizations); element.addPropertyValue(apv.getKey(), apv.getName(), value, metadata, apv.getVisibility(), authorizations); } }
public void update(Property property) { if (property.getHiddenVisibilities() != null) { for (Visibility v : property.getHiddenVisibilities()) { addHiddenVisibility(v); } } setValue(property.getValue()); for (Metadata.Entry m : property.getMetadata().entrySet()) { if (m.getValue() == null) { removeMetadata(m.getKey(), m.getVisibility()); } else { addMetadata(m.getKey(), m.getValue(), m.getVisibility()); } } } }
public void update(Property property) { if (property.getHiddenVisibilities() != null) { for (Visibility v : property.getHiddenVisibilities()) { addHiddenVisibility(v); } } setValue(property.getValue()); for (Metadata.Entry m : property.getMetadata().entrySet()) { if (m.getValue() == null) { removeMetadata(m.getKey(), m.getVisibility()); } else { addMetadata(m.getKey(), m.getValue(), m.getVisibility()); } } } }
Property v1Prop1 = v1.getProperty("prop1"); assertNotNull(v1Prop1); assertEquals(1, toList(v1Prop1.getMetadata().entrySet()).size()); assertEquals("value1", v1Prop1.getMetadata().getValue("prop1_key1")); assertNotNull(v1.getProperty("prop2"));
Property v1Prop1 = v1.getProperty("prop1"); assertNotNull(v1Prop1); assertEquals(1, toList(v1Prop1.getMetadata().entrySet()).size()); assertEquals("value1", v1Prop1.getMetadata().getValue("prop1_key1")); assertNotNull(v1.getProperty("prop2"));