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

Jake Mannix commented on GIRAPH-27:
-----------------------------------

Maybe the right thing is yes, to have an AbstractVertex base class which 
implements BasicVertex, but also has a pair of package-protected final methods 
for get/setGraphState(), so that GraphMapper can use it, but that way 
subclasses in user-packages can't see it.

But then you'd need to require that users always subclassed that, or else 
they'd run into the issue I had, that it would compile, but not run.

Maybe the right approach is to turn BasicVertex into an abstract class, and 
have the package-protected method there, and get rid of the interface at all.  
Then all users would be required to subclass BasicVertex, instead of implement 
it.  They already have to extend Vertex, so this just makes it clear what they 
have to extend.

> Mutable static global state in Vertex.java should be refactored
> ---------------------------------------------------------------
>
>                 Key: GIRAPH-27
>                 URL: https://issues.apache.org/jira/browse/GIRAPH-27
>             Project: Giraph
>          Issue Type: Improvement
>          Components: graph
>    Affects Versions: 0.70.0
>            Reporter: Jake Mannix
>            Assignee: Jake Mannix
>         Attachments: GIRAPH-27.patch, GIRAPH-27.patch
>
>
> Vertex.java has a bunch of static methods for getting/setting global graph 
> state (total number of vertices, edges, a reference to the GraphMapper, etc). 
>  Refactoring this into a GraphState object, which every Vertex can hold onto 
> a reference to (yes, a tiny bit more memory per Vertex, but in comparison to 
> what's already in there...)

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to