@Override @SuppressWarnings("unchecked") public <S, T> T build(String profile, Class<S> service, Class<T> instanceClass, Map<String, Object> properties) { Factory<T> factory = (Factory<T>) factories.get(instanceClass); if (factory == null) { throw new RuntimeException("Service or property not registered: " + profile + " " + service.getName() + " " + instanceClass); } T instance = factory.create(profile, service, this, properties); Map<Class<?>, List<Alteration<?>>> alterationMap = alterations .get(service); if (alterationMap != null) { List<Alteration<?>> alterationList = alterationMap .get(instanceClass); if (alterationList != null) { for (Alteration<?> alteration : alterationList) { instance = ((Alteration<T>) alteration).alter(profile, instance, this, properties); } } } return instance; }
@Override @SuppressWarnings("unchecked") public <S, T> T build(String profile, Class<S> service, Class<T> instanceClass, Map<String, Object> properties) { Factory<T> factory = (Factory<T>) factories.get(instanceClass); if (factory == null) { throw new RuntimeException("Service or property not registered: " + profile + " " + service.getName() + " " + instanceClass); } T instance = factory.create(profile, service, this, properties); Map<Class<?>, List<Alteration<?>>> alterationMap = alterations .get(service); if (alterationMap != null) { List<Alteration<?>> alterationList = alterationMap .get(instanceClass); if (alterationList != null) { for (Alteration<?> alteration : alterationList) { instance = ((Alteration<T>) alteration).alter(profile, instance, this, properties); } } } return instance; }