package pl.edu.icm.saos.persistence.search.dto; import org.joda.time.DateTime; import org.joda.time.LocalDate; import pl.edu.icm.saos.persistence.common.Generatable; import pl.edu.icm.saos.persistence.model.Judgment; /** * @author pavtel */ public class JudgmentSearchFilter extends DatabaseSearchFilter<Judgment> { private static final long serialVersionUID = 1L; public static class Builder extends DatabaseSearchFilter.Builder<Builder, JudgmentSearchFilter>{ public Builder() { instance = new JudgmentSearchFilter(); } @Override protected Builder self() { return this; } public Builder startDate(LocalDate startDate){ instance.setStartDate(startDate); return this; } public Builder endDate(LocalDate endDate){ instance.setEndDate(endDate); return this; } public Builder sinceModificationDateTime(DateTime modificationDate){ instance.setSinceModificationDate(modificationDate); return this; } public Builder withGenerated(Boolean withGenerated) { instance.setWithGenerated(withGenerated); return this; } @Override public JudgmentSearchFilter filter() { upBy("id"); return instance; } } public static Builder builder(){ return new Builder(); } private LocalDate startDate; private LocalDate endDate; private DateTime sinceModificationDate; private Boolean withGenerated; //------------------------ GETTERS -------------------------- public LocalDate getStartDate() { return startDate; } public LocalDate getEndDate() { return endDate; } public DateTime getSinceModificationDate() { return sinceModificationDate; } /** * Should the generated data be added to judgments, defaults to true. * @see Generatable */ public Boolean isWithGenerated() { return withGenerated; } //------------------------ SETTERS -------------------------- public void setStartDate(LocalDate startDate) { this.startDate = startDate; } public void setEndDate(LocalDate endDate) { this.endDate = endDate; } public void setSinceModificationDate(DateTime sinceModificationDate) { this.sinceModificationDate = sinceModificationDate; } public void setWithGenerated(Boolean withGenerated) { this.withGenerated = withGenerated; } }