1   package com.atlassian.pageobjects.elements.query;
2   
3   import static com.atlassian.pageobjects.elements.util.StringConcat.asString;
4   
5   
6   /**
7    * A {@link TimedQuery} that always immediately returns a pre-defined static value.
8    *
9    */
10  public final class StaticQuery<T> extends AbstractTimedQuery<T> implements TimedQuery<T>
11  {
12      private final T value;
13  
14      public StaticQuery(T value, long defTimeout, long interval)
15      {
16          super(defTimeout, interval, ExpirationHandler.RETURN_CURRENT);
17          this.value = value;
18      }
19  
20      @Override
21      protected boolean shouldReturn(T currentEval)
22      {
23          return true;
24      }
25  
26      @Override
27      protected T currentValue()
28      {
29          return value;
30      }
31  
32      @Override
33      public String toString()
34      {
35          return asString(super.toString(), "[value=", value, "]");
36      }
37  }