Interface StorageFoundation<F extends StorageFoundation<?>>

  • Type Parameters:
    F - the "self-type" of the StorageFoundation implementation.
    All Superinterfaces:
    one.microstream.util.InstanceDispatcher
    All Known Implementing Classes:
    StorageFoundation.Default

    public interface StorageFoundation<F extends StorageFoundation<?>>
    extends one.microstream.util.InstanceDispatcher
    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.

    • Method Detail

      • getConfiguration

        StorageConfiguration getConfiguration()
        Returns the currently set StorageConfiguration instance.

        If no instance is set and the implementation deems an instance of this type mandatory for the successful executon of createStorageSystem(), a suitable instance is created via an internal default creation logic and then set as the current. If the implementation has not sufficient logic and/or data to create a default instance, a MissingFoundationPartException is thrown.

        Returns:
        the currently set instance, potentially created on-demand if required.
        Throws:
        one.microstream.exceptions.MissingFoundationPartException - if a returnable instance is required but cannot be created by default.
      • getOperationControllerCreator

        StorageOperationController.Creator getOperationControllerCreator()
        Returns the currently set StorageOperationController.Creator instance.

        If no instance is set and the implementation deems an instance of this type mandatory for the successful execution of createStorageSystem(), a suitable instance is created via an internal default creation logic and then set as the current. If the implementation has not sufficient logic and/or data to create a default instance, a MissingFoundationPartException is thrown.

        Returns:
        the currently set instance, potentially created on-demand if required.
        Throws:
        one.microstream.exceptions.MissingFoundationPartException - if a returnable instance is required but cannot be created by default.
      • getInitialDataFileNumberProvider

        StorageInitialDataFileNumberProvider getInitialDataFileNumberProvider()
        Returns the currently set StorageInitialDataFileNumberProvider instance.

        If no instance is set and the implementation deems an instance of this type mandatory for the successful executon of createStorageSystem(), a suitable instance is created via an internal default creation logic and then set as the current. If the implementation has not sufficient logic and/or data to create a default instance, a MissingFoundationPartException is thrown.

        Returns:
        the currently set instance, potentially created on-demand if required.
        Throws:
        one.microstream.exceptions.MissingFoundationPartException - if a returnable instance is required but cannot be created by default.
      • getRequestAcceptorCreator

        StorageRequestAcceptor.Creator getRequestAcceptorCreator()
        Returns the currently set StorageRequestAcceptor.Creator instance.

        If no instance is set and the implementation deems an instance of this type mandatory for the successful execution of createStorageSystem(), a suitable instance is created via an internal default creation logic and then set as the current. If the implementation has not sufficient logic and/or data to create a default instance, a MissingFoundationPartException is thrown.

        Returns:
        the currently set instance, potentially created on-demand if required.
        Throws:
        one.microstream.exceptions.MissingFoundationPartException - if a returnable instance is required but cannot be created by default.
      • getTaskBrokerCreator

        StorageTaskBroker.Creator getTaskBrokerCreator()
        Returns the currently set StorageTaskBroker.Creator instance.

        If no instance is set and the implementation deems an instance of this type mandatory for the successful execution of createStorageSystem(), a suitable instance is created via an internal default creation logic and then set as the current. If the implementation has not sufficient logic and/or data to create a default instance, a MissingFoundationPartException is thrown.

        Returns:
        the currently set instance, potentially created on-demand if required.
        Throws:
        one.microstream.exceptions.MissingFoundationPartException - if a returnable instance is required but cannot be created by default.
      • getDataChunkValidatorProvider

        StorageDataChunkValidator.Provider getDataChunkValidatorProvider()
        Returns the currently set StorageDataChunkValidator.Provider instance.

        If no instance is set and the implementation deems an instance of this type mandatory for the successful execution of createStorageSystem(), a suitable instance is created via an internal default creation logic and then set as the current. If the implementation has not sufficient logic and/or data to create a default instance, a MissingFoundationPartException is thrown.

        Returns:
        the currently set instance, potentially created on-demand if required.
        Throws:
        one.microstream.exceptions.MissingFoundationPartException - if a returnable instance is required but cannot be created by default.
      • getDataChunkValidatorProvider2

        StorageDataChunkValidator.Provider2 getDataChunkValidatorProvider2()
        Returns the currently set StorageDataChunkValidator.Provider2 instance.

        If no instance is set and the implementation deems an instance of this type mandatory for the successful execution of createStorageSystem(), a suitable instance is created via an internal default creation logic and then set as the current. If the implementation has not sufficient logic and/or data to create a default instance, a MissingFoundationPartException is thrown.

        Returns:
        the currently set instance, potentially created on-demand if required.
        Throws:
        one.microstream.exceptions.MissingFoundationPartException - if a returnable instance is required but cannot be created by default.
      • getChannelCreator

        StorageChannelsCreator getChannelCreator()
        Returns the currently set StorageChannelsCreator instance.

        If no instance is set and the implementation deems an instance of this type mandatory for the successful execution of createStorageSystem(), a suitable instance is created via an internal default creation logic and then set as the current. If the implementation has not sufficient logic and/or data to create a default instance, a MissingFoundationPartException is thrown.

        Returns:
        the currently set instance, potentially created on-demand if required.
        Throws:
        one.microstream.exceptions.MissingFoundationPartException - if a returnable instance is required but cannot be created by default.
      • getThreadNameProvider

        StorageThreadNameProvider getThreadNameProvider()
        Returns the currently set StorageThreadNameProvider instance.

        If no instance is set and the implementation deems an instance of this type mandatory for the successful execution of createStorageSystem(), a suitable instance is created via an internal default creation logic and then set as the current. If the implementation has not sufficient logic and/or data to create a default instance, a MissingFoundationPartException is thrown.

        Returns:
        the currently set instance, potentially created on-demand if required.
        Throws:
        one.microstream.exceptions.MissingFoundationPartException - if a returnable instance is required but cannot be created by default.
      • getChannelThreadProvider

        StorageChannelThreadProvider getChannelThreadProvider()
        Returns the currently set StorageChannelThreadProvider instance.

        If no instance is set and the implementation deems an instance of this type mandatory for the successful execution of createStorageSystem(), a suitable instance is created via an internal default creation logic and then set as the current. If the implementation has not sufficient logic and/or data to create a default instance, a MissingFoundationPartException is thrown.

        Returns:
        the currently set instance, potentially created on-demand if required.
        Throws:
        one.microstream.exceptions.MissingFoundationPartException - if a returnable instance is required but cannot be created by default.
      • getBackupThreadProvider

        StorageBackupThreadProvider getBackupThreadProvider()
        Returns the currently set StorageBackupThreadProvider instance.

        If no instance is set and the implementation deems an instance of this type mandatory for the successful execution of createStorageSystem(), a suitable instance is created via an internal default creation logic and then set as the current. If the implementation has not sufficient logic and/or data to create a default instance, a MissingFoundationPartException is thrown.

        Returns:
        the currently set instance, potentially created on-demand if required.
        Throws:
        one.microstream.exceptions.MissingFoundationPartException - if a returnable instance is required but cannot be created by default.
      • getLockFileManagerThreadProvider

        StorageLockFileManagerThreadProvider getLockFileManagerThreadProvider()
        Returns the currently set StorageLockFileManagerThreadProvider instance.

        If no instance is set and the implementation deems an instance of this type mandatory for the successful execution of createStorageSystem(), a suitable instance is created via an internal default creation logic and then set as the current. If the implementation has not sufficient logic and/or data to create a default instance, a MissingFoundationPartException is thrown.

        Returns:
        the currently set instance, potentially created on-demand if required.
        Throws:
        one.microstream.exceptions.MissingFoundationPartException - if a returnable instance is required but cannot be created by default.
      • getThreadProvider

        StorageThreadProvider getThreadProvider()
        Returns the currently set StorageThreadProvider instance.

        If no instance is set and the implementation deems an instance of this type mandatory for the successful execution of createStorageSystem(), a suitable instance is created via an internal default creation logic and then set as the current. If the implementation has not sufficient logic and/or data to create a default instance, a MissingFoundationPartException is thrown.

        Returns:
        the currently set instance, potentially created on-demand if required.
        Throws:
        one.microstream.exceptions.MissingFoundationPartException - if a returnable instance is required but cannot be created by default.
      • getRequestTaskCreator

        StorageRequestTaskCreator getRequestTaskCreator()
        Returns the currently set StorageRequestTaskCreator instance.

        If no instance is set and the implementation deems an instance of this type mandatory for the successful execution of createStorageSystem(), a suitable instance is created via an internal default creation logic and then set as the current. If the implementation has not sufficient logic and/or data to create a default instance, a MissingFoundationPartException is thrown.

        Returns:
        the currently set instance, potentially created on-demand if required.
        Throws:
        one.microstream.exceptions.MissingFoundationPartException - if a returnable instance is required but cannot be created by default.
      • getTypeDictionary

        StorageTypeDictionary getTypeDictionary()
        Returns the currently set StorageTypeDictionary instance.

        If no instance is set and the implementation deems an instance of this type mandatory for the successful execution of createStorageSystem(), a suitable instance is created via an internal default creation logic and then set as the current. If the implementation has not sufficient logic and/or data to create a default instance, a MissingFoundationPartException is thrown.

        Returns:
        the currently set instance, potentially created on-demand if required.
        Throws:
        one.microstream.exceptions.MissingFoundationPartException - if a returnable instance is required but cannot be created by default.
      • getRootTypeIdProvider

        StorageRootTypeIdProvider getRootTypeIdProvider()
        Returns the currently set StorageRootTypeIdProvider instance.

        If no instance is set and the implementation deems an instance of this type mandatory for the successful execution of createStorageSystem(), a suitable instance is created via an internal default creation logic and then set as the current. If the implementation has not sufficient logic and/or data to create a default instance, a MissingFoundationPartException is thrown.

        Returns:
        the currently set instance, potentially created on-demand if required.
        Throws:
        one.microstream.exceptions.MissingFoundationPartException - if a returnable instance is required but cannot be created by default.
      • getTimestampProvider

        StorageTimestampProvider getTimestampProvider()
        Returns the currently set StorageTimestampProvider instance.

        If no instance is set and the implementation deems an instance of this type mandatory for the successful execution of createStorageSystem(), a suitable instance is created via an internal default creation logic and then set as the current. If the implementation has not sufficient logic and/or data to create a default instance, a MissingFoundationPartException is thrown.

        Returns:
        the currently set instance, potentially created on-demand if required.
        Throws:
        one.microstream.exceptions.MissingFoundationPartException - if a returnable instance is required but cannot be created by default.
      • getObjectIdRangeEvaluator

        StorageObjectIdRangeEvaluator getObjectIdRangeEvaluator()
        Returns the currently set StorageObjectIdRangeEvaluator instance.

        If no instance is set and the implementation deems an instance of this type mandatory for the successful execution of createStorageSystem(), a suitable instance is created via an internal default creation logic and then set as the current. If the implementation has not sufficient logic and/or data to create a default instance, a MissingFoundationPartException is thrown.

        Returns:
        the currently set instance, potentially created on-demand if required.
        Throws:
        one.microstream.exceptions.MissingFoundationPartException - if a returnable instance is required but cannot be created by default.
      • getWriterProvider

        StorageFileWriter.Provider getWriterProvider()
        Returns the currently set StorageFileWriter.Provider instance.

        If no instance is set and the implementation deems an instance of this type mandatory for the successful execution of createStorageSystem(), a suitable instance is created via an internal default creation logic and then set as the current. If the implementation has not sufficient logic and/or data to create a default instance, a MissingFoundationPartException is thrown.

        Returns:
        the currently set instance, potentially created on-demand if required.
        Throws:
        one.microstream.exceptions.MissingFoundationPartException - if a returnable instance is required but cannot be created by default.
      • getGCZombieOidHandler

        StorageGCZombieOidHandler getGCZombieOidHandler()
        Returns the currently set StorageGCZombieOidHandler instance.

        If no instance is set and the implementation deems an instance of this type mandatory for the successful execution of createStorageSystem(), a suitable instance is created via an internal default creation logic and then set as the current. If the implementation has not sufficient logic and/or data to create a default instance, a MissingFoundationPartException is thrown.

        Returns:
        the currently set instance, potentially created on-demand if required.
        Throws:
        one.microstream.exceptions.MissingFoundationPartException - if a returnable instance is required but cannot be created by default.
      • getRootOidSelectorProvider

        StorageRootOidSelector.Provider getRootOidSelectorProvider()
        Returns the currently set StorageRootOidSelector.Provider instance.

        If no instance is set and the implementation deems an instance of this type mandatory for the successful execution of createStorageSystem(), a suitable instance is created via an internal default creation logic and then set as the current. If the implementation has not sufficient logic and/or data to create a default instance, a MissingFoundationPartException is thrown.

        Returns:
        the currently set instance, potentially created on-demand if required.
        Throws:
        one.microstream.exceptions.MissingFoundationPartException - if a returnable instance is required but cannot be created by default.
      • getOidMarkQueueCreator

        StorageObjectIdMarkQueue.Creator getOidMarkQueueCreator()
        Returns the currently set StorageObjectIdMarkQueue.Creator instance.

        If no instance is set and the implementation deems an instance of this type mandatory for the successful execution of createStorageSystem(), a suitable instance is created via an internal default creation logic and then set as the current. If the implementation has not sufficient logic and/or data to create a default instance, a MissingFoundationPartException is thrown.

        Returns:
        the currently set instance, potentially created on-demand if required.
        Throws:
        one.microstream.exceptions.MissingFoundationPartException - if a returnable instance is required but cannot be created by default.
      • getEntityMarkMonitorCreator

        StorageEntityMarkMonitor.Creator getEntityMarkMonitorCreator()
        Returns the currently set StorageEntityMarkMonitor.Creator instance.

        If no instance is set and the implementation deems an instance of this type mandatory for the successful execution of createStorageSystem(), a suitable instance is created via an internal default creation logic and then set as the current. If the implementation has not sufficient logic and/or data to create a default instance, a MissingFoundationPartException is thrown.

        Returns:
        the currently set instance, potentially created on-demand if required.
        Throws:
        one.microstream.exceptions.MissingFoundationPartException - if a returnable instance is required but cannot be created by default.
      • getDataFileValidatorCreator

        StorageDataFileValidator.Creator getDataFileValidatorCreator()
        Returns the currently set StorageDataFileValidator.Creator instance.

        If no instance is set and the implementation deems an instance of this type mandatory for the successful execution of createStorageSystem(), a suitable instance is created via an internal default creation logic and then set as the current. If the implementation has not sufficient logic and/or data to create a default instance, a MissingFoundationPartException is thrown.

        Returns:
        the currently set instance, potentially created on-demand if required.
        Throws:
        one.microstream.exceptions.MissingFoundationPartException - if a returnable instance is required but cannot be created by default.
      • getEntityDataIteratorProvider

        BinaryEntityRawDataIterator.Provider getEntityDataIteratorProvider()
        Returns the currently set BinaryEntityRawDataIterator.Provider instance.

        If no instance is set and the implementation deems an instance of this type mandatory for the successful execution of createStorageSystem(), a suitable instance is created via an internal default creation logic and then set as the current. If the implementation has not sufficient logic and/or data to create a default instance, a MissingFoundationPartException is thrown.

        Returns:
        the currently set instance, potentially created on-demand if required.
        Throws:
        one.microstream.exceptions.MissingFoundationPartException - if a returnable instance is required but cannot be created by default.
      • getEntityDataValidatorCreator

        StorageEntityDataValidator.Creator getEntityDataValidatorCreator()
        Returns the currently set StorageEntityDataValidator.Creator instance.

        If no instance is set and the implementation deems an instance of this type mandatory for the successful execution of createStorageSystem(), a suitable instance is created via an internal default creation logic and then set as the current. If the implementation has not sufficient logic and/or data to create a default instance, a MissingFoundationPartException is thrown.

        Returns:
        the currently set instance, potentially created on-demand if required.
        Throws:
        one.microstream.exceptions.MissingFoundationPartException - if a returnable instance is required but cannot be created by default.
      • getProcessIdentityProvider

        one.microstream.util.ProcessIdentityProvider getProcessIdentityProvider()
        Returns the currently set ProcessIdentityProvider instance.

        If no instance is set and the implementation deems an instance of this type mandatory for the successful execution of createStorageSystem(), a suitable instance is created via an internal default creation logic and then set as the current. If the implementation has not sufficient logic and/or data to create a default instance, a MissingFoundationPartException is thrown.

        Returns:
        the currently set instance, potentially created on-demand if required.
        Throws:
        one.microstream.exceptions.MissingFoundationPartException - if a returnable instance is required but cannot be created by default.
      • getLockFileSetup

        StorageLockFileSetup getLockFileSetup()
        Returns the currently set StorageLockFileSetup instance.

        If no instance is set and the implementation deems an instance of this type mandatory for the successful execution of createStorageSystem(), a suitable instance is created via an internal default creation logic and then set as the current. If the implementation has not sufficient logic and/or data to create a default instance, a MissingFoundationPartException is thrown.

        Returns:
        the currently set instance, potentially created on-demand if required.
        Throws:
        one.microstream.exceptions.MissingFoundationPartException - if a returnable instance is required but cannot be created by default.
      • getLockFileSetupProvider

        StorageLockFileSetup.Provider getLockFileSetupProvider()
        Returns the currently set StorageLockFileSetup.Provider instance.

        If no instance is set and the implementation deems an instance of this type mandatory for the successful execution of createStorageSystem(), a suitable instance is created via an internal default creation logic and then set as the current. If the implementation has not sufficient logic and/or data to create a default instance, a MissingFoundationPartException is thrown.

        Returns:
        the currently set instance, potentially created on-demand if required.
        Throws:
        one.microstream.exceptions.MissingFoundationPartException - if a returnable instance is required but cannot be created by default.
      • getLockFileManagerCreator

        StorageLockFileManager.Creator getLockFileManagerCreator()
        Returns the currently set StorageLockFileManager.Creator instance.

        If no instance is set and the implementation deems an instance of this type mandatory for the successful execution of createStorageSystem(), a suitable instance is created via an internal default creation logic and then set as the current. If the implementation has not sufficient logic and/or data to create a default instance, a MissingFoundationPartException is thrown.

        Returns:
        the currently set instance, potentially created on-demand if required.
        Throws:
        one.microstream.exceptions.MissingFoundationPartException - if a returnable instance is required but cannot be created by default.
      • getExceptionHandler

        StorageExceptionHandler getExceptionHandler()
        Returns the currently set StorageExceptionHandler instance.

        If no instance is set and the implementation deems an instance of this type mandatory for the successful execution of createStorageSystem(), a suitable instance is created via an internal default creation logic and then set as the current. If the implementation has not sufficient logic and/or data to create a default instance, a MissingFoundationPartException is thrown.

        Returns:
        the currently set instance, potentially created on-demand if required.
        Throws:
        one.microstream.exceptions.MissingFoundationPartException - if a returnable instance is required but cannot be created by default.
      • getLiveObjectIdChecker

        one.microstream.persistence.types.ObjectIdsSelector getLiveObjectIdChecker()
      • getLiveStorerRegistryReference

        one.microstream.reference.Reference<one.microstream.persistence.types.PersistenceLiveStorerRegistry> getLiveStorerRegistryReference()
      • getStorageStructureValidator

        StorageStructureValidator getStorageStructureValidator()
        Returns the currently set StorageStructureValidator instance.

        If no instance is set and the implementation deems an instance of this type mandatory for the successful execution of createStorageSystem(), a suitable instance is created via an internal default creation logic and then set as the current. If the implementation has not sufficient logic and/or data to create a default instance, a MissingFoundationPartException is thrown.

        Returns:
        the currently set instance, potentially created on-demand if required.
        Throws:
        one.microstream.exceptions.MissingFoundationPartException - if a returnable instance is required but cannot be created by default.
      • setConfiguration

        F setConfiguration​(StorageConfiguration configuration)
        Sets the StorageConfiguration instance to be used for the assembly.
        Parameters:
        configuration - the instance to be used.
        Returns:
        this to allow method chaining.
      • setTaskBrokerCreator

        F setTaskBrokerCreator​(StorageTaskBroker.Creator taskBrokerCreator)
        Sets the StorageTaskBroker.Creator instance to be used for the assembly.
        Parameters:
        taskBrokerCreator - the instance to be used.
        Returns:
        this to allow method chaining.
      • setChannelCreator

        F setChannelCreator​(StorageChannelsCreator channelCreator)
        Sets the StorageChannelsCreator instance to be used for the assembly.
        Parameters:
        channelCreator - the instance to be used.
        Returns:
        this to allow method chaining.
      • setThreadNameProvider

        F setThreadNameProvider​(StorageThreadNameProvider threadNameProvider)
        Sets the StorageThreadNameProvider instance to be used for the assembly.
        Parameters:
        threadNameProvider - the instance to be used.
        Returns:
        this to allow method chaining.
      • setChannelThreadProvider

        F setChannelThreadProvider​(StorageChannelThreadProvider channelThreadProvider)
        Sets the StorageChannelThreadProvider instance to be used for the assembly.
        Parameters:
        channelThreadProvider - the instance to be used.
        Returns:
        this to allow method chaining.
      • setBackupThreadProvider

        F setBackupThreadProvider​(StorageBackupThreadProvider backupThreadProvider)
        Sets the StorageBackupThreadProvider instance to be used for the assembly.
        Parameters:
        backupThreadProvider - the instance to be used.
        Returns:
        this to allow method chaining.
      • setThreadProvider

        F setThreadProvider​(StorageThreadProvider threadProvider)
        Sets the StorageThreadProvider instance to be used for the assembly.
        Parameters:
        threadProvider - the instance to be used.
        Returns:
        this to allow method chaining.
      • setTypeDictionary

        F setTypeDictionary​(StorageTypeDictionary typeDictionary)
        Sets the StorageTypeDictionary instance to be used for the assembly.
        Parameters:
        typeDictionary - the instance to be used.
        Returns:
        this to allow method chaining.
      • setRootTypeIdProvider

        F setRootTypeIdProvider​(StorageRootTypeIdProvider rootTypeIdProvider)
        Sets the StorageRootTypeIdProvider instance to be used for the assembly.
        Parameters:
        rootTypeIdProvider - the instance to be used.
        Returns:
        this to allow method chaining.
      • setTimestampProvider

        F setTimestampProvider​(StorageTimestampProvider timestampProvider)
        Sets the StorageTimestampProvider instance to be used for the assembly.
        Parameters:
        timestampProvider - the instance to be used.
        Returns:
        this to allow method chaining.
      • setGCZombieOidHandler

        F setGCZombieOidHandler​(StorageGCZombieOidHandler gCZombieOidHandler)
        Sets the StorageGCZombieOidHandler instance to be used for the assembly.
        Parameters:
        gCZombieOidHandler - the instance to be used.
        Returns:
        this to allow method chaining.
      • setProcessIdentityProvider

        F setProcessIdentityProvider​(one.microstream.util.ProcessIdentityProvider processIdentityProvider)
        Sets the ProcessIdentityProvider instance to be used for the assembly.
        Parameters:
        processIdentityProvider - the instance to be used.
        Returns:
        this to allow method chaining.
      • setLockFileSetup

        F setLockFileSetup​(StorageLockFileSetup lockFileSetup)
        Sets the StorageLockFileSetup instance to be used for the assembly.
        Parameters:
        lockFileSetup - the instance to be used.
        Returns:
        this to allow method chaining.
      • setExceptionHandler

        F setExceptionHandler​(StorageExceptionHandler exceptionHandler)
        Sets the StorageExceptionHandler instance to be used for the assembly.
        Parameters:
        exceptionHandler - the instance to be used.
        Returns:
        this to allow method chaining.
      • setLiveObjectIdChecker

        F setLiveObjectIdChecker​(one.microstream.persistence.types.ObjectIdsSelector liveObjectIdChecker)
      • setLiveStorerRegistryReference

        F setLiveStorerRegistryReference​(one.microstream.reference.Reference<one.microstream.persistence.types.PersistenceLiveStorerRegistry> LiveStorerRegistryReference)
      • setStorageStructureValidator

        F setStorageStructureValidator​(StorageStructureValidator storageStructureValidator)
        Sets the StorageStructureValidator instance to be used for the assembly.
        Parameters:
        storageStructureValidator - the instance to be used.
        Returns:
        this to allow method chaining.
      • createStorageSystem

        StorageSystem createStorageSystem()
        Creates and returns a new StorageSystem instance by using the current state of all registered logic part instances and by on-demand creating missing ones via a default logic.

        The returned StorageSystem instance will NOT yet be started.

        Returns:
        a new StorageSystem instance.