All Downloads are FREE. Search and download functionalities are using the official Maven repository.

one.edee.babylon.spring.ExporterConfiguration Maven / Gradle / Ivy

package one.edee.babylon.spring;

import one.edee.babylon.db.SnapshotManager;
import one.edee.babylon.export.*;
import one.edee.babylon.sheets.gsheets.LightGSheetService;
import one.edee.babylon.sheets.gsheets.LightGSheetServiceExporterContractAdaptor;
import one.edee.babylon.snapshot.SnapshotAdapter;
import one.edee.babylon.snapshot.TranslationSnapshotReadContract;
import one.edee.babylon.snapshot.TranslationSnapshotWriteContract;
import one.edee.babylon.util.AntPathResourceLoader;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

import java.io.IOException;
import java.util.List;

@Configuration
@ComponentScan(basePackages = "one.edee.babylon.export.translator")
public class ExporterConfiguration {

    @Bean
    public Exporter exporter(ApplicationContext applicationContext,
                             TranslationCollector translationCollector,
                             TranslationSnapshotWriteContract snapshot,
                             Exporter.SheetContract sheetContract,
                             AntPathResourceLoader resourceLoader) {
        return new Exporter(applicationContext, translationCollector, snapshot, sheetContract, resourceLoader);
    }

    @Bean
    public TranslationCollector translationCollector(List messageLoaders,
                                                     MessageFileProcessor messageFileProcessor,
                                                     TranslationSnapshotReadContract snapshotReadContract,
                                                     TranslationSnapshotWriteContract snapshotWriteContract) {
        return new TranslationCollector(messageLoaders, messageFileProcessor, snapshotReadContract, snapshotWriteContract);
    }

    @Bean
    public MessageLoader apronMessageLoader() {
        return new ApronMessageLoader();
    }
    @Bean
    public MessageLoader tsMessageLoader() {
        return new TsMessageLoader();
    }

    @Bean
    public MessageFileProcessor messageFileProcessor(TranslationSnapshotReadContract snapshotReadContract) {
        return new MessageFileProcessor(snapshotReadContract);
    }

    @Bean
    public SnapshotAdapter snapshotAdapter(SnapshotManager snapshotManager) throws IOException {
        return new SnapshotAdapter(snapshotManager.getOrCreateDataFile());
    }

    @Bean
    public Exporter.SheetContract sheetContract(LightGSheetService lightGSheetService) {
        return new LightGSheetServiceExporterContractAdaptor(lightGSheetService);
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy