Jason Plurad created TINKERPOP-1504:

             Summary: MutationListener doesn't provide property key on property 
                 Key: TINKERPOP-1504
                 URL: https://issues.apache.org/jira/browse/TINKERPOP-1504
             Project: TinkerPop
          Issue Type: Improvement
          Components: process
    Affects Versions: 3.2.2, 3.1.4
            Reporter: Jason Plurad

The signatures for 
 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 
 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

Reply via email to