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<String> 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());
|
}
|
|
}
|