@Override public boolean apply(IssueLink input) { Preconditions.checkNotNull(input); return !input.getIssueLinkType().isSubTaskLinkType(); } };
@Override public boolean apply(IssueLink input) { Preconditions.checkNotNull(input); return !(issueLinkType.getInward().equals(input.getIssueLinkType().getInward()) && issueLinkType.getOutward().equals(input.getIssueLinkType().getOutward())); } };
public String getDirectionName() throws GenericEntityException { if (destId != null) { return getLink().getIssueLinkType().getOutward(); } else if (sourceId != null) { return getLink().getIssueLinkType().getInward(); } return null; }
@Override public List<IssueLink> getSubTaskIssueLinks(final Long issueId) { List<IssueLink> subTasks = new ArrayList<IssueLink>(); for (IssueLink link : issueLinkManager.getOutwardLinks(issueId)) { if (link.getIssueLinkType().isSubTaskLinkType()) { subTasks.add(link); } } // Sort the sub-task issue links on sequence Collections.sort(subTasks, new SequenceIssueLinkComparator()); return subTasks; }
private boolean givenLinkTypeIsNotSameAsCloneIssueLinkType(final IssueLink checkingLink) { return getCloneIssueLinkType().getId().equals(checkingLink.getIssueLinkType().getId()) == false; }
@Override @Nullable public Long getParentIssueId(Long issueId) { if (issueId == null) return null; // Check if we have any incoming sub-task issue links final List<IssueLink> inwardLinks = issueLinkManager.getInwardLinks(issueId); for (final IssueLink inwardLink : inwardLinks) { if (inwardLink.getIssueLinkType().isSubTaskLinkType()) { return inwardLink.getSourceId(); } } return null; }
public void addIndex(Document doc, Issue issue) { // This accesses the link manager directly (instead of issue.getSubtasks()) so that we only pull out the ids. // This has a performance improvement final List<IssueLink> outwardLinks = issueLinkManager.getOutwardLinks(issue.getId()); for (final IssueLink outwardLink : outwardLinks) { if (outwardLink.getIssueLinkType().isSubTaskLinkType()) { doc.add(new Field(getDocumentFieldId(), outwardLink.getDestinationId().toString(), Field.Store.YES, Field.Index.NOT_ANALYZED_NO_NORMS)); } } } }
private void removeLinkFromParent(final MutableIssue issue, final ApplicationUser applicationUser) { if (issue.getParentId() != null) { List<IssueLink> parentLinks = issueLinkManager.getOutwardLinks(issue.getParentId()); parentLinks.stream().filter(link -> link.getIssueLinkType().isSubTaskLinkType() && link.getDestinationId().equals(issue.getId())).forEach( link -> issueLinkManager.removeIssueLink(link, applicationUser) ); } }
public void copyLocalIssueLinks(final Issue localIssue, final String copiedIssueKey, final Long copiedIssueId) { //we throw out all subtask and cloner links before copying final Predicate<IssueLink> isNotSubtaskAndClonedLink = Predicates.and(isNotSubtaskIssueLink, isNotSpecifiedLinkType(clonerIssueLinkType)); final Iterable<IssueLink> inwardLinks = Iterables.filter(issueLinkManager.getInwardLinks(localIssue.getId()), isNotSubtaskAndClonedLink); for (final IssueLink inwardLink : inwardLinks) { final IssueLinkType type = inwardLink.getIssueLinkType(); remoteJira.copyLocalIssueLink(inwardLink.getSourceObject(), copiedIssueKey, copiedIssueId, type, JiraProxy.LinkCreationDirection.OUTWARD, JiraProxy.LinkCreationDirection.INWARD); } final Iterable<IssueLink> outwardLinks = Iterables.filter(issueLinkManager.getOutwardLinks(localIssue.getId()), isNotSubtaskAndClonedLink); for (final IssueLink outwardLink : outwardLinks) { final IssueLinkType type = outwardLink.getIssueLinkType(); remoteJira.copyLocalIssueLink(outwardLink.getDestinationObject(), copiedIssueKey, copiedIssueId, type, JiraProxy.LinkCreationDirection.INWARD, JiraProxy.LinkCreationDirection.OUTWARD); } } }
issueLinkManager.createIssueLink(workingIssueId, cloneIssue.getId(), issueLink.getIssueLinkType().getId(), null, getLoggedInUser()); issueLinkManager.createIssueLink(cloneIssue.getId(), workingIssueId, issueLink.getIssueLinkType().getId(), null, getLoggedInUser());
final IssueLinkType issueLinkType = issueLink.getIssueLinkType(); if (!issueLinkType.isSystemLinkType())
public void changeIssueLinkType(IssueLink issueLink, IssueLinkType swapLinkType, ApplicationUser remoteUser) { final IssueLinkType oldIssueLinkType = issueLink.getIssueLinkType(); if (!oldIssueLinkType.isSystemLinkType() && swapLinkType.isSystemLinkType()) { log.warn("Changing non-system link type to a system link type."); } else if (oldIssueLinkType.isSystemLinkType() && !swapLinkType.isSystemLinkType()) { log.warn("Changing system link type to a non-system link type."); } updateIssueLinkType(issueLink, swapLinkType); outwardLinkCache.remove(issueLink.getSourceId()); inwardLinkCache.remove(issueLink.getDestinationId()); // If the link we are swapping from is not a system link type, it means its creation should have // been recorded in 'change history', so we should update change history here. if (!oldIssueLinkType.isSystemLinkType()) { createRemoveIssueLinkChangeItems(issueLink, oldIssueLinkType, remoteUser); createCreateIssueLinkChangeItems(issueLink, swapLinkType, remoteUser); } }
@Override public void delete(DeleteIssueLinkValidationResult validationResult) { notNull("validationResult", validationResult); if (!validationResult.isValid()) { throw new IllegalStateException("You cannot delete an issue link with an invalid validation result."); } final IssueLink issueLink = validationResult.getIssueLink(); final Long sourceId = issueLink.getSourceObject().getId(); final Long destinationId = issueLink.getDestinationObject().getId(); final Long issueLinkTypeId = issueLink.getIssueLinkType().getId(); issueLinkManager.removeIssueLink(issueLinkManager.getIssueLink(sourceId, destinationId, issueLinkTypeId), validationResult.getUser()); }
final IssueLinkType issueLinkType = issueLink.getIssueLinkType();
/** * Removes the parent link and adds change item. * * @param context jira service context */ public void preStoreUpdates(JiraServiceContext context, IssueChangeHolder changeHolder, Issue currentIssue, MutableIssue targetIssue) { Collection<IssueLink> inwardLinks = issueLinkManager.getInwardLinks(currentIssue.getId()); for (final IssueLink issueLink : inwardLinks) { if (issueLink.getIssueLinkType().isSubTaskLinkType()) { issueLinkManager.removeIssueLink(issueLink, context.getLoggedInUser()); } } // need to reorder sequence. subTaskManager.resetSequences(currentIssue.getParentObject()); final Issue parentIssue = currentIssue.getParentObject(); changeHolder.addChangeItem(new ChangeItemBean(ChangeItemBean.STATIC_FIELD, "Parent", parentIssue.getId().toString(), parentIssue.getKey(), null, null)); }
IssueLinkJsonBean issueLinkJsonBean = issueLinkBeanBuilder.buildIssueLinkBean(issueLink.getIssueLinkType(), issueLink.getId().toString()); issueLinkJsonBean.outwardIssue(issueLinkBeanBuilder.createIssueRefJsonBean(destinationIssueResult.getIssue())); issueLinkJsonBean.inwardIssue(issueLinkBeanBuilder.createIssueRefJsonBean(sourceIssueResult.getIssue()));
for (final IssueLink issueLink : inwardLinks) if (issueLink.getIssueLinkType().isSubTaskLinkType())