org.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 org.sirix.access.json;
import dagger.Module;
import dagger.Provides;
import org.sirix.access.DatabaseConfiguration;
import org.sirix.access.LocalDatabase;
import org.sirix.access.LocalDatabaseModule;
import org.sirix.access.PathBasedPool;
import org.sirix.access.ResourceManagerFactory;
import org.sirix.access.ResourceStore;
import org.sirix.access.ResourceStoreImpl;
import org.sirix.access.SubComponentResourceManagerFactory;
import org.sirix.access.WriteLocksRegistry;
import org.sirix.api.Database;
import org.sirix.api.ResourceManager;
import org.sirix.api.TransactionManager;
import org.sirix.api.json.JsonResourceManager;
import org.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 ResourceManagerFactory resourceManagerFactory(
final Provider subComponentBuilder) {
return new SubComponentResourceManagerFactory<>(subComponentBuilder);
}
@DatabaseScope
@Provides
static ResourceStore jsonResourceManager(
final PathBasedPool> allResourceManagers,
final ResourceManagerFactory resourceManagerFactory) {
return new ResourceStoreImpl<>(allResourceManagers, resourceManagerFactory);
}
@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 - 2025 Weber Informatics LLC | Privacy Policy