diff -r 1c999569643b -r acf2c31e22d4 samples/consistency/src-api2.0/api/Lookups.java --- a/samples/consistency/src-api2.0/api/Lookups.java Sat Jun 14 10:04:51 2008 +0200 +++ b/samples/consistency/src-api2.0/api/Lookups.java Sat Jun 14 10:04:53 2008 +0200 @@ -1,6 +1,8 @@ package api; +import java.util.ArrayList; import java.util.Collection; +import java.util.Iterator; import java.util.Set; /** Factory to create various types of lookup instances. @@ -12,12 +14,30 @@ private Lookups() { } - public static Lookup fixed(Object... instances) { - return null; + public static Lookup fixed(final Object... instances) { + return new Lookup() { + @Override + Iterator doLookup(Class clazz) { + ArrayList result = new ArrayList(); + for (Object obj : instances) { + if (clazz.isInstance(obj)) { + result.add(clazz.cast(obj)); + } + } + return result.iterator(); + } + }; } - public static Lookup dynamic(Dynamic provider) { - return null; + public static Lookup dynamic(final Dynamic provider) { + return new Lookup() { + @Override + Iterator doLookup(Class clazz) { + ArrayList result = new ArrayList(); + provider.computeInstances(clazz, result); + return result.iterator(); + } + }; } public interface Dynamic {