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