package fr.keemto.provider.social;
import fr.keemto.core.fetching.Fetcher;
import org.springframework.social.connect.Connection;
import java.util.ArrayList;
import java.util.List;
public abstract class ConnectionFetcher<A, D> implements Fetcher<Connection<A>> {
private long delay;
public ConnectionFetcher(long delay) {
super();
this.delay = delay;
}
@Override
public List<EventData> fetch(Connection<A> connection, long lastFetchedEventTime) {
List<EventData> events = new ArrayList<EventData>();
A api = connection.getApi();
List<D> fetchedDatas = fetchApi(api, lastFetchedEventTime);
for (D data : fetchedDatas) {
EventData eventData = convertDataToEvent(data);
events.add(eventData);
}
return events;
}
protected abstract List<D> fetchApi(A api, long lastFetchedEventTime);
protected abstract EventData convertDataToEvent(D data);
}