package eu.eudat.query.lookup; import eu.eudat.commons.enums.DescriptionStatus; import eu.eudat.commons.enums.IsActive; import eu.eudat.elastic.query.DescriptionElasticQuery; import eu.eudat.elastic.query.InnerObjectDmpElasticQuery; import eu.eudat.query.DescriptionQuery; import gr.cite.tools.data.query.Lookup; import gr.cite.tools.data.query.QueryFactory; import java.time.Instant; import java.util.List; import java.util.UUID; public class DescriptionLookup extends Lookup { private String like; private List ids; private List excludedIds; private Instant createdAfter; private Instant createdBefore; private Instant finalizedAfter; private Instant finalizedBefore; private DmpLookup dmpSubQuery; private List isActive; private List statuses; public String getLike() { return like; } public void setLike(String like) { this.like = like; } public List getIds() { return ids; } public void setIds(List ids) { this.ids = ids; } public List getExcludedIds() { return excludedIds; } public void setExcludedIds(List excludedIds) { this.excludedIds = excludedIds; } public List getIsActive() { return isActive; } public void setIsActive(List isActive) { this.isActive = isActive; } public List getStatuses() { return statuses; } public void setStatuses(List statuses) { this.statuses = statuses; } public DmpLookup getDmpSubQuery() { return dmpSubQuery; } public void setDmpSubQuery(DmpLookup dmpSubQuery) { this.dmpSubQuery = dmpSubQuery; } public Instant getCreatedAfter() { return createdAfter; } public void setCreatedAfter(Instant createdAfter) { this.createdAfter = createdAfter; } public Instant getCreatedBefore() { return createdBefore; } public void setCreatedBefore(Instant createdBefore) { this.createdBefore = createdBefore; } public Instant getFinalizedAfter() { return finalizedAfter; } public void setFinalizedAfter(Instant finalizedAfter) { this.finalizedAfter = finalizedAfter; } public Instant getFinalizedBefore() { return finalizedBefore; } public void setFinalizedBefore(Instant finalizedBefore) { this.finalizedBefore = finalizedBefore; } public DescriptionQuery enrich(QueryFactory queryFactory) { DescriptionQuery query = queryFactory.query(DescriptionQuery.class); if (this.like != null) query.like(this.like); if (this.ids != null) query.ids(this.ids); if (this.excludedIds != null) query.excludedIds(this.excludedIds); if (this.dmpSubQuery != null) query.dmpSubQuery(this.dmpSubQuery.enrich(queryFactory)); if (this.isActive != null) query.isActive(this.isActive); if (this.statuses != null) query.statuses(this.statuses); if (this.createdAfter != null) query.createdAfter(this.createdAfter); if (this.createdBefore != null) query.createdBefore(this.createdBefore); if (this.finalizedAfter != null) query.finalizedAfter(this.finalizedAfter); if (this.finalizedBefore != null) query.finalizedBefore(this.finalizedBefore); this.enrichCommon(query); return query; } public DescriptionElasticQuery enrichElastic(QueryFactory queryFactory) { DescriptionElasticQuery query = queryFactory.query(DescriptionElasticQuery.class); InnerObjectDmpElasticQuery dmpElasticQuery = null; if (this.like != null) query.like(this.like); if (this.ids != null) query.ids(this.ids); if (this.excludedIds != null) query.excludedIds(this.excludedIds); if (this.statuses != null) query.statuses(this.statuses); if (this.createdAfter != null) query.createdAfter(this.createdAfter); if (this.createdBefore != null) query.createdBefore(this.createdBefore); if (this.finalizedAfter != null) query.finalizedAfter(this.finalizedAfter); if (this.finalizedBefore != null) query.finalizedBefore(this.finalizedBefore); if (this.dmpSubQuery != null) query.dmpSubQuery(this.dmpSubQuery.enrichElasticInner(queryFactory)); this.enrichCommon(query); return query; } public boolean useElastic() { return this.like != null && !this.like.isBlank(); } }