/**
* TNTConcept Easy Enterprise Management by Autentia Real Bussiness Solution S.L.
* Copyright (C) 2007 Autentia Real Bussiness Solution S.L.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License.
*
* 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.autentia.tnt.dao.search;
import java.util.ArrayList;
import java.util.Date;
import com.autentia.tnt.businessobject.DocumentCategory;
import com.autentia.tnt.businessobject.User;
import com.autentia.tnt.dao.SearchCriteria;
public class ExternalActivitySearch extends SearchCriteria {
private String name;
private boolean nameSet;
private String category;
private boolean categorySet;
private Date startStartDate;
private boolean startStartDateSet;
private Date endStartDate;
private boolean endStartDateSet;
private Date startEndDate;
private boolean startEndDateSet;
private Date endEndDate;
private boolean endEndDateSet;
private String location;
private boolean locationSet;
private String organizer;
private boolean organizerSet;
private String comments;
private boolean commentsSet;
private DocumentCategory documentCategory;
private boolean documentCategorySet;
private User owner;
private boolean ownerSet;
private Integer departmentId;
private boolean departmentIdSet;
private Date startInsertDate;
private boolean startInsertDateSet;
private Date endInsertDate;
private boolean endInsertDateSet;
private Date startUpdateDate;
private boolean startUpdateDateSet;
private Date endUpdateDate;
private boolean endUpdateDateSet;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
nameSet = true;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
categorySet = true;
}
public Date getStartStartDate() {
return startStartDate;
}
public void setStartStartDate(Date startStartDate) {
this.startStartDate = startStartDate;
startStartDateSet = true;
}
public Date getEndStartDate() {
return endStartDate;
}
public void setEndStartDate(Date endStartDate) {
this.endStartDate = endStartDate;
endStartDateSet = true;
}
public Date getStartEndDate() {
return startEndDate;
}
public void setStartEndDate(Date startEndDate) {
this.startEndDate = startEndDate;
startEndDateSet = true;
}
public Date getEndEndDate() {
return endEndDate;
}
public void setEndEndDate(Date endEndDate) {
this.endEndDate = endEndDate;
endEndDateSet = true;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
locationSet = true;
}
public String getOrganizer() {
return organizer;
}
public void setOrganizer(String organizer) {
this.organizer = organizer;
organizerSet = true;
}
public String getComments() {
return comments;
}
public void setComments(String comments) {
this.comments = comments;
commentsSet = true;
}
public DocumentCategory getDocumentCategory() {
return documentCategory;
}
public void setDocumentCategory(DocumentCategory documentCategory) {
this.documentCategory = documentCategory;
documentCategorySet = true;
}
public User getOwner() {
return owner;
}
public void setOwner(User owner) {
this.owner = owner;
ownerSet = true;
}
public Integer getDepartmentId() {
return departmentId;
}
public void setDepartmentId(Integer departmentId) {
this.departmentId = departmentId;
departmentIdSet = true;
}
public Date getStartInsertDate() {
return startInsertDate;
}
public void setStartInsertDate(Date startInsertDate) {
this.startInsertDate = startInsertDate;
startInsertDateSet = true;
}
public Date getEndInsertDate() {
return endInsertDate;
}
public void setEndInsertDate(Date endInsertDate) {
this.endInsertDate = endInsertDate;
endInsertDateSet = true;
}
public Date getStartUpdateDate() {
return startUpdateDate;
}
public void setStartUpdateDate(Date startUpdateDate) {
this.startUpdateDate = startUpdateDate;
startUpdateDateSet = true;
}
public Date getEndUpdateDate() {
return endUpdateDate;
}
public void setEndUpdateDate(Date endUpdateDate) {
this.endUpdateDate = endUpdateDate;
endUpdateDateSet = true;
}
public boolean isNameSet() {
return nameSet;
}
public boolean isCategorySet() {
return categorySet;
}
public boolean isStartStartDateSet() {
return startStartDateSet;
}
public boolean isEndStartDateSet() {
return endStartDateSet;
}
public boolean isStartEndDateSet() {
return startEndDateSet;
}
public boolean isEndEndDateSet() {
return endEndDateSet;
}
public boolean isLocationSet() {
return locationSet;
}
public boolean isOrganizerSet() {
return organizerSet;
}
public boolean isCommentsSet() {
return commentsSet;
}
public boolean isDocumentCategorySet() {
return documentCategorySet;
}
public boolean isOwnerSet() {
return ownerSet;
}
public boolean isDepartmentIdSet() {
return departmentIdSet;
}
public boolean isStartInsertDateSet() {
return startInsertDateSet;
}
public boolean isEndInsertDateSet() {
return endInsertDateSet;
}
public boolean isStartUpdateDateSet() {
return startUpdateDateSet;
}
public boolean isEndUpdateDateSet() {
return endUpdateDateSet;
}
//Unsetters
public void unsetName() {
this.nameSet = false;
}
public void unsetCategory() {
this.categorySet = false;
}
public void unsetStartStartDate() {
this.startStartDateSet = false;
}
public void unsetEndStartDate() {
this.endStartDateSet = false;
}
public void unsetStartEndDate() {
this.startEndDateSet = false;
}
public void unsetEndEndDate() {
this.endEndDateSet = false;
}
public void unsetLocation() {
this.locationSet = false;
}
public void unsetOrganizer() {
this.organizerSet = false;
}
public void unsetComments() {
this.commentsSet = false;
}
public void unsetDocumentCategory() {
this.documentCategorySet = false;
}
public void unsetOwner() {
this.ownerSet = false;
}
public void unsetDepartmentId() {
this.departmentIdSet = false;
}
public void unsetStartInsertDate() {
this.startInsertDateSet = false;
}
public void unsetEndInsertDate() {
this.endInsertDateSet = false;
}
public void unsetStartUpdateDate() {
this.startUpdateDateSet = false;
}
public void unsetEndUpdateDate() {
this.endUpdateDateSet = false;
}
@Override
public Object[] getArguments() {
ArrayList<Object> ret = new ArrayList<Object>();
if (isNameSet()) {
ret.add(name);
}
if (isCategorySet()) {
ret.add(category);
}
if (isStartStartDateSet()) {
ret.add(startStartDate);
}
if (isEndStartDateSet()) {
ret.add(endStartDate);
}
if (isStartEndDateSet()) {
ret.add(startEndDate);
}
if (isEndEndDateSet()) {
ret.add(endEndDate);
}
if (isLocationSet()) {
ret.add(location);
}
if(isOrganizerSet()) {
ret.add(organizer);
}
if (isCommentsSet()) {
ret.add(comments);
}
if (isDocumentCategorySet()) {
ret.add(documentCategory);
}
if (isOwnerSet()){
ret.add(owner);
}
if (isDepartmentIdSet()) {
ret.add(departmentId);
}
if (isStartInsertDateSet()) {
ret.add(startInsertDate);
}
if (isEndInsertDateSet()) {
ret.add(endInsertDate);
}
if (isStartUpdateDateSet()) {
ret.add(startUpdateDate);
}
if (isEndUpdateDateSet()) {
ret.add(endUpdateDate);
}
return ret.toArray();
}
@Override
public String getHQL() {
// TODO Auto-generated method stub
StringBuilder ret = new StringBuilder();
int iArgNum = 0;
if (isNameSet()) {
ret.append( (ret.length()==0) ? "WHERE " : " AND " );
if (getName() == null) {
ret.append("name is null");
} else {
ret.append("name=:arg"+(iArgNum++));
}
ret.append(name);
}
if (isCategorySet()) {
ret.append( (ret.length()==0) ? "WHERE " : " AND " );
if (getCategory() == null) {
ret.append("category is null");
} else {
ret.append("category=:arg"+(iArgNum++));
}
}
if (isStartStartDateSet()) {
ret.append( (ret.length()==0) ? "WHERE " : " AND " );
if (getStartStartDate() == null) {
ret.append("startDate =:arg"+(iArgNum++));
} else {
ret.append("startDate>=:arg"+(iArgNum++));
}
}
if (isEndStartDateSet()) {
ret.append( (ret.length()==0) ? "WHERE " : " AND " );
if (getEndStartDate() == null) {
ret.append("startDate =:arg"+(iArgNum++));
} else {
ret.append("startDate<=:arg"+(iArgNum++));
}
}
if (isStartEndDateSet()) {
ret.append( (ret.length()==0) ? "WHERE " : " AND " );
if (getStartEndDate() == null) {
ret.append("endDate =:arg"+(iArgNum++));
} else {
ret.append("endDate>=:arg"+(iArgNum++));
}
}
if (isEndEndDateSet()) {
ret.append( (ret.length()==0) ? "WHERE " : " AND " );
if (getEndEndDate() == null) {
ret.append("endDate =:arg"+(iArgNum++));
} else {
ret.append("endDate<=:arg"+(iArgNum++));
}
}
if (isLocationSet()) {
ret.append( (ret.length()==0) ? "WHERE " : " AND " );
if (getLocation() == null) {
ret.append("location is null");
} else {
ret.append("location=:arg"+(iArgNum++));
}
}
if(isOrganizerSet()) {
ret.append( (ret.length()==0) ? "WHERE " : " AND " );
if (getOrganizer() == null) {
ret.append("organizer is null");
} else {
ret.append("organizer=:arg"+(iArgNum++));
}
}
if (isCommentsSet()) {
ret.append( (ret.length()==0) ? "WHERE " : " AND " );
if (getComments() == null) {
ret.append("comments is null");
} else {
ret.append("comments=:arg"+(iArgNum++));
}
}
if (isDocumentCategorySet()) {
ret.append( (ret.length()==0) ? "WHERE " : " AND " );
if (getDocumentCategory() == null) {
ret.append("documentCategory is null");
} else {
ret.append("documentCategory=:arg"+(iArgNum++));
}
}
if (isOwnerSet()){
ret.append( (ret.length()==0) ? "WHERE " : " AND " );
if (getOwner() == null) {
ret.append("owner is null");
} else {
ret.append("owner=:arg"+(iArgNum++));
}
}
if (isDepartmentIdSet()) {
ret.append( (ret.length()==0) ? "WHERE " : " AND " );
if (getDepartmentId() == null) {
ret.append("departmentId is null");
} else {
ret.append("departmentId=:arg"+(iArgNum++));
}
}
if (isStartInsertDateSet()) {
ret.append( (ret.length()==0) ? "WHERE " : " AND " );
if (getStartInsertDate() == null) {
ret.append("insertDate =:arg"+(iArgNum++));
} else {
ret.append("insertDate>=:arg"+(iArgNum++));
}
}
if (isEndInsertDateSet()) {
ret.append( (ret.length()==0) ? "WHERE " : " AND " );
if (getEndInsertDate() == null) {
ret.append("insertDate =:arg"+(iArgNum++));
} else {
ret.append("insertDate<=:arg"+(iArgNum++));
}
}
if (isStartUpdateDateSet()) {
ret.append( (ret.length()==0) ? "WHERE " : " AND " );
if (getStartUpdateDate() == null) {
ret.append("updateDate =:arg"+(iArgNum++));
} else {
ret.append("updateDate>=:arg"+(iArgNum++));
}
}
if (isEndUpdateDateSet()) {
ret.append( (ret.length()==0) ? "WHERE " : " AND " );
if (getEndUpdateDate() == null) {
ret.append("updateDate =:arg"+(iArgNum++));
} else {
ret.append("updateDate<=:arg"+(iArgNum++));
}
}
return ret.toString();
}
@Override
public void reset() {
unsetCategory();
unsetComments();
unsetDepartmentId();
unsetDocumentCategory();
unsetEndEndDate();
unsetEndInsertDate();
unsetEndStartDate();
unsetEndUpdateDate();
unsetLocation();
unsetName();
unsetOrganizer();
unsetOwner();
unsetStartEndDate();
unsetStartInsertDate();
unsetStartStartDate();
unsetStartUpdateDate();
}
@Override
public String toString() {
StringBuilder ret = new StringBuilder();
ret.append("ExternalActivitySearch{");
if (isNameSet()) {
ret.append("(name=");
ret.append(name);
ret.append(")");
}
if (isCategorySet()) {
ret.append("category=");
ret.append(category);
ret.append(")");
}
if (isStartStartDateSet()) {
ret.append("startStartDate=");
ret.append(startStartDate);
ret.append(")");
}
if (isEndStartDateSet()) {
ret.append("(endStartDate=");
ret.append(endStartDate);
ret.append(")");
}
if (isStartEndDateSet()) {
ret.append("(startEndDate=");
ret.append(startEndDate);
ret.append(")");
}
if (isEndEndDateSet()) {
ret.append("(endEndDate=");
ret.append(endEndDate);
ret.append(")");
}
if (isLocationSet()) {
ret.append("(location=");
ret.append(location);
ret.append(")");
}
if(isOrganizerSet()) {
ret.append("(organizer=");
ret.append(organizer);
ret.append(")");
}
if (isCommentsSet()) {
ret.append("(comments=");
ret.append(comments);
ret.append(")");
}
if (isDocumentCategorySet()) {
ret.append("(documentCategory=");
ret.append(documentCategory);
ret.append(")");
}
if (isOwnerSet()){
ret.append("(owner=");
ret.append(owner);
ret.append(")");
}
if (isDepartmentIdSet()) {
ret.append("(departmentId=");
ret.append(departmentId);
ret.append(")");
}
if (isStartInsertDateSet()) {
ret.append("(startInsertDate=");
ret.append(startInsertDate);
ret.append(")");
}
if (isEndInsertDateSet()) {
ret.append("(endInsertDate=");
ret.append(endInsertDate);
ret.append(")");
}
if (isStartUpdateDateSet()) {
ret.append("(startUpdateDate=");
ret.append(startUpdateDate);
ret.append(")");
}
if (isEndUpdateDateSet()) {
ret.append("(endUpdateDate=");
ret.append(endUpdateDate);
ret.append(")");
}
return ret.toString();
}
}