
Hi WanMil,
Ok, anyhow I will slowly start with some tests with the tag reverser. I think most of it will be static so it won't hurt if other things are refactored. Great. If you can implement it in HighwayHooks it should not create problems.
Maybe you can look at it: I plan to evaluate all tags used in RoadMerger once in ConvertedWay and place them in fields (most of them are booleans). RoadMerger should then call ConvertedWay.isSimilar() which will implement most of the compare routines now implemented in RoadMerger.Road. Does that sound okay for you?
I don't see the big advantage now but I am sure you have a good idea why it helps :-) One small comment: I have some doubts that it is a good idea to put the isSimilar() method to the ConvertedWay class. There is a similar approach in MapElement. But the implementation does not really help. Maybe there are also different views at different stages of the processing if two elements are similar or not. So better leave the isSimilar method at the RoadMerger who knows better if the two elements can be merged or not.
Good point. My idea is that RoadMerger should use the ConvertedWay instances instead of creating new Road instances, but most of the code in RoadMerger is in the Road class. Gerd