/*
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Interface.java to edit this template
|
*/
|
package com.megatim.fdxcommons.dao.ifaces.integration;
|
|
import com.megatim.fdxcommons.dao.ifaces.abstracts.CustomDAOIfaces;
|
import com.megatim.fdxcommons.model.integration.ColumnDefinition;
|
import com.megatim.fdxcommons.model.integration.ColumnDefinitionId;
|
import com.megatim.fdxcommons.model.searchentities.ColumnDefinitionSearch;
|
import java.util.HashSet;
|
import java.util.List;
|
import java.util.Optional;
|
import java.util.Set;
|
import javax.persistence.Query;
|
import javax.persistence.Tuple;
|
|
/**
|
*
|
* @author ASUS
|
*/
|
public interface ColumnDefinitionDAO extends CustomDAOIfaces<ColumnDefinition, ColumnDefinitionId, ColumnDefinitionSearch> {
|
|
public default ColumnDefinition findByNameAndReferentielAndTypeFichier(String columnName, String referentielVersion, String codeTypeFichier) {
|
Query query = getEntityManager().createQuery("SELECT c FROM ColumnDefinition c "
|
+ " WHERE c.name = :columnName AND c.referentielVersion = :referentielVersion "
|
+ " AND c.codeTypeFichier = :codeTypeFichier");
|
|
query.setParameter("columnName", columnName);
|
query.setParameter("referentielVersion", referentielVersion);
|
query.setParameter("codeTypeFichier", codeTypeFichier);
|
|
Optional<ColumnDefinition> optColumnDef = ((List<ColumnDefinition>) query.getResultList()).stream().findFirst();
|
|
return optColumnDef.isPresent() ? optColumnDef.get() : null;
|
}
|
|
public default List<ColumnDefinition> findByReferentielAndTypeFichier(String referentielVersion, String codeTypeFichier) {
|
return getEntityManager()
|
.createQuery("SELECT c FROM ColumnDefinition c"
|
+ " WHERE c.referentielVersion = :referentielVersion AND c.codeTypeFichier = :codeTypeFichier", ColumnDefinition.class)
|
.setParameter("referentielVersion", referentielVersion)
|
.setParameter("codeTypeFichier", codeTypeFichier)
|
.getResultList();
|
|
}
|
|
public default List<ColumnDefinition> findByReferentiel(String referentielVersion) {
|
return getEntityManager()
|
.createQuery("SELECT c FROM ColumnDefinition c"
|
+ " WHERE c.referentielVersion = :referentielVersion ", ColumnDefinition.class)
|
.setParameter("referentielVersion", referentielVersion)
|
.getResultList();
|
}
|
|
public default Set<String> findTypeFichierByReferentiel(String referentielVersion) {
|
Set<String> typeFichiers = new HashSet<>();
|
List<ColumnDefinition> columnDefinitions = findByReferentiel(referentielVersion);
|
|
columnDefinitions.stream().forEach(c -> {
|
if (!typeFichiers.contains(c.getCodeTypeFichier())) {
|
typeFichiers.add(c.getCodeTypeFichier());
|
}
|
});
|
return typeFichiers;
|
}
|
|
@Override
|
public default ColumnDefinition getById(ColumnDefinitionId id) {
|
Query query = getEntityManager().createQuery("SELECT c FROM ColumnDefinition c"
|
+ " WHERE c.referentielVersion = :referentielVersion AND c.codeTypeFichier = :codeTypeFichier"
|
+ " AND c.name = :name");
|
|
query.setParameter("referentielVersion", id.getReferentielVersion());
|
query.setParameter("codeTypeFichier", id.getCodeTypeFichier());
|
query.setParameter("name", id.getName());
|
|
Optional<ColumnDefinition> optColumnDef = ((List<ColumnDefinition>) query.getResultList()).stream().findFirst();
|
|
return optColumnDef.isPresent() ? optColumnDef.get() : null;
|
}
|
|
List<Tuple> byRefVersionAndByTypeFichier();
|
}
|