[ 
https://issues.apache.org/jira/browse/TINKERPOP-1669?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16024532#comment-16024532
 ] 

Bryn Cooke commented on TINKERPOP-1669:
---------------------------------------

I have recently embarked upon a review of how we are integrating our graph 
implementation with Tinkerpop. Previously we had significant traversal 
rewriting going on, and would add and remove steps. However, it turns out that 
maintaining correctness when doing this is actually quite hard. Instead I am 
taking a much less invasive approach by simply replacing the element steps with 
internal classes while leaving the rest of the traversal alone.
This has a couple of advantages:
1. It's much easier to reason about.
2. We can optimise for much more complicated traversals, correctly handling AND 
and OR. If our backend can't mimic the expressiveness of TP we can do as much 
as possible and allow the TP traversal to handle the rest.



> EdgeVertexStep should be designed for extension
> -----------------------------------------------
>
>                 Key: TINKERPOP-1669
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-1669
>             Project: TinkerPop
>          Issue Type: Improvement
>          Components: process, structure
>    Affects Versions: 3.2.4
>            Reporter: Bryn Cooke
>
> GraphStep, VertexStep and PropertiesStep are all not final, so I was 
> surprised to find that I couldn't extend EdgeVertexStep. In the end I had to 
> duplicate the entire class....
> If there are concerns about simply making this class non-final then it could 
> be designed for extension by making most of the methods final (except 
> toString), but the leaving the class non-final.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to