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.

    • 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:
        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 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.
      • 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.
      • 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 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.
      • 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 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.
      • 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 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.
      • 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 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.
      • 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 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.
      • 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 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.
      • 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 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.
      • 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 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.
      • 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 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.
      • 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 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.
      • 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 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.
      • 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 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.
      • 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 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.
      • 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 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.
      • 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 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.
      • getReaderProvider

        StorageFileReader.Provider getReaderProvider()
        Returns the currently set StorageFileReader.Provider 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.
      • 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 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.
      • 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 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.
      • 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 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.
      • 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 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.
      • 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 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.
      • 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 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.
      • 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 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.
      • 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 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.
      • getProcessIdentityProvider

        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 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.
      • 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 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.
      • 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 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.
      • 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 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.
      • 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 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.
      • 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​(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.
      • 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.