/*
* Copyright 2012 uaiHebert Solucoes em Informatica
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* */
package com.uaihebert.model;
import com.uaihebert.uaicriteria.UaiCriteria;
import java.util.List;
public class EasyCriteriaImp<T> implements EasyCriteria<T> {
private final UaiCriteria<T> uaiCriteria;
public EasyCriteriaImp(final UaiCriteria<T> uaiCriteria) {
this.uaiCriteria = uaiCriteria;
}
public List<T> getResultList() {
return uaiCriteria.getResultList();
}
public T getSingleResult() {
return uaiCriteria.getSingleResult();
}
public EasyCriteriaImp<T> andEquals(final String attributeName, final Object value) {
uaiCriteria.andEquals(attributeName, value);
return this;
}
public EasyCriteria<T> andEquals(final boolean toLowerCase, final String attributeName, final Object value) {
uaiCriteria.andEquals(toLowerCase, attributeName, value.toString());
return this;
}
public EasyCriteria<T> andNotEquals(final String attributeName, final Object value) {
uaiCriteria.andNotEquals(attributeName, value);
return this;
}
public EasyCriteria<T> andNotEquals(final boolean toLowerCase, final String attributeName, final Object value) {
uaiCriteria.andNotEquals(toLowerCase, attributeName, value.toString());
return this;
}
public EasyCriteria<T> orNotEquals(final String attributeName, final Object... values) {
uaiCriteria.orNotEquals(attributeName, values);
return this;
}
public EasyCriteria<T> orNotEquals(final boolean toLowerCase, final String attributeName, final Object... valueArray) {
final String[] stringArray = convertToStringArray(valueArray);
uaiCriteria.orNotEquals(toLowerCase, attributeName, stringArray);
return this;
}
private String[] convertToStringArray(final Object[] valueArray) {
final String[] stringArray = new String[valueArray.length];
for (int i = 0; i < valueArray.length; i++) {
stringArray[i] = valueArray[i].toString();
}
return stringArray;
}
public EasyCriteria<T> andGreaterThan(final String attributeName, final Object value) {
uaiCriteria.andGreaterThan(attributeName, value);
return this;
}
public EasyCriteria<T> andGreaterThan(final boolean toLowerCase, final String attributeName, final Object value) {
uaiCriteria.andGreaterThan(toLowerCase, attributeName, value.toString());
return this;
}
public EasyCriteria<T> andGreaterOrEqualTo(final String attributeName, final Object value) {
uaiCriteria.andGreaterOrEqualTo(attributeName, value);
return this;
}
public EasyCriteria<T> andGreaterOrEqualTo(final boolean toLowerCase, final String attributeName, final Object value) {
uaiCriteria.andGreaterOrEqualTo(toLowerCase, attributeName, value.toString());
return this;
}
public EasyCriteria<T> andLessThan(final String attributeName, final Object value) {
uaiCriteria.andLessThan(attributeName, value);
return this;
}
public EasyCriteria<T> andLessThan(final boolean toLowerCase, final String attributeName, final Object value) {
uaiCriteria.andLessThan(toLowerCase, attributeName, value.toString());
return this;
}
public EasyCriteria<T> andLessOrEqualTo(final String attributeName, final Object value) {
uaiCriteria.andLessOrEqualTo(attributeName, value);
return this;
}
public EasyCriteria<T> andLessOrEqualTo(final boolean toLowerCase, final String attributeName, final Object value) {
uaiCriteria.andLessOrEqualTo(toLowerCase, attributeName, value.toString());
return this;
}
public EasyCriteria<T> innerJoin(final String joinName) {
uaiCriteria.innerJoin(joinName);
return this;
}
public EasyCriteria<T> setDistinctTrue() {
uaiCriteria.setDistinctTrue();
return this;
}
public EasyCriteria<T> leftJoin(final String joinName) {
uaiCriteria.leftJoin(joinName);
return this;
}
public EasyCriteria<T> innerJoinFetch(final String joinName) {
uaiCriteria.innerJoinFetch(joinName);
return this;
}
public EasyCriteria<T> leftJoinFetch(final String joinName) {
uaiCriteria.leftJoinFetch(joinName);
return this;
}
public EasyCriteria<T> andBetween(final String attributeName, final Object valueA, final Object valueB) {
uaiCriteria.andBetween(attributeName, valueA, valueB);
return this;
}
public EasyCriteria<T> andBetween(final boolean toLowerCase, final String attributeName, final Object valueA, final Object valueB) {
uaiCriteria.andBetween(toLowerCase, attributeName, valueA.toString(), valueB.toString());
return this;
}
public EasyCriteria<T> andIsNull(final String attributeName) {
uaiCriteria.andIsNull(attributeName);
return this;
}
public EasyCriteria<T> andIsNotNull(final String attributeName) {
uaiCriteria.andIsNotNull(attributeName);
return this;
}
public EasyCriteria<T> andCollectionIsEmpty(final String collectionName) {
uaiCriteria.andCollectionIsEmpty(collectionName);
return this;
}
public EasyCriteria<T> andCollectionIsNotEmpty(final String collectionName) {
uaiCriteria.andCollectionIsNotEmpty(collectionName);
return this;
}
public EasyCriteria<T> andStringLike(final String attributeName, final String value) {
uaiCriteria.andStringLike(attributeName, value);
return this;
}
public EasyCriteria<T> andStringLike(final boolean toLowerCase, final String attributeName, final String value) {
uaiCriteria.andStringLike(toLowerCase, attributeName, value);
return this;
}
public EasyCriteria<T> andStringNotLike(final String attributeName, final String value) {
uaiCriteria.andStringNotLike(attributeName, value);
return this;
}
public EasyCriteria<T> andStringNotLike(final boolean toLowerCase, final String attributeName, final String value) {
uaiCriteria.andStringNotLike(toLowerCase, attributeName, value);
return this;
}
public EasyCriteria<T> andStringIn(final String attributeName, final List<String> values) {
uaiCriteria.andStringIn(attributeName, values);
return this;
}
public EasyCriteria<T> andStringIn(final boolean toLowerCase, final String attributeName, final List<String> values) {
uaiCriteria.andStringIn(toLowerCase, attributeName, values);
return this;
}
public EasyCriteria<T> andStringNotIn(final String attributeName, final List<String> values) {
uaiCriteria.andStringNotIn(attributeName, values);
return this;
}
public EasyCriteria<T> andStringNotIn(final boolean toLowerCase, final String attributeName, final List<String> values) {
uaiCriteria.andStringNotIn(toLowerCase, attributeName, values);
return this;
}
public EasyCriteria<T> orderByAsc(final String attributeName) {
uaiCriteria.orderByAsc(attributeName);
return this;
}
public EasyCriteria<T> orderByDesc(final String attributeName) {
uaiCriteria.orderByDesc(attributeName);
return this;
}
public EasyCriteria<T> setFirstResult(final Integer firstResult) {
uaiCriteria.setFirstResult(firstResult);
return this;
}
public EasyCriteria<T> setMaxResults(final Integer maxResults) {
uaiCriteria.setMaxResults(maxResults);
return this;
}
public EasyCriteria<T> andJoinEquals(final String joinName, final String attributeName, final Object value) {
uaiCriteria.andEquals(joinName + "." + attributeName, value);
return this;
}
public EasyCriteria<T> andJoinEquals(final boolean toLowerCase, final String joinName, final String attributeName, final Object value) {
uaiCriteria.andEquals(toLowerCase, joinName + "." + attributeName, value.toString());
return this;
}
public EasyCriteria<T> andJoinNotEquals(final String joinName, final String attributeName, final Object value) {
uaiCriteria.andNotEquals(joinName + "." + attributeName, value);
return this;
}
public EasyCriteria<T> andJoinNotEquals(final boolean toLowerCase, final String joinName, final String attributeName, final Object value) {
uaiCriteria.andNotEquals(toLowerCase, joinName + "." + attributeName, value.toString());
return this;
}
public EasyCriteria<T> andJoinGreaterThan(final String joinName, final String attributeName, final Object value) {
uaiCriteria.andGreaterThan(joinName + "." + attributeName, value);
return this;
}
public EasyCriteria<T> andJoinGreaterThan(final boolean toLowerCase, final String joinName, final String attributeName, final Object value) {
uaiCriteria.andGreaterThan(toLowerCase, joinName + "." + attributeName, value.toString());
return this;
}
public EasyCriteria<T> andJoinGreaterOrEqualTo(final String joinName, final String attributeName, final Object value) {
uaiCriteria.andGreaterOrEqualTo(joinName + "." + attributeName, value);
return this;
}
public EasyCriteria<T> andJoinGreaterOrEqualTo(final boolean toLowerCase, final String joinName, final String attributeName, final Object value) {
uaiCriteria.andGreaterOrEqualTo(toLowerCase, joinName + "." + attributeName, value.toString());
return this;
}
public EasyCriteria<T> andJoinLessThan(final String joinName, final String attributeName, final Object value) {
uaiCriteria.andLessThan(joinName + "." + attributeName, value);
return this;
}
public EasyCriteria<T> andJoinLessThan(final boolean toLowerCase, final String joinName, final String attributeName, final Object value) {
uaiCriteria.andLessThan(toLowerCase, joinName + "." + attributeName, value.toString());
return this;
}
public EasyCriteria<T> andJoinLessOrEqualTo(final String joinName, final String attributeName, final Object value) {
uaiCriteria.andLessOrEqualTo(joinName + "." + attributeName, value);
return this;
}
public EasyCriteria<T> andJoinLessOrEqualTo(final boolean toLowerCase, final String joinName, final String attributeName, final Object value) {
uaiCriteria.andLessOrEqualTo(toLowerCase, joinName + "." + attributeName, value.toString());
return this;
}
public EasyCriteria<T> andJoinBetween(final String joinName, final String attributeName, final Object valueA, final Object valueB) {
uaiCriteria.andBetween(joinName + "." + attributeName, valueA, valueB);
return this;
}
public EasyCriteria<T> andJoinBetween(final boolean toLowerCase, final String joinName, final String attributeName, final Object valueA, final Object valueB) {
uaiCriteria.andBetween(toLowerCase, joinName + "." + attributeName, valueA.toString(), valueB.toString());
return this;
}
public EasyCriteria<T> andJoinAttributeIsNull(final String joinName, final String attributeName) {
uaiCriteria.andIsNull(joinName + "." + attributeName);
return this;
}
public EasyCriteria<T> andJoinAttributeIsNotNull(final String joinName, final String attributeName) {
uaiCriteria.andIsNotNull(joinName + "." + attributeName);
return this;
}
public EasyCriteria<T> andJoinListIsEmpty(final String joinName, final String listName) {
uaiCriteria.andCollectionIsEmpty(joinName + "." + listName);
return this;
}
public EasyCriteria<T> andJoinCollectionIsEmpty(final String joinName, final String collectionName) {
uaiCriteria.andCollectionIsEmpty(joinName + "." + collectionName);
return this;
}
public EasyCriteria<T> andJoinCollectionIsNotEmpty(final String joinName, final String collectionName) {
uaiCriteria.andCollectionIsNotEmpty(joinName + "." + collectionName);
return this;
}
public EasyCriteria<T> andJoinStringLike(final String joinName, final String attributeName, final String value) {
uaiCriteria.andStringLike(joinName + "." + attributeName, value);
return this;
}
public EasyCriteria<T> andJoinStringLike(final boolean toLowerCase, final String joinName, final String attributeName, final String value) {
uaiCriteria.andStringLike(toLowerCase, joinName + "." + attributeName, value);
return this;
}
public EasyCriteria<T> andJoinSetIsEmpty(final String joinName, final String setName) {
uaiCriteria.andCollectionIsEmpty(joinName + "." + setName);
return this;
}
public EasyCriteria<T> andJoinListIsNotEmpty(final String joinName, final String listName) {
uaiCriteria.andCollectionIsNotEmpty(joinName + "." + listName);
return this;
}
public EasyCriteria<T> andJoinSetIsNotEmpty(final String joinName, final String setName) {
uaiCriteria.andCollectionIsNotEmpty(joinName + "." + setName);
return this;
}
public EasyCriteria<T> andJoinStringNotLike(final String joinName, final String attributeName, final String value) {
uaiCriteria.andStringNotLike(joinName + "." + attributeName, value);
return this;
}
public EasyCriteria<T> andJoinStringNotLike(final boolean toLowerCase, final String joinName, final String attributeName, final String value) {
uaiCriteria.andStringNotLike(toLowerCase, joinName + "." + attributeName, value);
return this;
}
public EasyCriteria<T> andJoinStringIn(final String joinName, final String attributeName, final List<String> values) {
uaiCriteria.andStringIn(joinName + "." + attributeName, values);
return this;
}
public EasyCriteria<T> andJoinStringIn(final boolean toLowerCase, final String joinName, final String attributeName, final List<String> values) {
uaiCriteria.andStringIn(toLowerCase, joinName + "." + attributeName, values);
return this;
}
public EasyCriteria<T> andJoinStringNotIn(final String joinName, final String attributeName, final List<String> values) {
uaiCriteria.andStringNotIn(joinName + "." + attributeName, values);
return this;
}
public EasyCriteria<T> andJoinStringNotIn(final boolean toLowerCase, final String joinName, final String attributeName, final List<String> values) {
uaiCriteria.andStringNotIn(toLowerCase, joinName + "." + attributeName, values);
return this;
}
public EasyCriteria<T> orEquals(final String attributeName, final Object... values) {
uaiCriteria.orEquals(attributeName, values);
return this;
}
public EasyCriteria<T> orEquals(final boolean toLowerCase, final String attributeName, final Object... values) {
final String[] stringArray = convertToStringArray(values);
uaiCriteria.orEquals(toLowerCase, attributeName, stringArray);
return this;
}
public EasyCriteria<T> orEquals(final int index, final String attributeName, final Object... values) {
uaiCriteria.orEquals(index, attributeName, values);
return this;
}
public EasyCriteria<T> orEquals(final boolean toLowerCase, final int index, final String attributeName, final Object... values) {
final String[] stringArray = convertToStringArray(values);
uaiCriteria.orEquals(toLowerCase, index, attributeName, stringArray);
return this;
}
public EasyCriteria<T> addAndSeparatedByOr(final int index, final String attributeName, final Object value) {
uaiCriteria.addAndSeparatedByOr(index, attributeName, value);
return this;
}
public EasyCriteria<T> addAndSeparatedByOr(final boolean toLowerCase, final int index, final String attributeName, final Object value) {
uaiCriteria.addAndSeparatedByOr(toLowerCase, index, attributeName, value.toString());
return this;
}
public Long count() {
return uaiCriteria.count();
}
public EasyCriteria<T> addHint(final String key, final String value) {
uaiCriteria.addHint(key, value);
return this;
}
}