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 a user. * * @author ccordenier */ public class UserPublicActivitySource implements ActivitySource { private final ActivityDAO dao; private final QueryFilterService filterService; public UserPublicActivitySource(ActivityDAO dao, QueryFilterService filterService) { super(); this.filterService = filterService; this.dao = dao; } public List<Activity> listActivities(Long... context) { checkContext(context); return dao.listUserPublicActivity(context[0], filterService.present()); } public List<Activity> listActivitiesForFeed(Long... context) { checkContext(context); return dao.listUserPublicActivity( context[0], filterService.present(), filterService.createAfter(DateUtils.oneMonthAgo())); } public List<Activity> listActivitiesRange(int startIdx, int range, Long... context) { checkContext(context); return dao.listUserPublicActivity( context[0], filterService.present(), filterService.range(startIdx, range)); } /** * 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( "UserActivitySource lookup methods require the user id as first and single parameter"); } } }