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

ASF GitHub Bot commented on S2GRAPH-170:
----------------------------------------

Github user daewon commented on the issue:

    https://github.com/apache/incubator-s2graph/pull/127
  
    It looks good to solve problems that can occur with Java and Scala using 
interfaces like `S2[Edge, Vertex, Graph] Like`.
    
    Also, providing the `CompletableFuture` that can be used as a standard 
interface in Java is very convenient for users as below.
    
    
    `` `
      def getEdgesJava (q: Query): CompletableFuture [StepResult] =
        getEdges (q) .toJava.toCompletableFuture
    `` `


> Create Interface for S2Edge/S2Vertex/S2Graph.
> ---------------------------------------------
>
>                 Key: S2GRAPH-170
>                 URL: https://issues.apache.org/jira/browse/S2GRAPH-170
>             Project: S2Graph
>          Issue Type: Improvement
>    Affects Versions: 0.2.1
>            Reporter: DOYUNG YOON
>            Assignee: DOYUNG YOON
>             Fix For: 0.2.1
>
>   Original Estimate: 504h
>  Remaining Estimate: 504h
>
> h2. 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.
> h2. Suggestion
> Define interface and change code base to communicate through theses 
> interfaces.
> # Create interface S2Edge/S2Vertex/S2Graph that implement Tinkerpop’s 
> Edge/Vertex/Graph interface 
> # Extract tinkerpop interface related implementations
> # Change caller of S2Edge/S2Vertex/S2Graph to call interface rather than 
> concrete implementation.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to