/** * * @return null if the input is null */ public static WatchersJsonBean fullBean(final String issueKey, final long watchers, final boolean isWatching, Collection<ApplicationUser> watcherrs, final JiraBaseUrls urls, final ApplicationUser loggedInUser, final EmailFormatter emailFormatter) { final WatchersJsonBean bean = shortBean(issueKey, watchers, isWatching, urls); Collection<UserJsonBean> result = Lists.newArrayListWithCapacity(watcherrs.size()); final TimeZoneManager timeZoneManager = ComponentAccessor.getComponent(TimeZoneManager.class); final UserBeanFactory userBeanFactory = ComponentAccessor.getComponent(UserBeanFactory.class); for (ApplicationUser from : watcherrs) { result.add(userBeanFactory.createBean(from, loggedInUser, urls, emailFormatter, timeZoneManager)); } bean.watchers = result; return bean; }
/** * * @return null if the input is null */ public static WatchersJsonBean shortBean(final String issueKey, final long watchers, final boolean isWatching, final JiraBaseUrls urls) { final WatchersJsonBean bean = new WatchersJsonBean(); bean.self = urls.restApi2BaseUrl() + "issue/" + issueKey + "/watchers"; bean.watching = isWatching; bean.watchCount = watchers; return bean; }
/** * * @return null if the input is null * @deprecated Use {@link #fullBean(String, long, boolean, java.util.Collection, JiraBaseUrls, com.atlassian.jira.user.ApplicationUser, com.atlassian.jira.util.EmailFormatter)} */ @Deprecated public static WatchersJsonBean fullBean(final String issueKey, final long watchers, final boolean isWatching, Collection<ApplicationUser> watcherrs, final JiraBaseUrls urls) { return fullBean(issueKey, watchers, isWatching, watcherrs, urls, ComponentAccessor.getComponent(JiraAuthenticationContext.class).getUser(), ComponentAccessor.getComponent(EmailFormatter.class)); }
@Override public FieldJsonRepresentation getJsonFromIssue(Issue issue, boolean renderedVersionRequired, FieldLayoutItem fieldLayoutItem) { WatcherManager watcherManager = ComponentAccessor.getWatcherManager(); if (watcherManager.isWatchingEnabled()) { return new FieldJsonRepresentation(new JsonData(WatchersJsonBean.shortBean(issue.getKey(), issue.getWatches(), watcherManager.isWatching(authenticationContext.getUser(), issue), jiraBaseUrls))); } return null; }