[ 
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)

Reply via email to