Replace GraphHopperStorage by BaseGraph where it is not needed #2540
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
GraphHopperStorage is not really what it sounds like. It's a combination of the BaseGraph (our road network data structure), an EncodingManager (which should actually be, and soon will be called TagParsingManager) and the properties file. Since BaseGraph is not even public and thus cannot be used standalone we use GraphHopperStorage everywhere, even in places where no tag parsing is going on at all.
In this PR I thus made BaseGraph public and started using it in many places that are not related to parsing OSM tags like EncodingManager does. For example QueryGraph, CH and LM are all things that we do on top of a BaseGraph without anything related to parsing tags or the properties file.