SearchBase.java
/**
*
*/
package com.tradecloud.domain.dto.base;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.tradecloud.domain.model.organisationalunit.OrganisationalUnit;
import com.tradecloud.domain.search.OrgUnitFilter;
import com.tradecloud.repository.SearchMetaParams;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.io.Serializable;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.StringJoiner;
/**
* Base class for all entity search classes.
*/
@SuperBuilder
@AllArgsConstructor
@NoArgsConstructor
public abstract class SearchBase implements OrgUnitFilter, Serializable {
@JsonIgnore
private boolean filteredByOrg;
private Boolean imports = Boolean.TRUE;
/**
* This method has an empty implementation. It is a hook method for
* subclasses to specify the table name of the entity they represent.
*
* @return The table name of the entity
*/
@JsonIgnore
public abstract String getTableName();
@JsonIgnore
private SearchMetaParams searchMetaParams;
@JsonIgnore
public SearchMetaParams getSearchMetaParams() {
return searchMetaParams;
}
@JsonIgnore
public void setSearchMetaParams(SearchMetaParams searchMetaParams) {
this.searchMetaParams = searchMetaParams;
}
@JsonIgnore
public boolean isFilteredByUserOrg() {
return filteredByOrg;
}
@JsonIgnore
public void setFilteredByUserOrg(boolean filteredByOrg) {
this.filteredByOrg = filteredByOrg;
}
@Override
@JsonIgnore
public boolean noSelectedOrgUnit() {
return false;
}
//breaks order search screen export if not commented
@JsonIgnore
public void setOrganisationalUnits2(List<OrganisationalUnit> organisationalUnits) {
//throw new NotImplementedException("implement this");
}
@JsonIgnore
public Collection<OrganisationalUnit> getOrganisationalUnits2() {
//throw new NotImplementedException("implement this");
return null;
}
@JsonIgnore
public void setOrganisationalUnit2(OrganisationalUnit organisationalUnit) {
//throw new NotImplementedException("implement this");
}
public Boolean getImports() {
return imports;
}
public void setImports(Boolean imports) {
this.imports = imports;
}
public Boolean isImports(){
return imports;
}
public static void addIfNotNull(StringJoiner joiner, String name, Object value) {
if (value != null) {
joiner.add(name + "=" + value);
}
}
public static void addIfNotBlank(StringJoiner joiner, String name, String value) {
if (value != null && !value.isBlank()) {
joiner.add(name + "='" + value + "'");
}
}
public static void addIfNotEmpty(StringJoiner joiner, String name, Object[] value) {
if (value != null && value.length > 0) {
joiner.add(name + "=" + Arrays.toString(value));
}
}
}