CooperatorOwnedLangFilter.java
/*
* Copyright 2026 Global Crop Diversity Trust
* Licensed under the Apache License, Version 2.0
* See LICENSE file in project root folder or http://www.apache.org/licenses/LICENSE-2.0
*/
package org.gringlobal.service.filter;
import java.util.List;
import java.util.Set;
import org.genesys.blocks.model.EmptyModel;
import org.genesys.blocks.model.filters.StringFilter;
import org.gringlobal.model.CooperatorOwnedLang;
import org.gringlobal.model.QCooperatorOwnedLang;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import com.querydsl.core.types.Predicate;
import com.querydsl.core.types.dsl.EntityPathBase;
import org.apache.commons.collections4.CollectionUtils;
@Getter
@Setter
@EqualsAndHashCode(callSuper = true)
@Accessors(fluent = true)
public abstract class CooperatorOwnedLangFilter<T extends CooperatorOwnedLangFilter<T, L, E, Q>, L extends CooperatorOwnedLang<L, E>, E extends EmptyModel, Q extends EntityPathBase<L>> extends CooperatorOwnedModelFilter<T, L, Q> {
public Set<Long> sysLangId;
public StringFilter title;
public StringFilter description;
/**
* Collects list of filter predicates
*
* @param instance the instance of Q-type of <em>R</em>
* @param langInstance the cooperator owned lang model
* @return list of predicates
*/
protected List<Predicate> collectSuperPredicates(final Q instance, final QCooperatorOwnedLang langInstance) {
List<Predicate> predicates = super.collectSuperPredicates(instance, langInstance._super);
if (!CollectionUtils.isEmpty(sysLangId)) {
predicates.add(langInstance.sysLang().id.in(sysLangId));
}
if (title != null) {
predicates.add(title.buildQuery(langInstance.title));
}
if (description != null) {
predicates.add(description.buildQuery(langInstance.description));
}
return predicates;
}
}