package proton.inject.listener; import java.lang.annotation.Annotation; import java.util.ArrayList; import java.util.List; import proton.inject.Injector; public class ProviderListeners { private List<ProviderListener> mListeners = new ArrayList<ProviderListener>(); public void register(ProviderListener listener) { synchronized (this) { mListeners.add(listener); } } public void call(Injector injector, Object obj, Class<? extends Annotation> scope) { ProviderListener[] listeners; synchronized (this) { listeners = mListeners.toArray(new ProviderListener[mListeners.size()]); } for (ProviderListener listener : listeners) listener.onCreateInstance(injector, obj, scope); } }