[ https://issues.apache.org/jira/browse/TINKERPOP-1504?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15926307#comment-15926307 ]
ASF GitHub Bot commented on TINKERPOP-1504: ------------------------------------------- Github user dkuppitz commented on the issue: https://github.com/apache/tinkerpop/pull/571 VOTE: +1 > MutationListener doesn't provide property key on property additions > ------------------------------------------------------------------- > > Key: TINKERPOP-1504 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1504 > Project: TinkerPop > Issue Type: Improvement > Components: process > Affects Versions: 3.1.4, 3.2.2 > Reporter: Jason Plurad > > The signatures for > [MutationListener|https://github.com/apache/tinkerpop/blob/3.1.4/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/util/event/MutationListener.java#L58] > property changes look like this: > * {{public void vertexPropertyChanged(final Vertex element, final Property > oldValue, final Object setValue, final Object... vertexPropertyKeyValues);}} > * {{public void edgePropertyChanged(final Edge element, final Property > oldValue, final Object setValue);}} > * {{public void vertexPropertyPropertyChanged(final VertexProperty element, > final Property oldValue, final Object setValue);}} > These methods are used when a property is *added* and when a property is > *changed*. See usage in > [AddPropertyStep|https://github.com/apache/tinkerpop/blob/3.1.4/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/AddPropertyStep.java#L93-L98]. > When a vertex property is added, the {{oldValue}} is {{null}}, so there is > no way for the listener to get the {{String key}} of the added property. > I can think of a few options here, all of which would be breaking changes: > # Pass a non-null {{Property}} as the {{oldValue}} that has the property > {{key}} but a {{null}} property value. The listener would get the property > value from {{setValue}}. > # Add a {{final String key}} to the signatures above. > # Change the {{setValue}} to be {{final Property setValue}} so that the key > can be gathered from the new value. > # Add new methods on {{MutationListener}} for {{vertexPropertyAdded()}}, > {{edgePropertyAdded()}}, and {{vertexPropertyPropertyAdded()}}. -- This message was sent by Atlassian JIRA (v6.3.15#6346)