package be.bagofwords.db.filedb; import be.bagofwords.application.ApplicationContext; import be.bagofwords.application.memory.MemoryManager; import be.bagofwords.db.DataInterface; import be.bagofwords.db.DataInterfaceFactory; import be.bagofwords.db.combinator.Combinator; public class FileDataInterfaceFactory extends DataInterfaceFactory { private final MemoryManager memoryManager; private final String directory; public FileDataInterfaceFactory(ApplicationContext context) { super(context); this.memoryManager = context.getBean(MemoryManager.class); this.directory = context.getConfig("data_directory"); } @Override public <T extends Object> DataInterface<T> createBaseDataInterface(final String nameOfSubset, final Class<T> objectClass, final Combinator<T> combinator, boolean isTemporaryDataInterface) { FileDataInterface<T> result = new FileDataInterface<>(memoryManager, combinator, objectClass, directory, nameOfSubset, isTemporaryDataInterface, taskScheduler); memoryManager.registerMemoryGobbler(result); return result; } }