Uploaded image for project: 'S2Graph'
  1. S2Graph
  2. S2GRAPH-170

Create Interface for S2Edge/S2Vertex/S2Graph.

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Done
    • Major
    • Resolution: Done
    • 0.2.1
    • 0.2.1
    • None
    • None

    Description

      Problem Statement

      S2Graph’s entire code base is dependent on S2Edge/S2Vertex/S2Graph class. Even though lots of code touch theses two class, there is no interface defined currently. This means lots of code is interact with these class in different way all by their own way, and this make extremely hard to make any change on these two classes.

      For example, I was working on S2GRAPH-80 to provide java client, and there are too many places to be changed since all theses places use concrete implementation class S2Edge/S2Vertex/S2Graph, not the interfaces. Not just for S2GRAPH-80, but any other issues that need to change theses classes would benefit by communicating through interface.

      Suggestion

      Define interface and change code base to communicate through theses interfaces.

      1. Create interface S2Edge/S2Vertex/S2Graph that implement Tinkerpop’s Edge/Vertex/Graph interface
      2. Extract tinkerpop interface related implementations
      3. Change caller of S2Edge/S2Vertex/S2Graph to call interface rather than concrete implementation.

      Attachments

        Issue Links

          Activity

            People

              steamshon Do Yung Yoon
              steamshon Do Yung Yoon
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - 504h
                  504h
                  Remaining:
                  Remaining Estimate - 504h
                  504h
                  Logged:
                  Time Spent - Not Specified
                  Not Specified