samples/consistency/src-api2.0/api/Lookups.java
changeset 210 acf2c31e22d4
parent 209 1c999569643b
     1.1 --- a/samples/consistency/src-api2.0/api/Lookups.java	Sat Jun 14 10:04:51 2008 +0200
     1.2 +++ b/samples/consistency/src-api2.0/api/Lookups.java	Sat Jun 14 10:04:53 2008 +0200
     1.3 @@ -1,6 +1,8 @@
     1.4  package api;
     1.5  
     1.6 +import java.util.ArrayList;
     1.7  import java.util.Collection;
     1.8 +import java.util.Iterator;
     1.9  import java.util.Set;
    1.10  
    1.11  /** Factory to create various types of lookup instances.
    1.12 @@ -12,12 +14,30 @@
    1.13      private Lookups() {
    1.14      }
    1.15      
    1.16 -    public static Lookup fixed(Object... instances) {
    1.17 -        return null;
    1.18 +    public static Lookup fixed(final Object... instances) {
    1.19 +        return new Lookup() {
    1.20 +            @Override
    1.21 +            <T> Iterator<T> doLookup(Class<T> clazz) {
    1.22 +                ArrayList<T> result = new ArrayList<T>();
    1.23 +                for (Object obj : instances) {
    1.24 +                    if (clazz.isInstance(obj)) {
    1.25 +                        result.add(clazz.cast(obj));
    1.26 +                    }
    1.27 +                }
    1.28 +                return result.iterator();
    1.29 +            }
    1.30 +        };
    1.31      }
    1.32      
    1.33 -    public static Lookup dynamic(Dynamic provider) {
    1.34 -        return null;
    1.35 +    public static Lookup dynamic(final Dynamic provider) {
    1.36 +        return new Lookup() {
    1.37 +            @Override
    1.38 +            <T> Iterator<T> doLookup(Class<T> clazz) {
    1.39 +                ArrayList<T> result = new ArrayList<T>();
    1.40 +                provider.computeInstances(clazz, result);
    1.41 +                return result.iterator();
    1.42 +            }
    1.43 +        };
    1.44      }
    1.45      
    1.46      public interface Dynamic {