From 16db0e357ebddfde7fbf29e4517b49c95f3a6114 Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Thu, 31 Jul 2014 09:40:49 +0200 Subject: [PATCH] [New] Added a DataRange parameter selection --- .../model/query/ParameterSelection.java | 32 +++++++++++++++++++ .../query/ParameterSelectionVisitor.java | 4 ++- 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/src/main/java/li/strolch/model/query/ParameterSelection.java b/src/main/java/li/strolch/model/query/ParameterSelection.java index 3ca5b1316..f326ee62a 100644 --- a/src/main/java/li/strolch/model/query/ParameterSelection.java +++ b/src/main/java/li/strolch/model/query/ParameterSelection.java @@ -18,6 +18,8 @@ package li.strolch.model.query; import java.util.Date; import java.util.List; +import ch.eitchnet.utils.dbc.DBC; + /** * @author Robert von Burg */ @@ -92,6 +94,10 @@ public abstract class ParameterSelection implements Selection { return new DateParameterSelection(bagKey, paramKey, value); } + public static DateRangeParameterSelection dateRangeSelection(String bagKey, String paramKey, Date from, Date to) { + return new DateRangeParameterSelection(bagKey, paramKey, from, to); + } + public static StringListParameterSelection stringListSelection(String bagKey, String paramKey, List value) { return new StringListParameterSelection(bagKey, paramKey, value); } @@ -230,6 +236,32 @@ public abstract class ParameterSelection implements Selection { } } + public static class DateRangeParameterSelection extends ParameterSelection { + + private Date from; + private Date to; + + public DateRangeParameterSelection(String bagKey, String paramKey, Date from, Date to) { + super(bagKey, paramKey); + DBC.PRE.assertFalse("Either 'to' or 'from' must be set! Both can not be null!", from == null && to == null); + this.from = from; + this.to = to; + } + + public Date getFrom() { + return this.from; + } + + public Date getTo() { + return this.to; + } + + @Override + public void accept(ParameterSelectionVisitor visitor) { + visitor.visit(this); + } + } + public static class StringListParameterSelection extends ParameterSelection { private List value; diff --git a/src/main/java/li/strolch/model/query/ParameterSelectionVisitor.java b/src/main/java/li/strolch/model/query/ParameterSelectionVisitor.java index b8b767474..e6b5b2e8d 100644 --- a/src/main/java/li/strolch/model/query/ParameterSelectionVisitor.java +++ b/src/main/java/li/strolch/model/query/ParameterSelectionVisitor.java @@ -17,6 +17,7 @@ package li.strolch.model.query; import li.strolch.model.query.ParameterSelection.BooleanParameterSelection; import li.strolch.model.query.ParameterSelection.DateParameterSelection; +import li.strolch.model.query.ParameterSelection.DateRangeParameterSelection; import li.strolch.model.query.ParameterSelection.FloatParameterSelection; import li.strolch.model.query.ParameterSelection.IntegerParameterSelection; import li.strolch.model.query.ParameterSelection.LongParameterSelection; @@ -25,7 +26,6 @@ import li.strolch.model.query.ParameterSelection.StringParameterSelection; /** * @author Robert von Burg - * */ public interface ParameterSelectionVisitor extends QueryVisitor { @@ -40,6 +40,8 @@ public interface ParameterSelectionVisitor extends QueryVisitor { public void visit(FloatParameterSelection selection); public void visit(DateParameterSelection selection); + + public void visit(DateRangeParameterSelection selection); public void visit(StringListParameterSelection selection); }