View Javadoc

1   package com.atlassian.webdriver.waiter.webdriver;
2   
3   import com.atlassian.annotations.ExperimentalApi;
4   import com.atlassian.webdriver.waiter.webdriver.function.ConditionFunction;
5   import com.atlassian.webdriver.waiter.ExecutableWaiterQuery;
6   import com.atlassian.webdriver.waiter.FunctionQuery;
7   import com.atlassian.webdriver.waiter.Query;
8   import com.atlassian.webdriver.waiter.webdriver.function.NotFunction;
9   
10  /**
11   *
12   * <strong>WARNING</strong>: This API is still experimental and may be changed between versions.
13   *
14   * @since 2.1.0
15   */
16  @ExperimentalApi
17  class WebDriverFunctionQuery implements FunctionQuery
18  {
19      private final WebDriverQueryBuilder builder;
20      private final ConditionFunction func;
21  
22      public WebDriverFunctionQuery(WebDriverQueryBuilder builder, ConditionFunction func)
23      {
24          this.builder = builder;
25          this.func = func;
26      }
27  
28      public ExecutableWaiterQuery isTrue()
29      {
30          builder.add(new Query()
31          {
32              @Override
33              public ConditionFunction build()
34              {
35                  return func;
36              }
37          });
38          return new WebDriverWaiterQuery.WebDriverExecutableWaiterQuery(builder);
39      }
40  
41      public ExecutableWaiterQuery isFalse()
42      {
43          builder.add(new Query()
44          {
45              @Override
46              public ConditionFunction build()
47              {
48                  return new NotFunction(func);
49              }
50          });
51          return new WebDriverWaiterQuery.WebDriverExecutableWaiterQuery(builder);
52      }
53  
54  }