package org.molgenis.data.importer.config;
import org.molgenis.data.DataService;
import org.molgenis.data.EntityManager;
import org.molgenis.data.i18n.model.I18nStringFactory;
import org.molgenis.data.i18n.model.I18nStringMetaData;
import org.molgenis.data.i18n.model.LanguageFactory;
import org.molgenis.data.importer.ImportService;
import org.molgenis.data.importer.ImportServiceFactory;
import org.molgenis.data.importer.MetaDataParser;
import org.molgenis.data.importer.emx.EmxImportService;
import org.molgenis.data.importer.emx.EmxMetaDataParser;
import org.molgenis.data.importer.emx.ImportWriter;
import org.molgenis.data.meta.EntityTypeDependencyResolver;
import org.molgenis.data.meta.model.*;
import org.molgenis.data.validation.meta.AttributeValidator;
import org.molgenis.data.validation.meta.EntityTypeValidator;
import org.molgenis.data.validation.meta.TagValidator;
import org.molgenis.security.core.MolgenisPermissionService;
import org.molgenis.security.permission.PermissionSystemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class ImporterConfiguration
{
@Autowired
private DataService dataService;
@Autowired
private PermissionSystemService permissionSystemService;
@Autowired
private ImportServiceFactory importServiceFactory;
@Autowired
private MolgenisPermissionService molgenisPermissionService;
@Autowired
private TagMetadata tagMetadata;
@Autowired
private I18nStringMetaData i18nStringMetaData;
@Autowired
private PackageFactory packageFactory;
@Autowired
private AttributeFactory attrMetaFactory;
@Autowired
private EntityTypeFactory entityTypeFactory;
@Autowired
private TagFactory tagFactory;
@Autowired
private LanguageFactory languageFactory;
@Autowired
private I18nStringFactory i18nStringFactory;
@Autowired
private EntityManager entityManager;
@Autowired
private EntityTypeValidator entityTypeValidator;
@Autowired
private AttributeValidator attributeValidator;
@Autowired
private TagValidator tagValidator;
@Autowired
private EntityTypeDependencyResolver entityTypeDependencyResolver;
@Bean
public ImportService emxImportService()
{
return new EmxImportService(emxMetaDataParser(), importWriter(), dataService);
}
@Bean
public ImportWriter importWriter()
{
return new ImportWriter(dataService, permissionSystemService, molgenisPermissionService, entityManager,
entityTypeDependencyResolver);
}
@Bean
public MetaDataParser emxMetaDataParser()
{
return new EmxMetaDataParser(dataService, packageFactory, attrMetaFactory, entityTypeFactory, tagFactory,
languageFactory, i18nStringFactory, entityTypeValidator, attributeValidator, tagValidator,
entityTypeDependencyResolver);
}
}