3 import java.util.ArrayList;
4 import java.util.Collection;
5 import java.util.Iterator;
8 /** Factory to create various types of lookup instances.
10 * @author Jaroslav Tulach <jtulach@netbeans.org>
13 public final class Lookups {
17 public static Lookup fixed(final Object... instances) {
20 <T> Iterator<T> doLookup(Class<T> clazz) {
21 ArrayList<T> result = new ArrayList<T>();
22 for (Object obj : instances) {
23 if (clazz.isInstance(obj)) {
24 result.add(clazz.cast(obj));
27 return result.iterator();
32 public static Lookup dynamic(final Dynamic provider) {
35 <T> Iterator<T> doLookup(Class<T> clazz) {
36 ArrayList<T> result = new ArrayList<T>();
37 provider.computeInstances(clazz, result);
38 return result.iterator();
43 public interface Dynamic {
44 public <T> void computeInstances(Class<T> requestedType, Collection<? super T> addInstancesTo);