[ 
https://issues.apache.org/jira/browse/TINKERPOP3-701?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

stephen mallette closed TINKERPOP3-701.
---------------------------------------
    Resolution: Fixed
      Assignee: stephen mallette

I've pushed what I have on this but have stopped short of "before" events and 
{{MutationCancellationException}}.  I've been torn on stuffing this capability 
into the {{EventStrategy}} because it was never really designed to do such 
things.  It was build on the same premise as {{EventGraph}} in TP2 and was 
meant to provide a way to capture graph mutations.  To me, the notion of 
"validation" seems like a different thing and shouldn't be shoved into this 
concept.  I think I'd prefer to see a {{Validating}} interface akin to the 
{{Mutating}} interface with an accompanying {{ValidationStrategy}} but I'm not 
sure what that looks like at the moment.

Iit feels like you could implement your own {{ValidationStrategy}} by just 
finding all the {{Mutating}} steps then examining the keys/values/arguments 
supplied to them.  If you don't like what you see then throw an exception (like 
the various "verification" strategies do).  I think that will largely satisfy 
that use case.  

In the future, I think we could kick around a more generalized feature - say a 
{{SchemaStrategy}} or the like where you could supply constraints that would 
have to be met for the {{Traversal}} to execute.  As for now, I'm going to 
close this issue as it is about "improvements to the {{Mutating}} interface and 
I think that the [~mhfrantz] suggestions helped cover that.  [~ranma] if you 
think there is more to this issue specifically related to "validation" please 
feel free to fire up a new issue with that in mind.

> Improving Mutating Interface
> ----------------------------
>
>                 Key: TINKERPOP3-701
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP3-701
>             Project: TinkerPop 3
>          Issue Type: Improvement
>          Components: process
>            Reporter: Ran Magen
>            Assignee: stephen mallette
>            Priority: Critical
>             Fix For: 3.0.0.GA
>
>
> This was discussed in the mailing list. Ill quote the relevant parts:
> We want to implement a validation strategy. Sort of like EventStrategy, but 
> it will notify before a mutation, and will enable the user's validation code 
> to cancel a mutation if it doesn't pass its checks. The problem is that there 
> are no "before" callbacks for the Mutating interface.
> Stephen Mallette:
> i may have messed up the Mutating interface design a bit.  looking at it now, 
> i feel like it could be less coupled to the EventStrategy related features.  
> I'll take a look at it to see if I can make it "better" before GA.  I don't 
> think my changes should affect vendors or the test suites, so if it turns out 
> to be that way i'll give it a shot.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to