/* * Copyright (C) 2011 4th Line GmbH, Switzerland * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.fourthline.konto.shared.query; import org.seamless.gwt.validation.shared.EntityProperty; import java.io.Serializable; import java.util.List; /** * @author Christian Bauer */ public class QueryCriteria implements Serializable { List<Long> listOfIdentifiers; EntityProperty orderBy = null; boolean sortAscending = false; String stringFilter = null; boolean substringQuery = false; Integer firstResult = null; Integer maxResults = null; public QueryCriteria() { } public QueryCriteria(List<Long> listOfIdentifiers) { this.listOfIdentifiers = listOfIdentifiers; } public QueryCriteria(List<Long> listOfIdentifiers, EntityProperty orderBy, boolean sortAscending, Integer firstResult, Integer maxResults) { this.listOfIdentifiers = listOfIdentifiers; this.orderBy = orderBy; this.sortAscending = sortAscending; this.firstResult = firstResult; this.maxResults = maxResults; } public QueryCriteria(String stringFilter, boolean substringQuery) { this.stringFilter = stringFilter; this.substringQuery = substringQuery; } public QueryCriteria(EntityProperty orderBy, boolean sortAscending) { this.orderBy = orderBy; this.sortAscending = sortAscending; } public QueryCriteria(EntityProperty orderBy, boolean sortAscending, Integer firstResult, Integer maxResults) { this.orderBy = orderBy; this.sortAscending = sortAscending; this.firstResult = firstResult; this.maxResults = maxResults; } public QueryCriteria(EntityProperty orderBy, boolean sortAscending, String stringFilter, boolean substringQuery, Integer firstResult, Integer maxResults) { this.orderBy = orderBy; this.sortAscending = sortAscending; this.stringFilter = stringFilter; this.substringQuery = substringQuery; this.firstResult = firstResult; this.maxResults = maxResults; } public List<Long> getListOfIdentifiers() { return listOfIdentifiers; } public void setListOfIdentifiers(List<Long> listOfIdentifiers) { this.listOfIdentifiers = listOfIdentifiers; } public boolean isListOfIdentifiersEmpty() { return getListOfIdentifiers() == null || getListOfIdentifiers().size() == 0; } public EntityProperty getOrderBy() { return orderBy; } public QueryCriteria setOrderBy(EntityProperty orderBy) { this.orderBy = orderBy; return this; } public boolean isSortAscending() { return sortAscending; } public QueryCriteria setSortAscending(boolean sortAscending) { this.sortAscending = sortAscending; return this; } public String getStringFilter() { return stringFilter; } public QueryCriteria setStringFilter(String stringFilter) { this.stringFilter = stringFilter; return this; } public boolean isSubstringQuery() { return substringQuery; } public QueryCriteria setSubstringQuery(boolean substringQuery) { this.substringQuery = substringQuery; return this; } public Integer getFirstResult() { return firstResult; } public QueryCriteria setFirstResult(Integer firstResult) { this.firstResult = firstResult; return this; } public Integer getMaxResults() { return maxResults; } public QueryCriteria setMaxResults(Integer maxResults) { this.maxResults = maxResults; return this; } public boolean isStringFilterEmpty() { return stringFilter == null || stringFilter.length() == 0; } public String getStringFilterWildcards() { return isSubstringQuery() ? "%" + getStringFilter().toLowerCase() + "%" : getStringFilter().toLowerCase() + "%"; } public boolean isStringFiltered() { return getStringFilter() != null && getStringFilter().length() > 0; } }