View Javadoc

1   package com.atlassian.pageobjects.elements;
2   
3   import java.util.Iterator;
4   import java.util.List;
5   
6   import org.openqa.selenium.By;
7   
8   import com.atlassian.pageobjects.elements.timeout.TimeoutType;
9   
10  /**
11   * Iterable of PageElements defined by the criteria given to the constructor.
12   * 
13   * Each call to iterator() returns a fresh list.
14   * @since 2.1
15   */
16  public class PageElementIterableImpl implements Iterable<PageElement>
17  {
18      private final PageElementFinder finder;
19      private final Class<? extends PageElement> fieldType;
20      private final By by;
21      private final TimeoutType timeoutType;
22  
23      public PageElementIterableImpl(PageElementFinder finder, Class<? extends PageElement> fieldType, By by, TimeoutType timeoutType)
24      {
25          super();
26          this.finder = finder;
27          this.fieldType = fieldType;
28          this.by = by;
29          this.timeoutType = timeoutType;
30      }
31  
32      public Iterator<PageElement> iterator()
33      {
34          List<? extends PageElement> pageElements = finder.findAll(by, fieldType, timeoutType);
35          return (Iterator<PageElement>) pageElements.iterator();
36      }
37  }