argos/dmp-backend/core/src/main/java/eu/eudat/query/lookup/DescriptionLookup.java

154 lines
4.5 KiB
Java

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<UUID> ids;
private List<UUID> excludedIds;
private Instant createdAfter;
private Instant createdBefore;
private Instant finalizedAfter;
private Instant finalizedBefore;
private DmpLookup dmpSubQuery;
private List<IsActive> isActive;
private List<DescriptionStatus> statuses;
public String getLike() {
return like;
}
public void setLike(String like) {
this.like = like;
}
public List<UUID> getIds() {
return ids;
}
public void setIds(List<UUID> ids) {
this.ids = ids;
}
public List<UUID> getExcludedIds() {
return excludedIds;
}
public void setExcludedIds(List<UUID> excludedIds) {
this.excludedIds = excludedIds;
}
public List<IsActive> getIsActive() {
return isActive;
}
public void setIsActive(List<IsActive> isActive) {
this.isActive = isActive;
}
public List<DescriptionStatus> getStatuses() {
return statuses;
}
public void setStatuses(List<DescriptionStatus> 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();
}
}