View Javadoc
1   package us.codecraft.webmagic.selector;
2   
3   import java.util.ArrayList;
4   import java.util.List;
5   
6   /**
7    * All extractors will do extracting separately, <br>
8    * and the results of extractors will combined as the final result.
9    * @author code4crafter@gmail.com <br>
10   * @since 0.2.0
11   */
12  public class OrSelector implements Selector {
13  
14      private List<Selector> selectors = new ArrayList<Selector>();
15  
16      public OrSelector(Selector... selectors) {
17          for (Selector selector : selectors) {
18              this.selectors.add(selector);
19          }
20      }
21  
22      public OrSelector(List<Selector> selectors) {
23          this.selectors = selectors;
24      }
25  
26      @Override
27      public String select(String text) {
28          for (Selector selector : selectors) {
29              String result = selector.select(text);
30              if (result != null) {
31                  return result;
32              }
33          }
34          return null;
35      }
36  
37      @Override
38      public List<String> selectList(String text) {
39          List<String> results = new ArrayList<String>();
40          for (Selector selector : selectors) {
41              List<String> strings = selector.selectList(text);
42              results.addAll(strings);
43          }
44          return results;
45      }
46  }