package org.kairosdb.datastore.cassandra;
import com.google.inject.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
/**
Created by bhawkins on 11/7/14.
*/
public class RowKeyListenerProvider implements Provider<List<RowKeyListener>>
{
private List<RowKeyListener> m_listeners = new ArrayList<RowKeyListener>();
@Inject
public RowKeyListenerProvider(Injector injector)
{
Map<Key<?>, Binding<?>> bindings = injector.getAllBindings();
for (Key<?> key : bindings.keySet())
{
Class<?> bindingClass = key.getTypeLiteral().getRawType();
if (RowKeyListener.class.isAssignableFrom(bindingClass))
{
RowKeyListener listener = (RowKeyListener) injector.getInstance(bindingClass);
m_listeners.add(listener);
}
}
}
@Override
public List<RowKeyListener> get()
{
return (Collections.unmodifiableList(m_listeners));
}
}