1 package com.atlassian.pageobjects.elements.query;
2
3 import org.hamcrest.StringDescription;
4
5 import static com.google.common.base.Preconditions.checkArgument;
6 import static com.google.common.base.Preconditions.checkNotNull;
7
8
9
10
11
12 public class AbstractPollingQuery implements PollingQuery
13 {
14 protected final long interval;
15 protected final long defaultTimeout;
16
17 protected AbstractPollingQuery(long interval, long defaultTimeout)
18 {
19 checkArgument(interval > 0, new StringDescription().appendText("interval is ").appendValue(interval)
20 .appendText(" should be > 0").toString());
21 checkArgument(defaultTimeout > 0, new StringDescription().appendText("defaultTimeout is ").appendValue(defaultTimeout)
22 .appendText(" should be > 0").toString());
23 checkArgument(defaultTimeout > interval, new StringDescription().appendText("defaultTimeout is ").appendValue(defaultTimeout)
24 .appendText("interval is ").appendValue(interval).appendText(" defaultTimeout should be > interval").toString());
25 this.interval = interval;
26 this.defaultTimeout = defaultTimeout;
27 }
28
29 protected AbstractPollingQuery(PollingQuery other)
30 {
31 this(checkNotNull(other, "other").interval(), other.defaultTimeout());
32 }
33
34 public long interval()
35 {
36 return interval;
37 }
38
39 public long defaultTimeout()
40 {
41 return defaultTimeout;
42 }
43 }