1 package com.atlassian.streams.refapp;
2
3 import com.atlassian.streams.api.ActivityObjectType;
4 import com.atlassian.streams.api.ActivityVerb;
5 import com.atlassian.streams.api.common.Pair;
6 import com.atlassian.streams.spi.ActivityOptions;
7 import com.atlassian.streams.spi.StreamsFilterOption;
8 import com.atlassian.streams.spi.StreamsFilterOptionProvider;
9 import com.atlassian.streams.spi.StreamsI18nResolver;
10 import com.google.common.base.Function;
11 import com.google.common.collect.ImmutableList;
12
13 import static com.atlassian.streams.api.ActivityObjectTypes.article;
14 import static com.atlassian.streams.api.ActivityObjectTypes.comment;
15 import static com.atlassian.streams.api.ActivityObjectTypes.file;
16 import static com.atlassian.streams.api.ActivityObjectTypes.status;
17 import static com.atlassian.streams.api.ActivityVerbs.like;
18 import static com.atlassian.streams.api.ActivityVerbs.post;
19 import static com.atlassian.streams.api.ActivityVerbs.update;
20 import static com.atlassian.streams.api.common.Pair.pair;
21 import static com.google.common.base.Preconditions.checkNotNull;
22 import static com.google.common.collect.ImmutableSet.of;
23 import static com.google.common.collect.Iterables.transform;
24
25 public class RefappFilterOptionProvider implements StreamsFilterOptionProvider {
26 private static final Iterable<Pair<ActivityObjectType, ActivityVerb>> SUPPORT_ACTIVITIES = of(
27 pair(article(), post()),
28 pair(article(), update()),
29 pair(article(), like()),
30 pair(comment(), post()),
31 pair(comment(), update()),
32 pair(comment(), like()),
33 pair(file(), post()),
34 pair(file(), update()),
35 pair(status(), update())
36 );
37
38 private final Function<Pair<ActivityObjectType, ActivityVerb>, ActivityOption> toActivityOption;
39
40 public RefappFilterOptionProvider(final StreamsI18nResolver i18nResolver) {
41 this.toActivityOption = ActivityOptions.toActivityOption(checkNotNull(i18nResolver, "i18nResolver"), "streams.filter.refapp");
42 }
43
44 @Override
45 public Iterable<StreamsFilterOption> getFilterOptions() {
46
47 return ImmutableList.of();
48 }
49
50 @Override
51 public Iterable<StreamsFilterOptionProvider.ActivityOption> getActivities() {
52 return transform(SUPPORT_ACTIVITIES, toActivityOption);
53 }
54 }