Refine search
/** * If two {@link Property} instances are equal, then they must have the same hash codes. This methods ensures consistent hashCode values. * For {@link VertexProperty} use {@link ElementHelper#hashCode(org.apache.tinkerpop.gremlin.structure.Element)}. * * @param property the property to get the hashCode for * @return the hash code of the property */ public static int hashCode(final Property property) { return property.key().hashCode() + property.value().hashCode(); }
/** * Construct the representation for a {@link org.apache.tinkerpop.gremlin.structure.Property} or {@link org.apache.tinkerpop.gremlin.structure.VertexProperty}. */ public static String propertyString(final Property property) { if (property instanceof VertexProperty) { if (!property.isPresent()) return EMPTY_VERTEX_PROPERTY; final String valueString = String.valueOf(property.value()); return VP + L_BRACKET + property.key() + ARROW + StringUtils.abbreviate(valueString, 20) + R_BRACKET; } else { if (!property.isPresent()) return EMPTY_PROPERTY; final String valueString = String.valueOf(property.value()); return P + L_BRACKET + property.key() + ARROW + StringUtils.abbreviate(valueString, 20) + R_BRACKET; } }
private static void writeElementProperties(final KryoShim kryo, final OutputShim output, final Element element) { final Iterator<? extends Property> properties = element.properties(); output.writeBoolean(properties.hasNext()); while (properties.hasNext()) { final Property p = properties.next(); output.writeString(p.key()); kryo.writeClassAndObject(output, p.value()); output.writeBoolean(properties.hasNext()); } } }
private void addPropertiesToOriginalGraph() { TinkerHelper.dropGraphComputerView(this.graph); this.computeProperties.forEach((element, properties) -> { properties.forEach((key, vertexProperties) -> { vertexProperties.forEach(vertexProperty -> { final VertexProperty<?> newVertexProperty = ((Vertex) element).property(VertexProperty.Cardinality.list, vertexProperty.key(), vertexProperty.value(), T.id, vertexProperty.id()); vertexProperty.properties().forEachRemaining(property -> { newVertexProperty.property(property.key(), property.value()); }); }); }); }); this.computeProperties.clear(); }
private void writeProperties(final Edge edge, final JsonGenerator jsonGenerator, final SerializerProvider serializerProvider, final TypeSerializer typeSerializer) throws IOException { final Iterator<Property<Object>> elementProperties = normalize ? IteratorUtils.list(edge.properties(), Comparators.PROPERTY_COMPARATOR).iterator() : edge.properties(); if (elementProperties.hasNext()) { jsonGenerator.writeObjectFieldStart(GraphSONTokens.PROPERTIES); if (typeSerializer != null) jsonGenerator.writeStringField(GraphSONTokens.CLASS, HashMap.class.getName()); while (elementProperties.hasNext()) { final Property<Object> elementProperty = elementProperties.next(); GraphSONUtil.writeWithType(elementProperty.key(), elementProperty.value(), jsonGenerator, serializerProvider, typeSerializer); } jsonGenerator.writeEndObject(); } }
/** * Creates a clone of the given edge between the given in- and out-vertices. * * @param edge The edge to be cloned. * @param outVertex The out-vertex in the given graph.. * @param inVertex The in-vertex in the given graph. * @param graph The graph that holds the cloned edge after this method was called. * @param g A standard traversal source for the given graph. * @return The cloned edge. */ public default Edge createEdge(final Edge edge, final Vertex outVertex, final Vertex inVertex, final Graph graph, final GraphTraversalSource g) { final Edge result = outVertex.addEdge(edge.label(), inVertex); edge.properties().forEachRemaining(property -> result.property(property.key(), property.value())); return result; }
private static void writeMetaProperties(final VertexProperty property, final JsonGenerator jsonGenerator, final SerializerProvider serializerProvider, final TypeSerializer typeSerializer, final boolean normalize) throws IOException { jsonGenerator.writeObjectFieldStart(GraphSONTokens.PROPERTIES); if (typeSerializer != null) jsonGenerator.writeStringField(GraphSONTokens.CLASS, HashMap.class.getName()); final Iterator<Property<Object>> metaProperties = normalize ? IteratorUtils.list(( Iterator<Property<Object>>) property.properties(), Comparators.PROPERTY_COMPARATOR).iterator() : property.properties(); while (metaProperties.hasNext()) { final Property<Object> metaProperty = metaProperties.next(); GraphSONUtil.writeWithType(metaProperty.key(), metaProperty.value(), jsonGenerator, serializerProvider, typeSerializer); } jsonGenerator.writeEndObject(); }
public static void validatePropertyEquality(final Property originalProperty, final Property otherProperty) { assertEquals(originalProperty, otherProperty); assertEquals(otherProperty, originalProperty); if (originalProperty.isPresent()) { assertEquals(originalProperty.key(), otherProperty.key()); assertEquals(originalProperty.value(), otherProperty.value()); assertEquals(originalProperty.element(), otherProperty.element()); } }
@Override public void serialize(final Property property, final JsonGenerator jsonGenerator, final SerializerProvider serializerProvider) throws IOException { jsonGenerator.writeStartObject(); jsonGenerator.writeObjectField(GraphSONTokens.KEY, property.key()); jsonGenerator.writeObjectField(GraphSONTokens.VALUE, property.value()); jsonGenerator.writeEndObject(); } }
private static void ser(final Property property, final JsonGenerator jsonGenerator, final SerializerProvider serializerProvider, final TypeSerializer typeSerializer) throws IOException { jsonGenerator.writeStartObject(); if (typeSerializer != null) jsonGenerator.writeStringField(GraphSONTokens.CLASS, HashMap.class.getName()); serializerProvider.defaultSerializeField(GraphSONTokens.KEY, property.key(), jsonGenerator); serializerProvider.defaultSerializeField(GraphSONTokens.VALUE, property.value(), jsonGenerator); jsonGenerator.writeEndObject(); } }
@Override public void serialize(final Property property, final JsonGenerator jsonGenerator, final SerializerProvider serializerProvider) throws IOException { jsonGenerator.writeStartObject(); jsonGenerator.writeObjectField(GraphSONTokens.KEY, property.key()); jsonGenerator.writeObjectField(GraphSONTokens.VALUE, property.value()); jsonGenerator.writeEndObject(); } }
private static void writeMetaProperties(final VertexProperty property, final JsonGenerator jsonGenerator, final boolean normalize) throws IOException { jsonGenerator.writeFieldName(GraphSONTokens.PROPERTIES); jsonGenerator.writeStartObject(); final Iterator<Property<Object>> metaProperties = normalize ? IteratorUtils.list((Iterator<Property<Object>>) property.properties(), Comparators.PROPERTY_COMPARATOR).iterator() : property.properties(); while (metaProperties.hasNext()) { final Property<Object> metaProperty = metaProperties.next(); jsonGenerator.writeObjectField(metaProperty.key(), metaProperty.value()); } jsonGenerator.writeEndObject(); } }
private static void writeMetaProperties(final VertexProperty property, final JsonGenerator jsonGenerator, final boolean normalize) throws IOException { jsonGenerator.writeFieldName(GraphSONTokens.PROPERTIES); jsonGenerator.writeStartObject(); final Iterator<Property<Object>> metaProperties = normalize ? IteratorUtils.list((Iterator<Property<Object>>) property.properties(), Comparators.PROPERTY_COMPARATOR).iterator() : property.properties(); while (metaProperties.hasNext()) { final Property<Object> metaProperty = metaProperties.next(); jsonGenerator.writeObjectField(metaProperty.key(), metaProperty.value()); } jsonGenerator.writeEndObject(); } }
/** * Creates a clone of the given property for the given vertex. * * @param property The property to be cloned. * @param vertex The vertex in the given graph.. * @param graph The graph that holds the given vertex. * @param g A standard traversal source for the given graph. * @return The cloned property. */ public default VertexProperty createVertexProperty(final VertexProperty<?> property, final Vertex vertex, final Graph graph, final GraphTraversalSource g) { final VertexProperty result = vertex.property(property.key(), property.value()); property.properties().forEachRemaining(metaProperty -> result.property(metaProperty.key(), metaProperty.value())); return result; }
@Override public void vertexPropertyPropertyRemoved(final VertexProperty element, final Property property) { assertThat(element, instanceOf(ReferenceVertexProperty.class)); assertEquals(label, element.label()); assertEquals(value, element.value()); assertEquals("dah", property.value()); assertEquals("to-drop", property.key()); triggered.set(true); } };
@Override public void vertexPropertyPropertyRemoved(final VertexProperty element, final Property property) { assertThat(element, instanceOf(DetachedVertexProperty.class)); assertEquals(label, element.label()); assertEquals(value, element.value()); assertEquals("dah", property.value()); assertEquals("to-drop", property.key()); triggered.set(true); } };