package com.megatim.fdxconsultation.core.impl.stats;
|
|
import com.megatim.fdxcommons.model.pojo.BetweenOperatorValues;
|
import com.megatim.fdxcommons.model.pojo.CriteriaEntityFromView;
|
import com.megatim.fdxconsultation.model.stats.CriteriaEntityPersisted;
|
|
/**
|
*
|
* @author Gabuntu
|
*/
|
public class ConvertedCriteriaEntityFromView {
|
|
private final CriteriaEntityPersisted criteriaEntityPersisted;
|
|
public ConvertedCriteriaEntityFromView(CriteriaEntityPersisted criteriaEntityPersisted) {
|
this.criteriaEntityPersisted = criteriaEntityPersisted;
|
}
|
|
public CriteriaEntityFromView criteriaEntityFromView() {
|
return buildCriterion(criteriaEntityPersisted);
|
}
|
|
private CriteriaEntityFromView buildCriterion(CriteriaEntityPersisted persisted) {
|
|
if (persisted != null) {
|
|
CriteriaEntityFromView criterion = new CriteriaEntityFromView();
|
|
if (persisted.getSubCriterias() != null && !persisted.getSubCriterias().isEmpty()) {
|
|
criterion.setCriteriaLogicConnector(persisted.getCriteriaLogicConnector());
|
persisted.getSubCriterias().stream().forEach(c -> {
|
CriteriaEntityFromView criterionfromView = buildCriterion(c);
|
if (criterionfromView != null) {
|
criterion.getSubCriterias().add(criterionfromView);
|
}
|
});
|
|
return criterion;
|
|
} else {
|
|
criterion.setNomColonne(persisted.getNomColonne());
|
criterion.setOperateur(persisted.getOperateur());
|
criterion.setCriteriaValue(criteriaValue(persisted));
|
|
return criterion;
|
}
|
|
}
|
|
return null;
|
}
|
|
public Object criteriaValue(CriteriaEntityPersisted persisted) {
|
|
if (persisted.getCriteriaDateListValue() != null && !persisted.getCriteriaDateListValue().isEmpty()) {
|
return persisted.getCriteriaDateListValue();
|
|
} else if (persisted.getCriteriaDateLowerBound() != null && persisted.getCriteriaDateUpperBound() != null) {
|
return new BetweenOperatorValues(persisted.getCriteriaDateLowerBound(), persisted.getCriteriaDateUpperBound());
|
|
} else if (persisted.getCriteriaDateValue() != null) {
|
return persisted.getCriteriaDateValue();
|
|
} else if (persisted.getCriteriaNumericListValue() != null && !persisted.getCriteriaNumericListValue().isEmpty()) {
|
return persisted.getCriteriaNumericListValue();
|
|
} else if (persisted.getCriteriaNumericLowerBound() != null && persisted.getCriteriaNumericUpperBound() != null) {
|
return new BetweenOperatorValues(persisted.getCriteriaNumericLowerBound(), persisted.getCriteriaNumericUpperBound());
|
|
} else if (persisted.getCriteriaNumericValue() != null) {
|
return persisted.getCriteriaNumericValue();
|
|
} else if (persisted.getCriteriaStringListValue() != null && !persisted.getCriteriaStringListValue().isEmpty()) {
|
return persisted.getCriteriaStringListValue();
|
|
} else if (persisted.getCriteriaStringLowerBound() != null && persisted.getCriteriaStringUpperBound() != null) {
|
return new BetweenOperatorValues(persisted.getCriteriaStringLowerBound(), persisted.getCriteriaStringUpperBound());
|
|
} else if (persisted.getCriteriaStringValue() != null) {
|
return persisted.getCriteriaStringValue();
|
|
} else {
|
return null;
|
}
|
}
|
|
}
|