package org.infinispan.notifications.cachelistener.cluster;
import org.infinispan.Cache;
import org.infinispan.factories.AbstractNamedCacheComponentFactory;
import org.infinispan.factories.AutoInstantiableFactory;
import org.infinispan.factories.annotations.DefaultFactoryFor;
import org.infinispan.factories.annotations.Inject;
import org.infinispan.notifications.cachelistener.cluster.impl.BatchingClusterEventManagerImpl;
/**
* Constructs the data container
*
* @author William Burns
* @since 7.1
*/
@DefaultFactoryFor(classes = ClusterEventManager.class)
public class ClusterEventManagerFactory extends AbstractNamedCacheComponentFactory implements
AutoInstantiableFactory {
public Cache<?, ?> cache;
@Inject
public void injectCache(Cache<?, ?> cache) {
this.cache = cache;
}
@Override
@SuppressWarnings("unchecked")
public <T> T construct(Class<T> componentType) {
return (T) new BatchingClusterEventManagerImpl(cache);
}
}