package com.wooki.services.activity.impl; import java.util.List; import com.wooki.domain.dao.ActivityDAO; import com.wooki.domain.model.activity.Activity; import com.wooki.services.activity.ActivitySource; import com.wooki.services.db.QueryFilterService; import com.wooki.services.utils.DateUtils; /** * This source provides all the activities of the co-authors for one user. Co-authors are people * that have book in common with the min user. * * @author ccordenier */ public class CoAuthorActivitySource implements ActivitySource { private final QueryFilterService filterService; private final ActivityDAO activityDao; public CoAuthorActivitySource(QueryFilterService filterService, ActivityDAO activityDao) { super(); this.filterService = filterService; this.activityDao = activityDao; } public List<Activity> listActivities(Long... context) { checkContext(context); return this.activityDao.listCoauthorBookActivity(context[0], filterService .present()); } public List<Activity> listActivitiesForFeed(Long... context) { checkContext(context); return this.activityDao.listCoauthorBookActivity(context[0], filterService .present(), filterService.createAfter(DateUtils.oneMonthAgo())); } public List<Activity> listActivitiesRange(int startIdx, int range, Long... context) { checkContext(context); return this.activityDao.listCoauthorBookActivity(context[0], filterService .present(), filterService.createAfter(DateUtils.oneMonthAgo())); } /** * Simply check context parameters to verify that everything required to create the query is * provided. */ private void checkContext(Long... context) { assert context != null; if (context.length != 1 || context[0] == null) { throw new IllegalArgumentException( "CoAuthorActivitySource lookup methods require the userf id as first and single parameter"); } } }