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

stephen mallette closed TINKERPOP-1540.
---------------------------------------
    Resolution: Won't Do

The idea here is to simplify strategy writing, but I'm not sure adding more 
interfaces helps with that. Often, it's complex patterns that make strategies 
"hard" and not so much the finding of steps by their general behavior. Closing 
for now....

> Create a set of marker interfaces that define step behavior
> -----------------------------------------------------------
>
>                 Key: TINKERPOP-1540
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-1540
>             Project: TinkerPop
>          Issue Type: Improvement
>          Components: process
>    Affects Versions: 3.2.3
>            Reporter: Marko A. Rodriguez
>            Priority: Major
>
> We have steps like {{SideEffectStep}}, {{MapStep}}, {{FlatMapStep}}, etc., 
> but unfortunately, these are classes and not all side-effect, map, flatmap, 
> etc. behaving steps extend them. As such, if you have strategies that need to 
> reason on step behavior, you have to really know the Gremlin step library 
> well.
> To make it easier to write strategies, we should come up with a set of 
> "marker" interfaces.
> * {{Mapping}} (one-to-one)
> * {{FlatMapping}} (one-to-many)
> * {{Reducing}} (many-to-one)
> * {{Filtering}} (one-to-oneOrNone)
> * {{SideEffecting}} (one-to-one w/ side-effect)
> * {{Barriering}} (many-to-many)
> From here, we tag all the steps with their respective behavior marker and 
> then go through and clean up strategies.
> Also note that both {{DedupGlobalStep}} and {{TimeLimitStep}} are "stateful 
> steps" and because of this, shouldn't be decomposed by strategies such as 
> {{RepeatUnrollStrategy}}. Make a generalizing interface so search traversals 
> for such stateful steps is easy an not error prone.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

Reply via email to