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; } } }