RE: [jgrapht-developers] 0.7.0
Brought to you by:
barak_naveh,
perfecthash
From: Hartmut B. <Har...@gm...> - 2006-01-22 15:00:01
|
About the state of the generics in the branch ivins_Generics_Pre0_7_0: I have successfully removed quite a number of warnings relating to the generics. Alas, there is still a lot of complaining from the compiler and some seem to point to underlying problems of the package. Changes introduced in the branch: - org._3pq.jgrapht.DirEdge: Interface for directed edges - a small number of JUnit tests Things I think should happen for 0.7.0 ====================================== - Rename edge.DirectedEdge to edge.DefaultDirectedEdge - Rename DirectedWhightedEdge to DefaultDirectedWhightedEdge - etc. - Lots of places still with warnings - Lots of "COMMENT ME" places asking for comments (with and without this string) - Lots of JUnit test Things I have problems with ================== - EdgeFactories are tricky with generics, and more so in the context of sub-classes of graph and the default constructor. The warnings are in the Default*Graph classes. As of now, I have not been able to declare and assign an edge factory to a graph without a compiler warning. The reason, I think, is that the types of generics are tested (and only testable) at compile time. Any suggestions and help are welcome. A more serious problem occurs with sub-classing and the default constructor: When you use or sub-class a graph using generics specifying that you have edges of type EEEE and forget to feed it with the correct EdgeFactory for EEEE you will get a runtime-error. John suggested we might need to remove the default constructor entirely. - Heaps - I don't understand sufficiently what is going on in there in order to get it watertight with generics/type-safety. Maybe Michael can have a look and help. There a probably quite a number of other things I can't remember right now (just back from a long vacation). In the immediate future (4-6 weeks) I will not be able to do a lot of programming with generics. Everyone feel free to update the branch whenever you like. Hartmut |