1 19 20 package org.openidex.search; 21 22 import java.util.ArrayList ; 23 import java.util.Iterator ; 24 import java.util.List ; 25 26 30 class CompoundSearchInfo implements SearchInfo { 31 32 33 private final SearchInfo[] elements; 34 35 42 CompoundSearchInfo(SearchInfo[] elements) { 43 if (elements == null) { 44 throw new IllegalArgumentException (); 45 } 46 47 this.elements = elements.length != 0 ? elements 48 : null; 49 } 50 51 53 public boolean canSearch() { 54 for (int i = 0; i < elements.length; i++) { 55 if (elements[i].canSearch()) { 56 return true; 57 } 58 } 59 return false; 60 } 61 62 64 public Iterator objectsToSearch() { 65 List searchableElements = new ArrayList (elements.length); 66 for (int i = 0; i < elements.length; i++) { 67 if (elements[i].canSearch()) { 68 searchableElements.add(elements[i]); 69 } 70 } 71 return new CompoundSearchIterator( 72 (SearchInfo[]) 73 searchableElements.toArray( 74 new SearchInfo[searchableElements.size()])); 75 } 76 77 } 78 | Popular Tags |