Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 131135

Summary: org.eclipse.draw2d.graph.GraphVisitor is not publically visible in 3.2m5
Product: [Tools] GEF Reporter: Rob Gonzalez <rob.gonzalez>
Component: GEF-Legacy Draw2dAssignee: gef-inbox <gef-inbox>
Status: RESOLVED WORKSFORME QA Contact:
Severity: normal    
Priority: P3    
Version: 3.2   
Target Milestone: ---   
Hardware: All   
OS: All   
Whiteboard:

Description Rob Gonzalez CLA 2006-03-09 12:18:30 EST
In the past I've found it convenient to be able to extend GraphVisitor.  In the latest version of Draw2D, with GEF 3.2m5, it is a package protected class.  It seems a very reasonable class to be able to extend and perhaps should be made public.

Sorry for the picky nature of this report, but it's unfortunate that my projects which built under Eclipse 3.2m4 no longer compile under 3.2m5 for this reason.
Comment 1 Randy Hudson CLA 2006-03-09 12:34:22 EST
GraphVisitor has always been internal. How is it convenient, if there are no implementations of this type which you can use?
Comment 2 Rob Gonzalez CLA 2006-03-09 12:46:37 EST
Thanks for the quick response!

Then it may be that the default compiler settings coming with the newer Eclipse.  Either way, I have refactored around the issue by creating my own GraphVisitor interface.

However, GraphVisitor contains basic, useful functionality for dealing with a DirectedGraph, which itself is public, so I wonder whether the basic interface itself has been created many other times for each specific scenario.  Given that it's not actively hindering me I suppose I can't complain too much ;)
Comment 3 Randy Hudson CLA 2006-03-09 13:29:39 EST
If you've looked into the details of the algorithm, you'll see tons of steps used to implement it. The steps, order, and fact that each step gets two chances to operate on the directed graph are all subject to change and are internal details. This is because we anticipate future improvements which would not be compatible if we declared the implementation as public API.

Glad you've found a workaround.