package com.megatim.fdxcommons.tools.utils;
|
|
import com.megatim.fdxcommons.model.enumeration.CriteriaLogicConnector;
|
import com.megatim.fdxcommons.model.enumeration.Operateur;
|
import com.megatim.fdxcommons.model.pojo.CriteriaEntityFromView;
|
import com.megatim.fdxcommons.tools.database.queries.metadata.QueryCriterion;
|
import java.util.ArrayList;
|
import java.util.Arrays;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
/**
|
*
|
* @author Gabuntu
|
*/
|
public class CriteriaEntityFromViewToQueryCriterion {
|
|
private final CriteriaEntityFromView criteriaEntityFromView;
|
|
public CriteriaEntityFromViewToQueryCriterion(CriteriaEntityFromView criteriaEntityFromView) {
|
this.criteriaEntityFromView = criteriaEntityFromView;
|
}
|
|
public QueryCriterion queryCriterion() {
|
|
if (criteriaEntityFromView == null) {
|
return null;
|
}
|
|
String nomColonne = criteriaEntityFromView.getNomColonne() != null ? criteriaEntityFromView.getNomColonne() : "";
|
Object criteriaValue = criteriaEntityFromView.getCriteriaValue();
|
Operateur operateur = criteriaEntityFromView.getOperateur();
|
CriteriaLogicConnector criteriaLogicConnector = criteriaEntityFromView.getCriteriaLogicConnector();
|
|
List<QueryCriterion> subCriteria = new ArrayList<>();
|
if (criteriaEntityFromView.getSubCriterias() != null && !criteriaEntityFromView.getSubCriterias().isEmpty()) {
|
subCriteria = criteriaEntityFromView.getSubCriterias()
|
.stream()
|
.map(sC -> new CriteriaEntityFromViewToQueryCriterion(sC).queryCriterion())
|
.collect(Collectors.toList());
|
|
return new QueryCriterion(null, null, null, criteriaLogicConnector, subCriteria);
|
} else if (nomColonne != null && !nomColonne.isEmpty() && operateur != null) {
|
return new QueryCriterion(nomColonne, criteriaValue, operateur, null, Arrays.asList());
|
}
|
return null;
|
}
|
|
}
|