/* This file is part of Cyclos (www.cyclos.org). A project of the Social Trade Organisation (www.socialtrade.org). Cyclos 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 2 of the License, or (at your option) any later version. Cyclos 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 Cyclos; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ package nl.strohalm.cyclos.webservices.ads; import java.math.BigDecimal; import java.util.Calendar; import java.util.List; import javax.xml.bind.annotation.XmlType; import nl.strohalm.cyclos.webservices.model.FieldValueVO; import nl.strohalm.cyclos.webservices.model.SearchParameters; import nl.strohalm.cyclos.webservices.model.TimePeriodVO; import nl.strohalm.cyclos.webservices.utils.ObjectHelper; /** * Base class for parameters for searching ads via web services * @author luis */ public abstract class AbstractAdSearchParameters extends SearchParameters { @XmlType(name = "status") public static enum AdVOStatus { ACTIVE, PERMANENT, SCHEDULED, EXPIRED; } /** * Trade types for searching * @author luis */ @XmlType(name = "tradeType") public static enum AdVOTradeType { OFFER, SEARCH, BOTH; } private static final long serialVersionUID = 573855204760203137L; private String keywords; private BigDecimal initialPrice; private BigDecimal finalPrice; private List<FieldValueVO> adFields; private Long memberId; private List<FieldValueVO> memberFields; private List<Long> memberGroupIds; private List<Long> memberGroupFilterIds; private Long categoryId; private TimePeriodVO since; private Calendar beginDate; private Calendar endDate; private AdVOTradeType tradeType; private AdVOStatus status; private Boolean withImagesOnly = false; private Boolean showAdFields = false; private Boolean showMemberFields = false; public List<FieldValueVO> getAdFields() { return adFields; } public Calendar getBeginDate() { return beginDate; } public Long getCategoryId() { return categoryId; } public Calendar getEndDate() { return endDate; } public BigDecimal getFinalPrice() { return finalPrice; } public BigDecimal getInitialPrice() { return initialPrice; } public String getKeywords() { return keywords; } public List<FieldValueVO> getMemberFields() { return memberFields; } public List<Long> getMemberGroupFilterIds() { return memberGroupFilterIds; } public List<Long> getMemberGroupIds() { return memberGroupIds; } public Long getMemberId() { return memberId; } public boolean getShowAdFields() { return ObjectHelper.valueOf(showAdFields); } public boolean getShowMemberFields() { return ObjectHelper.valueOf(showMemberFields); } public TimePeriodVO getSince() { return since; } public AdVOStatus getStatus() { return status; } public AdVOTradeType getTradeType() { return tradeType; } public boolean getWithImagesOnly() { return ObjectHelper.valueOf(withImagesOnly); } public void setAdFields(final List<FieldValueVO> adFields) { this.adFields = adFields; } public void setBeginDate(final Calendar beginDate) { this.beginDate = beginDate; } public void setCategoryId(final Long categoryId) { if (categoryId != null && categoryId > 0) { this.categoryId = categoryId; } } public void setEndDate(final Calendar endDate) { this.endDate = endDate; } public void setFinalPrice(final BigDecimal finalPrice) { if (finalPrice != null && finalPrice.compareTo(new BigDecimal(0)) == 1) { this.finalPrice = finalPrice; } } public void setInitialPrice(final BigDecimal initialPrice) { if (initialPrice != null && initialPrice.compareTo(new BigDecimal(0)) == 1) { this.initialPrice = initialPrice; } } public void setKeywords(final String keywords) { this.keywords = keywords; } public void setMemberFields(final List<FieldValueVO> memberFields) { this.memberFields = memberFields; } public void setMemberGroupFilterIds(final List<Long> memberGroupFilterIds) { this.memberGroupFilterIds = memberGroupFilterIds; } public void setMemberGroupIds(final List<Long> memberGroupIds) { this.memberGroupIds = memberGroupIds; } public void setMemberId(final Long memberId) { this.memberId = memberId; } public void setShowAdFields(final boolean showAdFields) { this.showAdFields = showAdFields; } public void setShowMemberFields(final boolean showMemberFields) { this.showMemberFields = showMemberFields; } public void setSince(final TimePeriodVO since) { this.since = since; } public void setStatus(final AdVOStatus status) { this.status = status; } public void setTradeType(final AdVOTradeType tradeType) { this.tradeType = tradeType; } public void setWithImagesOnly(final boolean withImagesOnly) { this.withImagesOnly = withImagesOnly; } @Override public String toString() { return "AbstractAdSearchParameters [adFields=" + adFields + ", categoryId=" + categoryId + ", finalPrice=" + finalPrice + ", initialPrice=" + initialPrice + ", keywords=" + keywords + ", memberFields=" + memberFields + ", memberGroupIds=" + memberGroupIds + ", memberGroupFilterIds=" + memberGroupFilterIds + ", memberId=" + memberId + ", showAdFields=" + showAdFields + ", showMemberFields=" + showMemberFields + ", since=" + since + ", tradeType=" + tradeType + ", withImagesOnly=" + withImagesOnly + ", " + super.toString() + "]"; } }