diff -r 1c999569643b -r acf2c31e22d4 samples/consistency/src-api1.0/api/Lookups.java --- a/samples/consistency/src-api1.0/api/Lookups.java Sat Jun 14 10:04:51 2008 +0200 +++ b/samples/consistency/src-api1.0/api/Lookups.java Sat Jun 14 10:04:53 2008 +0200 @@ -1,6 +1,9 @@ package api; +import java.util.ArrayList; import java.util.Collection; +import java.util.HashSet; +import java.util.List; import java.util.Set; /** Factory to create various types of lookup instances. @@ -12,7 +15,39 @@ private Lookups() { } - public static Lookup fixed(Object... instances) { - return null; + public static Lookup fixed(final Object... instances) { + return new Lookup() { + @Override + public T lookup(Class clazz) { + for (Object obj : instances) { + if (clazz.isInstance(obj)) { + return clazz.cast(obj); + } + } + return null; + } + + @Override + public Collection lookupAll(Class clazz) { + List result = new ArrayList(); + for (Object obj : instances) { + if (clazz.isInstance(obj)) { + result.add(clazz.cast(obj)); + } + } + return result; + } + + @Override + public Set> lookupAllClasses(Class clazz) { + Set> result = new HashSet>(); + for (Object obj : instances) { + if (clazz.isInstance(obj)) { + result.add(obj.getClass().asSubclass(clazz)); + } + } + return result; + } + }; } }