io.sirix.access.json.JsonLocalDatabaseModule Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of sirix-core Show documentation
Show all versions of sirix-core Show documentation
SirixDB is a hybrid on-disk and in-memory document oriented, versioned database system. It has a lightweight buffer manager, stores everything in a huge persistent and durable tree and allows efficient reconstruction of every revision. Furthermore, SirixDB implements change tracking, diffing and supports time travel queries.
package io.sirix.access.json;
import dagger.Module;
import dagger.Provides;
import io.sirix.access.*;
import io.sirix.api.Database;
import io.sirix.api.ResourceSession;
import io.sirix.api.TransactionManager;
import io.sirix.api.json.JsonResourceSession;
import io.sirix.dagger.DatabaseScope;
import javax.inject.Provider;
/**
* The module for {@link JsonLocalDatabaseComponent}.
*
* @author Joao Sousa
*/
@Module(includes = LocalDatabaseModule.class)
public interface JsonLocalDatabaseModule {
@DatabaseScope
@Provides
static ResourceSessionFactory resourceManagerFactory(
final Provider subComponentBuilder) {
return new SubComponentResourceSessionFactory<>(subComponentBuilder);
}
@DatabaseScope
@Provides
static ResourceStore jsonResourceManager(
final PathBasedPool> allResourceManagers,
final ResourceSessionFactory resourceSessionFactory) {
return new ResourceStoreImpl<>(allResourceManagers, resourceSessionFactory);
}
@DatabaseScope
@Provides
static Database jsonDatabase(final TransactionManager transactionManager,
final DatabaseConfiguration dbConfig, final PathBasedPool> sessions,
final ResourceStore resourceStore, final WriteLocksRegistry writeLocks,
final PathBasedPool> resourceManagers) {
return new LocalDatabase<>(transactionManager,
dbConfig,
sessions,
resourceStore,
writeLocks,
resourceManagers);
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy