in streams-contrib/streams-provider-facebook/src/main/java/org/apache/streams/facebook/provider/pagefeed/FacebookPageFeedDataCollector.java [54:92]
protected void getData(IdConfig id) throws Exception {
boolean exit = false;
ResponseList<Post> facebookPosts = getPosts(id.getId());
LOGGER.debug("Post received : {}", facebookPosts.size());
backOff.reset();
do {
for (Post post : facebookPosts) {
if (id.getBeforeDate() != null && id.getAfterDate() != null) {
if (id.getBeforeDate().isAfter(post.getCreatedTime().getTime())
&& id.getAfterDate().isBefore(post.getCreatedTime().getTime())) {
super.outputData(MAPPER.readValue(DataObjectFactory.getRawJSON(post), org.apache.streams.facebook.Post.class), post.getId());
}
} else if (id.getBeforeDate() != null && id.getBeforeDate().isAfter(post.getCreatedTime().getTime())) {
super.outputData(MAPPER.readValue(DataObjectFactory.getRawJSON(post), org.apache.streams.facebook.Post.class), post.getId());
} else if (id.getAfterDate() != null && id.getAfterDate().isBefore(post.getCreatedTime().getTime())) {
super.outputData(MAPPER.readValue(DataObjectFactory.getRawJSON(post), org.apache.streams.facebook.Post.class), post.getId());
} else if (id.getBeforeDate() == null && id.getAfterDate() == null) {
super.outputData(MAPPER.readValue(DataObjectFactory.getRawJSON(post), org.apache.streams.facebook.Post.class), post.getId());
} else {
exit = true;
LOGGER.debug("Breaking on post, {}, with createdAtDate {}", post.getId(), post.getCreatedTime());
break;
}
}
if (facebookPosts.getPaging() != null && !exit) {
LOGGER.debug("Paging. . .");
facebookPosts = getPosts(facebookPosts.getPaging());
backOff.reset();
LOGGER.debug("Paging received {} posts*", facebookPosts.size());
} else {
LOGGER.debug("No more paging.");
facebookPosts = null;
}
}
while (facebookPosts != null && facebookPosts.size() != 0);
}