samples/componentinjection/anagram-modular/src-app-register-general/org/apidesign/anagram/app/registergeneral/Registry.java
Updating to NBMs from NetBeans 8.0.1 as some of them are required to run on JDK8
1 package org.apidesign.anagram.app.registergeneral;
3 import java.util.LinkedHashMap;
6 public final class Registry {
11 // BEGIN: anagram.registry
12 private static Map<Class<?>,Object[]> instances =
13 new LinkedHashMap<Class<?>,Object[]>();
14 public static void registerClass(Class<?> impl) {
15 instances.put(impl, new Object[1]);
18 public static <T> T find(Class<T> whatType) {
19 for (Map.Entry<Class<?>, Object[]> entry : instances.entrySet()) {
20 if (whatType.isAssignableFrom(entry.getKey())) {
21 if (entry.getValue()[0] == null) {
23 entry.getValue()[0] = entry.getKey().newInstance();
24 } catch (Exception ex) {
25 throw new IllegalStateException(ex);
28 return whatType.cast(entry.getValue()[0]);
33 // END: anagram.registry