[ https://issues.apache.org/jira/browse/S2GRAPH-170?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16240094#comment-16240094 ]
Daewon Jeong commented on S2GRAPH-170: -------------------------------------- I reviewed the above draft. I agree to proceed with refactoring to clarify the interface. However, I have some comments on this refactoring. # S2 [Vertex, Edge] Like 'SelfType' is used in the 'S2Vertex` and' S2VertexLike 'as there is a bidirectional dependency. S2VertexLike should be unaware of the existence of S2Vertex because the dependency should flow unidirectionally. To achieve the above goal, `SelfType` should be removed. p.s: This refactoring seems to be in gradual improvement for compatibility with existing code (not to break caller). > 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 > 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)