protected Property addPropertyLocal(String key, Object value) { ElementHelper.validateProperty(key, value); Property property = createProperty(key, value); getPropertiesMap().put(key, property); return property; }
@Override public void remove() { element.removeProperty(this); } }
@Override protected Map<String, Object> getFields(Vertex element) { Map<String, Object> properties = UniElement.fullProperties(element); List<Map<String, Object>> fieldMaps = this.getPropertySchemas().stream().map(schema -> schema.toFields(properties)).filter(prop -> prop != null).collect(Collectors.toList()); return ConversionUtils.merge(fieldMaps, this::mergeFields, false); }
@Override public String toString() { return "UniElement{" + "properties=" + getPropertiesMap() + ", id='" + id + '\'' + ", label='" + label + '\'' + ", graph=" + graph + '}'; } }
@Override public void remove() { edges(Direction.BOTH).forEachRemaining(Element::remove); super.remove(); }
public UniElement(Map<String, Object> properties, ElementSchema schema, UniGraph graph) { this.graph = graph; this.schema = schema; this.id = ObjectUtils.firstNonNull( properties.remove(T.id.getAccessor()), properties.remove(T.id.toString()), UUID.randomUUID()) .toString(); this.label = ObjectUtils.firstNonNull( properties.remove(T.label.getAccessor()), properties.remove(T.label.toString()), getDefaultLabel()) .toString(); }
@Override protected Map<String, Object> getFields(Vertex element) { Map<String, Object> properties = UniElement.fullProperties(element); List<Map<String, Object>> fieldMaps = this.getPropertySchemas().stream().map(schema -> schema.toFields(properties)).filter(prop -> prop != null).collect(Collectors.toList()); return ConversionUtils.merge(fieldMaps, this::mergeFields, false); }
@Override public Set<String> keys() { return this.getPropertiesMap().keySet(); }
protected Map<String, Object> getFields(E element) { Map<String, Object> properties = UniElement.fullProperties(element); if(properties == null) return null; List<Map<String, Object>> fieldMaps = this.getPropertySchemas().stream().map(schema -> schema.toFields(properties)).collect(Collectors.toList()); return ConversionUtils.merge(fieldMaps, this::mergeFields, false); }
@Override public <V> Property<V> property(final String key) { return this.getPropertiesMap().containsKey(key) ? this.getPropertiesMap().get(key) : Property.<V>empty(); }
protected Iterator propertyIterator(String[] propertyKeys) { Map<String, Property> properties = this.getPropertiesMap(); if (propertyKeys.length > 0) return properties.entrySet().stream().filter(entry -> ElementHelper.keyExists(entry.getKey(), propertyKeys)).map(x -> x.getValue()).iterator(); return properties.values().iterator(); }
public void removeProperty(Property property) { getPropertiesMap().remove(property.key()); PropertyQuery<UniElement> propertyQuery = new PropertyQuery<>(this, property, PropertyQuery.Action.Remove, null); this.graph.getControllerManager().getControllers(PropertyQuery.PropertyController.class).forEach(controller -> controller.property(propertyQuery)); }