private static boolean providerFilterExists(ActivityRequest request, String filterKey) { return filterExists(request.getProviderFilters(), filterKey); }
public boolean apply(final ChangesetDataFE changeset) { if (changeset == null) { return false; } return all(request.getProviderFilters().get(FishEyeFilterOptionProvider.BRANCH), new Predicate<Pair<Operator, Iterable<String>>>() { @Override public boolean apply(Pair<Operator, Iterable<String>> filter) { SetView<String> intersection = intersection(changeset.getBranches(), ImmutableSet.copyOf(filter.second())); if (Operator.IS.equals(filter.first())) { // we are looking for an intersection return !intersection.isEmpty(); } if (Operator.NOT.equals(filter.first())) { // we are looking for NO intersection return intersection.isEmpty(); } // the only operators we should really see are IS and NOT, but this is a // fail-safe return false; } }); } };
/** * Creates a {@code Predicate} to determine if an {@code ActivityObjectType}/{@code ActivityVerb} pair * matches the activity filters from the request. If the request does not contain any activity filters, the returned * {@code Predicate} will return {@code true} for every combination. * * @param request request to generate the activity predicate from * @return {@code Predicate} to determine if a activity matches the filters from the request */ public static Predicate<Option<Pair<ActivityObjectType, ActivityVerb>>> inOptionActivities(ActivityRequest request) { if (!providerFilterExists(request, ACTIVITY_KEY)) { return alwaysTrue(); } return new InOptionActivities(request.getProviderFilters().get(ACTIVITY_KEY)); }
/** * Creates a {@code Predicate} to determine if a {@code StreamsEntry}'s object-type/verb matches the activity * filters from the request. If the request does not contain any activity filters, the returned {@code Predicate} * will return {@code true} for every activity combination. * * @param request request to generate the activity predicate from * @return {@code Predicate} to determine if a activity matches the filters from the request */ public static Predicate<StreamsEntry> entriesInActivities(ActivityRequest request) { if (!providerFilterExists(request, ACTIVITY_KEY)) { return alwaysTrue(); } return new EntriesInActivities(request.getProviderFilters().get(ACTIVITY_KEY)); }
static Clause filterByIssueType(final ActivityRequest request) { return filterBy(request.getProviderFilters().get(ISSUE_TYPE), toIssueTypeClause()); }
static Clause filterByProjectCategory(final ActivityRequest request) { return filterBy(request.getProviderFilters().get(PROJECT_CATEGORY), toProjectCategoryClause()); }
/** * Creates a {@code Predicate} to determine if an {@code ActivityObjectType}/{@code ActivityVerb} pair matches the * activity filters from the request. If the request does not contain any activity filters, the returned * {@code Predicate} will return {@code true} for every combination. * * @param request request to generate the activity predicate from * @return {@code Predicate} to determine if a activity matches the filters from the request */ public static Predicate<Pair<ActivityObjectType, ActivityVerb>> inActivities(ActivityRequest request) { if (!providerFilterExists(request, ACTIVITY_KEY)) { return alwaysTrue(); } return new InActivities(request.getProviderFilters().get(ACTIVITY_KEY)); }
public boolean apply(Issue issue) { return issue != null && isAndNot(request.getProviderFilters().get(ISSUE_TYPE)).apply(issue.getIssueTypeObject().getId()); } };
@Override public boolean apply(final Issue issue) { if (issue == null) { return false; } ProjectCategory projectCategoryObject = issue.getProjectObject().getProjectCategoryObject(); // A non-categorized projects should be checked with this filter. That why null should be passed to be handled by the filter. final String categoryId = projectCategoryObject != null ? String.valueOf(projectCategoryObject.getId()) : null; return isAndNot(request.getProviderFilters().get(PROJECT_CATEGORY)).apply(categoryId); } }
/** * Creates a {@code Predicate} to apply the filter by network of "followed users". * * @param request request to generate the predicate from * @param username the user requesting the Activity Stream, as returned by {@link UserManager#getRemoteUsername()} * @return {@code Predicate} to determine if a user matches the filter of the request */ public Predicate<String> getFollowedUsersPredicate(ActivityRequest request, String username) { Collection<Pair<StreamsFilterType.Operator, Iterable<String>>> networkFilters = request.getProviderFilters().get(ConfluenceFilterOptionProvider.NETWORK_FILTER); if (networkFilters.isEmpty()) { return alwaysTrue(); } User user = userAccessor.getUser(username); List<String> followedUsers = followManager.getFollowing(user); if (!getIsValues(networkFilters).isEmpty()) { // Return a predicate on followed users return in(followedUsers); } if (!getNotValues(networkFilters).isEmpty()) { // Return a predicate on followed users return not(in(followedUsers)); } return alwaysTrue(); }