// // DataPointListenerProvider.java // // Copyright 2013, NextPage Inc. All rights reserved. // package org.kairosdb.core; import com.google.inject.*; import org.kairosdb.core.aggregator.Aggregator; import org.kairosdb.core.aggregator.annotation.AggregatorName; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; public class DataPointListenerProvider implements Provider<List<DataPointListener>> { private List<DataPointListener> m_listeners = new ArrayList<DataPointListener>(); @Inject public DataPointListenerProvider(Injector injector) { Map<Key<?>, Binding<?>> bindings = injector.getAllBindings(); for (Key<?> key : bindings.keySet()) { Class<?> bindingClass = key.getTypeLiteral().getRawType(); if (DataPointListener.class.isAssignableFrom(bindingClass)) { DataPointListener listener = (DataPointListener)injector.getInstance(bindingClass); m_listeners.add(listener); } } } @Override public List<DataPointListener> get() { return (Collections.unmodifiableList(m_listeners)); } }