Interface for a storage abstraction. Currently is serves just the purpose to ensure the same
methods and names through all kind of 'storable' things in graphhopper.
Then the lifecycle is identical for all such objects:
- object creation via new
- optional configuration via additional setters and getters which are not in this
interface
- if(!storable.loadExisting()) storable.create()
- usage storable and optional flush() calls in-between. Keep in mind that some data structure
could require a call to increase memory while usage. E.g. DataAccess.ensureCapacity()
- Finally do close() which does no flush()