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); }
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)); }