package ru.nbch.indicsearchservice.loader; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Set; import org.springframework.stereotype.Component; import ru.nbch.indicsearchservice.model.TableData; import ru.nbch.indicsearchservice.model.enums.DataType; import ru.nbch.indicsearchservice.model.enums.SearchParameter; import ru.nbch.indicsearchservice.util.IndicSearchUtils; import ru.nbch.indicsearchservice.util.MapperHolder; @Component public class RuBankruptcyTableLoader implements TableLoader { private final MapperHolder mapperHolder; private final IndicSearchUtils indicSearchUtils; public RuBankruptcyTableLoader(MapperHolder mapperHolder, IndicSearchUtils indicSearchUtils) { this.mapperHolder = mapperHolder; this.indicSearchUtils = indicSearchUtils; } @Override public List getSuitableDataTypes() { return List.of(DataType.GUTDF, DataType.RUTDF); } @Override public List getSuitableSearchParameters() { return List.of(SearchParameter.FID); } @Override public String getTableName() { return "RU_BANKRUPTCY"; } @Override public List searchByFid(Set fids) { List> foundTableRows = mapperHolder.getIndicMapper().findAllByFidFromRuBankruptcy(fids); List resultTableData = new ArrayList<>(); for (LinkedHashMap row : foundTableRows) { TableData parsedTableData = indicSearchUtils.mapToTableData(getTableName(), row); resultTableData.add(parsedTableData); } return resultTableData; } }