You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "Bryn Cooke (JIRA)" <ji...@apache.org> on 2017/05/25 10:51:04 UTC

[jira] [Commented] (TINKERPOP-1669) EdgeVertexStep should be designed for extension

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