![JAR search and dependency download from the Maven repository](/logo.png)
com.qmetric.feed.consumer.FeedConsumerImpl Maven / Gradle / Ivy
package com.qmetric.feed.consumer;
import com.google.common.base.Optional;
import com.qmetric.feed.consumer.store.ConsumedStore;
import com.theoryinpractise.halbuilder.api.ReadableRepresentation;
import java.util.Collection;
import java.util.List;
public class FeedConsumerImpl implements FeedConsumer
{
private final FeedEndpoint endpoint;
private final UnconsumedFeedEntriesFinder finder;
private final EntryConsumer entryConsumer;
private final Collection listeners;
public FeedConsumerImpl(final String feedUrl, final FeedEndpointFactory endpointFactory, final EntryConsumer entryConsumer, final ConsumedStore consumedStore,
final Optional earliestEntryLimit, final Collection listeners)
{
this.entryConsumer = entryConsumer;
this.listeners = listeners;
this.endpoint = endpointFactory.create(feedUrl);
this.finder = new UnconsumedFeedEntriesFinder(endpointFactory, consumedStore, earliestEntryLimit);
}
@Override
public List consume() throws Exception
{
final List entries = finder.findUnconsumed(endpoint);
for (final ReadableRepresentation feedEntry : entries)
{
entryConsumer.consume(feedEntry);
}
notifyAllListeners(entries);
return entries;
}
private void notifyAllListeners(final List consumedEntries)
{
for (final FeedPollingListener listener : listeners)
{
listener.consumed(consumedEntries);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy