@Override public StreamsEntry apply(final StreamsEntry original) { if (maybeMetadata.isDefined()) { final HistoryMetadata historyMetadata = maybeMetadata.get(); final String descriptionKey = historyMetadata.getActivityDescriptionKey(); if (!Strings.isNullOrEmpty(descriptionKey) && (!i18nResolver.getRawText(descriptionKey).equals(descriptionKey))) { return new StreamsEntry(StreamsEntry.params(original) .renderer(historyMetadataRendererFactory.newCustomKeyRenderer(original, historyMetadata)), i18nResolver); } else if (!Strings.isNullOrEmpty(historyMetadata.getActivityDescription())) { return new StreamsEntry(StreamsEntry.params(original) .renderer(historyMetadataRendererFactory.newSuffixRenderer(original, historyMetadata.getActivityDescription())), i18nResolver); } } return original; } }
private Supplier<Html> renderAttached(final StreamsEntry entry) { return () -> new Html(i18nResolver.getText("streams.confluence.attached", authorsRenderer.apply(entry.getAuthors()), size(entry.getActivityObjects()))); }
public Html apply(StreamsEntry entry) { Option<Html> objectHtml = activityObjectRenderer.flatMap(render(entry.getActivityObjects())); Option<Html> targetHtml = targetRenderer.flatMap(render(entry.getTarget())); return new Html(getText( key, concat( ImmutableList.of(authorsRenderer.apply(entry.getAuthors())), objectHtml.map(singletonList(Html.class)).getOrElse(ImmutableList.<Html>of()), targetHtml.map(singletonList(Html.class)).getOrElse(ImmutableList.<Html>of())))); }
public boolean apply(StreamsEntry entry) { return any( transform( ActivityObjectTypes.getActivityObjectTypes(entry.getActivityObjects()), Pairs.<ActivityObjectType, ActivityVerb>pairWith(entry.getVerb())), inActivities); } }
public Html renderTitleAsHtml(StreamsEntry entry) { return new Html(i18nResolver.getText("streams.item.jira.title.attached", authorsRenderer.apply(entry.getAuthors()), size(attachments), targetRenderer.apply(entry.getTarget().get()).get())); } }
@Override public Html renderTitleAsHtml(final StreamsEntry entry) { String descriptionKey = historyMetadata.getActivityDescriptionKey(); Html generatorDisplayName = participantRenderer.apply(historyMetadata.getGenerator()); Html causeDisplayName = participantRenderer.apply(historyMetadata.getCause()); final NonEmptyIterable<UserProfile> emptyAuthor = NonEmptyIterables.from(Collections.singleton(new UserProfile.Builder("").build())).get(); return new Html(i18nResolver.getText(descriptionKey, originalEntry.renderTitleAsHtml(), streamsEntryRendererFactory.newAuthorsRenderer().apply(originalEntry.getAuthors()), new StreamsEntry(StreamsEntry.params(originalEntry).authors(emptyAuthor), i18nResolver).renderTitleAsHtml(), generatorDisplayName, causeDisplayName)); }
return some(new StreamsEntry(StreamsEntry.params() .id(uriBuilder.getUri()) .postedDate(new DateTime(changeTimestamp))
public boolean apply(StreamsEntry entry) { return authorPredicate.apply(transform(entry.getAuthors(), getUsername())); } }
public Html apply(StreamsEntry entry) { String key = entry.getTarget().isDefined() ? "streams.title.commented.on" : "streams.title.commented"; return rendererFactory.newTitleRenderer(key).apply(entry); } }
private StreamsEntry.Parameters<HasId, HasPostedDate, HasAlternateLinkUri, HasApplicationType, NeedsRenderer, NeedsVerb, NeedsAuthors> newParams(JiraActivityItem item, URI itemUri, URI baseUri, boolean issueLinked) { final StreamsUriBuilder uriBuilder = new StreamsUriBuilder().setUrl(itemUri.toASCIIString()); if (item.getChangeHistory().isDefined() || item.getComment().isDefined()) { uriBuilder.setTimestamp(item.getDate()); } // The following things are constant across all types of activity return StreamsEntry.params() .id(uriBuilder.getUri()) .postedDate(new DateTime(item.getDate())) .applicationType(JIRA_APPLICATION_TYPE) .alternateLinkUri(itemUri) .baseUri(baseUri) .addLinks(buildLinks(item, issueLinked)); }
@Override public StreamsFeed call() throws Exception { Iterable<StreamsEntry> entries = getCrucibleEntries(request); Iterable<StreamsEntry> sortedEntries = byPostedDate().sortedCopy(entries); return new StreamsFeed(i18nResolver.getText("streams.feed.crucible.title"), take(request.getMaxResults(), sortedEntries), none(String.class)); }
@Override public Html renderTitleAsHtml(StreamsEntry entry) { String key = "streams.item.confluence." + (space.isPersonalSpace() ? personalSpace().key() : space().key()) + "." + entry.getVerb().key(); Function<StreamsEntry, Html> titleRenderer = rendererFactory.newTitleRenderer(key, rendererFactory.newAuthorsRenderer(), some(rendererFactory.newActivityObjectsRenderer(spaceObjectRenderer())), Option.none()); return titleRenderer.apply(entry); }
private Option<StreamsEntry> newEntryForStatus(JiraActivityItem item, URI baseUri, String status, ActivityVerb verb) { Renderer renderer = resolve().equals(verb) ? rendererFactory.newResolvedRenderer(item, baseUri) : rendererFactory.newSystemTransitionRenderer(item, baseUri, verb); return some(new StreamsEntry(helper.newBuilder(item, baseUri). authors(helper.getUserProfiles(baseUri, item)). categories(ImmutableList.of(status)). verb(verb). addActivityObject(helper.buildActivityObject(item.getIssue(), baseUri, item.getDisplaySummary())). renderer(renderer), i18nResolver)); } }
private Function<StreamsEntry, Html> renderTitle(final ContentEntityObject entity) { if (isComment(entity)) { return rendererFactory.newCommentTitleRenderer(); } else { return entry -> { Option<ActivityObjectType> objectType = get(entry.getActivityObjects(), 0).getActivityObjectType(); String key = String.format("streams.item.confluence.%s.%s", objectType.isDefined() ? objectType.get().key() : "unknown", entry.getVerb().key()); return rendererFactory.newTitleRenderer(key).apply(entry); }; } } private Option<String> getPageDiffUri(final URI baseUri,
public Html renderTitleAsHtml(StreamsEntry entry) { if (removed) { return new Html(i18nResolver.getText("streams.item.jira.title.remove.linked", authorsRenderer.apply(entry.getAuthors()), some(aggregatedItem.getActivityItem()).flatMap(issueRenderer).get(), issuesRenderer.apply(aggregatedItem.getRelatedActivityItems().getOrElse( ImmutableList.<JiraActivityItem>of())))); } return new Html(i18nResolver.getText("streams.item.jira.title.linked", authorsRenderer.apply(entry.getAuthors()), size(aggregatedItem.getRelatedActivityItems().getOrElse(ImmutableList.<JiraActivityItem>of())) + 1)); }
public Html apply(StreamsEntry entry) { String key = entry.getTarget().isDefined() ? "streams.title.commented.on" : "streams.title.commented"; return newIssueTitleRenderer(item, key).apply(entry); }
@Override public StreamsFeed call() throws Exception { // COMMIT (aka "push") is the only FishEye verb currently supported if (!inActivities(request).apply(pair(changeset(), push()))) { return buildFeed(ImmutableList.<StreamsEntry>of()); } return buildFeed(take(request.getMaxResults(), mergeSorted(getChangesets(request, Suppliers.forAtomicBoolean(cancelled)), byPostedDate()))); }
private Function<Html, Html> renderAttachedTo(final StreamsEntry entry) { return target -> new Html(i18nResolver.getText("streams.confluence.attached.to", authorsRenderer.apply(entry.getAuthors()), size(entry.getActivityObjects()), target)); }
public StreamsEntry buildStreamsEntry(final URI baseUri, final ActivityItem activityItem) { URI url = URI.create(baseUri.toASCIIString() + activityItem.getUrlPath()); return new StreamsEntry(StreamsEntry.params() .id(url) .postedDate(new DateTime(activityItem.getModified())) .applicationType(CONFLUENCE_APPLICATION_TYPE) .alternateLinkUri(url) .inReplyTo(buildReplyTo(activityItem)) .addLink(buildReplyTo(activityItem), REPLY_TO_LINK_REL, none(String.class)) .addLink(buildIconUrl(activityItem), ICON_LINK_REL, some(i18nResolver.getText("streams.item.confluence.tooltip." + activityItem.getContentType()))) .addLinks(getWatchLink(activityItem)) .addLinks(transform(uriProvider.getContentCssUris(), toLink(CSS_LINK_REL))) .addLinks(transform(uriProvider.getPanelCssUris(), toLink(CSS_LINK_REL))) .addLinks(transform(uriProvider.getIconCssUris(), toLink(CSS_LINK_REL))) .categories(buildCategory(activityItem)) .addActivityObjects(activityItem.getActivityObjects()) .verb(activityItem.getVerb()) .target(activityItem.getTarget()) .renderer(activityItem.getRenderer()) .baseUri(baseUri) .authors(ImmutableNonEmptyList.of(userProfileAccessor.getUserProfile(baseUri, activityItem.getChangedBy()))), i18nResolver); }
public Html apply(StreamsEntry entry) { Option<Html> objectHtml = activityObjectRenderer.flatMap(render(entry.getActivityObjects())); Option<Html> targetHtml = targetRenderer.flatMap(render(entry.getTarget())); return new Html(getText( key, concat( ImmutableList.of(authorsRenderer.apply(entry.getAuthors())), objectHtml.map(singletonList(Html.class)).getOrElse(ImmutableList.<Html>of()), targetHtml.map(singletonList(Html.class)).getOrElse(ImmutableList.<Html>of())))); }