1.1 --- a/samples/consistency/src-api1.0/api/Lookups.java Sat Jun 14 10:04:51 2008 +0200
1.2 +++ b/samples/consistency/src-api1.0/api/Lookups.java Sat Jun 14 10:04:53 2008 +0200
1.3 @@ -1,6 +1,9 @@
1.4 package api;
1.5
1.6 +import java.util.ArrayList;
1.7 import java.util.Collection;
1.8 +import java.util.HashSet;
1.9 +import java.util.List;
1.10 import java.util.Set;
1.11
1.12 /** Factory to create various types of lookup instances.
1.13 @@ -12,7 +15,39 @@
1.14 private Lookups() {
1.15 }
1.16
1.17 - public static Lookup fixed(Object... instances) {
1.18 - return null;
1.19 + public static Lookup fixed(final Object... instances) {
1.20 + return new Lookup() {
1.21 + @Override
1.22 + public <T> T lookup(Class<T> clazz) {
1.23 + for (Object obj : instances) {
1.24 + if (clazz.isInstance(obj)) {
1.25 + return clazz.cast(obj);
1.26 + }
1.27 + }
1.28 + return null;
1.29 + }
1.30 +
1.31 + @Override
1.32 + public <T> Collection<? extends T> lookupAll(Class<T> clazz) {
1.33 + List<T> result = new ArrayList<T>();
1.34 + for (Object obj : instances) {
1.35 + if (clazz.isInstance(obj)) {
1.36 + result.add(clazz.cast(obj));
1.37 + }
1.38 + }
1.39 + return result;
1.40 + }
1.41 +
1.42 + @Override
1.43 + public <T> Set<Class<? extends T>> lookupAllClasses(Class<T> clazz) {
1.44 + Set<Class<? extends T>> result = new HashSet<Class<? extends T>>();
1.45 + for (Object obj : instances) {
1.46 + if (clazz.isInstance(obj)) {
1.47 + result.add(obj.getClass().asSubclass(clazz));
1.48 + }
1.49 + }
1.50 + return result;
1.51 + }
1.52 + };
1.53 }
1.54 }