| 
 1 | 
  
 |  | 
| 
 2 | 
  
 |  | 
| 
 3 | 
  
 |  | 
| 
 4 | 
  
 |  | 
| 
 5 | 
  
 |  | 
| 
 6 | 
  
 |  | 
| 
 7 | 
  
 |  | 
| 
 8 | 
  
 |  | 
| 
 9 | 
  
 |  | 
| 
 10 | 
  
 |  | 
| 
 11 | 
  
 |  | 
| 
 12 | 
  
 |  | 
| 
 13 | 
  
 |  | 
| 
 14 | 
  
 |  | 
| 
 15 | 
  
 |  | 
| 
 16 | 
  
 |  | 
| 
 17 | 
  
 |  | 
| 
 18 | 
  
 | package javax.mail.search; | 
| 
 19 | 
  
 |  | 
| 
 20 | 
  
 | import java.util.Arrays; | 
| 
 21 | 
  
 | import javax.mail.Message; | 
| 
 22 | 
  
 |  | 
| 
 23 | 
  
 |  | 
| 
 24 | 
  
 |  | 
| 
 25 | 
  
 |  | 
| 
 26 | 
  
 | public final class OrTerm extends SearchTerm { | 
| 
 27 | 
  
 |     protected SearchTerm[] terms; | 
| 
 28 | 
  
 |  | 
| 
 29 | 
 0
 |     public OrTerm(SearchTerm a, SearchTerm b) {
 | 
| 
 30 | 
 0
 |         terms = new SearchTerm[]{a, b};
 | 
| 
 31 | 
  
 |     } | 
| 
 32 | 
  
 |  | 
| 
 33 | 
 0
 |     public OrTerm(SearchTerm[] terms) {
 | 
| 
 34 | 
 0
 |         this.terms = terms;
 | 
| 
 35 | 
  
 |     } | 
| 
 36 | 
  
 |  | 
| 
 37 | 
 0
 |     public SearchTerm[] getTerms() {
 | 
| 
 38 | 
 0
 |         return terms;
 | 
| 
 39 | 
  
 |     } | 
| 
 40 | 
  
 |  | 
| 
 41 | 
 0
 |     public boolean match(Message message) {
 | 
| 
 42 | 
 0
 |         for (int i = 0; i < terms.length; i++) {
 | 
| 
 43 | 
 0
 |             SearchTerm term = terms[i];
 | 
| 
 44 | 
 0
 |             if (term.match(message)) {
 | 
| 
 45 | 
 0
 |                 return true;
 | 
| 
 46 | 
  
 |             } | 
| 
 47 | 
  
 |         } | 
| 
 48 | 
 0
 |         return false;
 | 
| 
 49 | 
  
 |     } | 
| 
 50 | 
  
 |  | 
| 
 51 | 
 0
 |     public boolean equals(Object other) {
 | 
| 
 52 | 
 0
 |         if (other == this) return true;
 | 
| 
 53 | 
 0
 |         if (other instanceof OrTerm == false) return false;
 | 
| 
 54 | 
 0
 |         return Arrays.equals(terms, ((OrTerm) other).terms);
 | 
| 
 55 | 
  
 |     } | 
| 
 56 | 
  
 |  | 
| 
 57 | 
 0
 |     public int hashCode() {
 | 
| 
 58 | 
 0
 |         int hash = 0;
 | 
| 
 59 | 
 0
 |         for (int i = 0; i < terms.length; i++) {
 | 
| 
 60 | 
 0
 |             hash = hash * 37 + terms[i].hashCode();
 | 
| 
 61 | 
  
 |         } | 
| 
 62 | 
 0
 |         return hash;
 | 
| 
 63 | 
  
 |     } | 
| 
 64 | 
  
 | } |