package com.megatim.fdxcommons.tools.database.queries.metadata; import com.megatim.fdxcommons.tools.database.exceptions.BadDataValueException; import com.megatim.fdxcommons.tools.database.exceptions.ColumnNotFoundException; import com.megatim.fdxcommons.tools.database.exceptions.LocalDateTimeValueParseError; import com.megatim.fdxcommons.tools.database.contrat.TypeFichierDataRow; import com.megatim.fdxcommons.tools.database.contrat.TypeFichierUpdateMetaData; import com.megatim.fdxcommons.tools.database.exceptions.TypeFichierDataBadRequest; import java.util.List; import java.util.stream.Collectors; /** * * @author Gabuntu */ public class ApiUpdateTypeFichierData implements TypeFichierUpdateMetaData { private final String tableName; private final FdxParsedDataRow fdxParsedDataRow; public ApiUpdateTypeFichierData(String tableName, FdxParsedDataRow fdxParsedDataRow) { this.tableName = tableName; this.fdxParsedDataRow = fdxParsedDataRow; } @Override public String tableName() { return tableName; } @Override public List columnNames() throws TypeFichierDataBadRequest, ColumnNotFoundException, BadDataValueException, LocalDateTimeValueParseError { //NB On itère selon l'ordre des champs dans l'entité return fdxParsedDataRow.dataRow() .entrySet() .stream() .map(e -> e.getKey()) .sorted((e1, e2) -> e1.compareTo(e2)) //On se rassure de classer le résultat .collect(Collectors.toList()); } @Override public TypeFichierDataRow row() throws ColumnNotFoundException, BadDataValueException, LocalDateTimeValueParseError { return new DefaultTypeFichierDataRow(fdxParsedDataRow.dataRow()); } }