package com.megatim.fdxconsultation.dao.impl.supervision; import com.megatim.fdxconsultation.model.supervision.SensTransfert; import java.time.LocalDateTime; /** * * @author Gabuntu */ public class TransfertDaoDynamicWhereString { private final SensTransfert sens; private final LocalDateTime dateDebut; private final LocalDateTime dateFin; public TransfertDaoDynamicWhereString(SensTransfert sens, LocalDateTime dateDebut, LocalDateTime dateFin) { this.sens = sens; this.dateDebut = dateDebut; this.dateFin = dateFin; } public String query() { StringBuilder stringBuilder = new StringBuilder(""); boolean hasCriteria = false; if (sens != null) { stringBuilder.append(" t.sensTransfert = :sens "); hasCriteria = true; } if (dateDebut != null) { if (hasCriteria) { stringBuilder.append(" AND "); } stringBuilder.append(" t.dateDebut >= :dateDebut "); hasCriteria = true; } if (dateFin != null) { if (hasCriteria) { stringBuilder.append(" AND "); } stringBuilder.append(" t.dateFin <= :dateFin "); } return stringBuilder.toString(); } public String nativeQuery() { StringBuilder stringBuilder = new StringBuilder(""); boolean hasCriteria = false; if (sens != null) { stringBuilder.append(" t.senstransfert = :sens "); hasCriteria = true; } if (dateDebut != null) { if (hasCriteria) { stringBuilder.append(" AND "); } stringBuilder.append(" t.datedebut >= :dateDebut "); hasCriteria = true; } if (dateFin != null) { if (hasCriteria) { stringBuilder.append(" AND "); } stringBuilder.append(" t.datefin <= :dateFin "); } return stringBuilder.toString(); } }