Interface StorageFoundation<F extends StorageFoundation<?>>

Type Parameters:
F - the "self-type" of the StorageFoundation implementation.
All Known Subinterfaces:
EmbeddedStorageFoundation<F>
All Known Implementing Classes:
EmbeddedStorageFoundation.Default, StorageFoundation.Default

public interface StorageFoundation<F extends StorageFoundation<?>>
A kind of factory type that holds and creates on demand all the parts that form a StorageSystem instance, i.e. a functional database handling logic.

Additionally to the services of a mere factory type, a foundation type also keeps references to all parts after a StorageSystem instance has been created. This is useful if some internal logic parts shall be accessed while the StorageSystem logic is already running. Therefore, this type can best be thought of as a foundation on which the running database handling logic stands.

All set~ methods are simple setter methods without any additional logic worth mentioning.
All set~ methods return this to allow for easy method chaining to improve readability.
All get~ methods return a logic part instance, if present or otherwise creates and sets one beforehand via a default creation logic.