package eu.eudat.query.utils; import jakarta.persistence.criteria.*; import java.util.UUID; public interface QueryUtilsService { Subquery buildSubQuery(BuildSubQueryInput parameters); Subquery buildDmpAuthZSubQuery(AbstractQuery query, CriteriaBuilder criteriaBuilder, UUID userId, Boolean usePublic); Subquery buildDescriptionAuthZSubQuery(AbstractQuery query, CriteriaBuilder criteriaBuilder, UUID userId, Boolean usePublic); Subquery buildPublicDmpAuthZSubQuery(AbstractQuery query, CriteriaBuilder criteriaBuilder, Boolean usePublic); Subquery buildDmpUserAuthZSubQuery(AbstractQuery query, CriteriaBuilder criteriaBuilder, UUID userId); Predicate ilike(CriteriaBuilder criteriaBuilder, Expression path, String value); }