@Override public <V> VertexProperty<V> property(final String key) { if (null != this.properties && this.properties.containsKey(key)) { final List<VertexProperty> list = (List) this.properties.get(key); if (list.size() > 1) throw Vertex.Exceptions.multiplePropertiesExistForProvidedKey(key); else return list.get(0); } else return VertexProperty.<V>empty(); }
@Override public <V> VertexProperty<V> property(final String key) { if (this.removed) return VertexProperty.empty(); if (TinkerHelper.inComputerMode(this.graph)) { final List<VertexProperty> list = (List) this.graph.graphComputerView.getProperty(this, key); if (list.size() == 0) return VertexProperty.<V>empty(); else if (list.size() == 1) return list.get(0); else throw Vertex.Exceptions.multiplePropertiesExistForProvidedKey(key); } else { if (this.properties != null && this.properties.containsKey(key)) { final List<VertexProperty> list = (List) this.properties.get(key); if (list.size() > 1) throw Vertex.Exceptions.multiplePropertiesExistForProvidedKey(key); else return list.get(0); } else return VertexProperty.<V>empty(); } }
/** * Get the {@link VertexProperty} for the provided key. If the property does not exist, return * {@link VertexProperty#empty}. If there are more than one vertex properties for the provided * key, then throw {@link Vertex.Exceptions#multiplePropertiesExistForProvidedKey}. * * @param key the key of the vertex property to get * @param <V> the expected type of the vertex property value * @return the retrieved vertex property */ @Override public default <V> VertexProperty<V> property(final String key) { final Iterator<VertexProperty<V>> iterator = this.properties(key); if (iterator.hasNext()) { final VertexProperty<V> property = iterator.next(); if (iterator.hasNext()) throw Vertex.Exceptions.multiplePropertiesExistForProvidedKey(key); else return property; } else { return VertexProperty.<V>empty(); } }
@Override public <V> VertexProperty<V> property(final String key) { final VertexProperty<V> vertexProperty = getBaseVertex().<V>property(key); return vertexProperty.isPresent() ? new HadoopVertexProperty<>((VertexProperty<V>) ((Vertex) this.baseElement).property(key), this) : VertexProperty.<V>empty(); }
@Override public <V> VertexProperty<V> getVertexProperty(final Neo4jVertex vertex, final String key) { return vertex.getBaseVertex().hasProperty(key) ? new Neo4jVertexProperty<>(vertex, key, (V) vertex.getBaseVertex().getProperty(key)) : VertexProperty.<V>empty(); }
@Test @FeatureRequirementSet(FeatureRequirementSet.Package.VERTICES_ONLY) public void shouldReturnEmptyPropertyIfKeyNonExistent() { final Vertex v = graph.addVertex("name", "marko"); tryCommit(graph, (graph) -> { final Vertex v1 = graph.vertices(v.id()).next(); final VertexProperty p = v1.property("nonexistentkey"); assertEquals(VertexProperty.empty(), p); }); }
@Override public <V> VertexProperty<V> getVertexProperty(final Neo4jVertex vertex, final String key) { final Neo4jNode node = vertex.getBaseVertex(); if (node.hasProperty(key)) { if (node.getProperty(key).equals(VERTEX_PROPERTY_TOKEN)) { if (node.degree(Neo4jDirection.OUTGOING, Graph.Hidden.hide(key)) > 1) throw Vertex.Exceptions.multiplePropertiesExistForProvidedKey(key); else { return (VertexProperty<V>) new Neo4jVertexProperty<>(vertex, node.relationships(Neo4jDirection.OUTGOING, Graph.Hidden.hide(key)).iterator().next().end()); } } else { return new Neo4jVertexProperty<>(vertex, key, (V) node.getProperty(key)); } } else return VertexProperty.<V>empty(); }
@SuppressWarnings("unchecked") @Override protected Property emptyProperty() { return VertexProperty.empty(); }
final EventStrategy eventStrategy = getTraversal().getStrategies().getStrategy(EventStrategy.class).get(); final Property currentProperty = traverser.get().property(key); final boolean newProperty = element instanceof Vertex ? currentProperty == VertexProperty.empty() : currentProperty == Property.empty(); final Event.ElementPropertyChangedEvent evt; if (element instanceof Vertex)
@Override public <V> VertexProperty<V> property(final String key) { if (this.properties.containsKey(key)) { return (VertexProperty<V>) this.properties.get(key).get(0); } else return VertexProperty.<V>empty(); }
@Override public <V> VertexProperty<V> property(final String key) { if (null != this.properties && this.properties.containsKey(key)) { final List<VertexProperty> list = (List) this.properties.get(key); if (list.size() > 1) throw Vertex.Exceptions.multiplePropertiesExistForProvidedKey(key); else return list.get(0); } else return VertexProperty.<V>empty(); }
protected <V> VertexProperty<V> specificProperty(String key) { Iterator<VertexProperty<V>> iter = specificProperties(key); if (iter.hasNext()) { return iter.next(); } else { return VertexProperty.empty(); } }
@Override public <V> VertexProperty<V> property(String key) { if (this.removed) return VertexProperty.empty(); return specificProperty(key); }
@Override public <V> VertexProperty<V> property(final String key) { this.checkAccess(); // note: this code is more efficient than the standard implementation in TinkerPop // because it avoids the creation of an iterator via #properties(key). VertexProperty<V> property = this.getSingleProperty(key); if (property == null) { return VertexProperty.<V>empty(); } return property; }
@Override public <V> VertexProperty<V> property(final String key) { V value = getProperty(key); return value != null ? new HBaseVertexProperty<>(graph, this, key, value) : VertexProperty.empty(); }
@Override public <V> VertexProperty<V> property(String key) { V value = getBaseVertex().getProperty(key); if (value == null) { return VertexProperty.empty(); } return new DuctileVertexProperty<V>(this, key, value); }
/** * Produces the identifier (the "@id" value) for a vertex based on the current configuration. */ protected String generateId(Vertex vertex) { // TODO This is probably broken return frame().context().toFieldValue(JsonLdConsts.ID, options().identifierKey() .map(key -> vertex.property(key)) .orElse(VertexProperty.empty()) .orElseGet(() -> vertex.id())) .toString(); }
@Override public <V> VertexProperty<V> property(final String key) { final VertexProperty<V> vertexProperty = getBaseVertex().<V>property(key); return vertexProperty.isPresent() ? new HadoopVertexProperty<>((VertexProperty<V>) ((Vertex) this.baseElement).property(key), this) : VertexProperty.<V>empty(); }
@Test @FeatureRequirementSet(FeatureRequirementSet.Package.VERTICES_ONLY) public void shouldReturnEmptyPropertyIfKeyNonExistent() { final Vertex v = graph.addVertex("name", "marko"); tryCommit(graph, (graph) -> { final Vertex v1 = graph.vertices(v.id()).next(); final VertexProperty p = v1.property("nonexistentkey"); assertEquals(VertexProperty.empty(), p); }); }
@Override public <V> VertexProperty<V> property(String key) { ODocument doc = getRawElement().getRecord(); if (doc.containsField(key)) { return new OrientVertexProperty<>(key, getRawElement().getProperty(key), this); } return VertexProperty.empty(); }