public IssueLink getIssueLink(Long sourceId, Long destinationId, Long issueLinkTypeId) { List<IssueLink> links = getIssueLinks(FieldMap.build("source", sourceId)); for (IssueLink link : links) { if (link.getDestinationId().equals(destinationId) && link.getLinkTypeId().equals(issueLinkTypeId)) { return link; } } return null; }
private void addFieldsToDoc(Document doc, Collection<IssueLink> issueLinks, Direction direction) { for (IssueLink issueLink : issueLinks) { Long linkTypeId = issueLink.getLinkTypeId(); doc.add(new Field(getDocumentFieldId(), createValue(linkTypeId), NO, NOT_ANALYZED)); doc.add(new Field(getDocumentFieldId(), createValue(linkTypeId, direction), NO, NOT_ANALYZED)); Long otherIssue = direction == Direction.OUT ? issueLink.getDestinationId() : issueLink.getSourceId(); // IN links have OTHER issue at SOURCE, OUT links have OTHER issue at DEST doc.add(new Field(getDocumentFieldId(), createValue(linkTypeId, direction, otherIssue), NO, NOT_ANALYZED)); } } }
IssueLinkType issueLinkType = issueLinkTypeManager.getIssueLinkType(issueLink.getLinkTypeId()); IssueLinkType issueLinkType = issueLinkTypeManager.getIssueLinkType(issueLink.getLinkTypeId());
IssueLinkType issueLinkType = issueLinkTypeManager.getIssueLinkType(issueLink.getLinkTypeId(), excludeSystemLinks); IssueLinkType issueLinkType = issueLinkTypeManager.getIssueLinkType(issueLink.getLinkTypeId(), excludeSystemLinks);
@Override public FieldMap fieldMapFrom(final IssueLink value) { return new FieldMap("id", value.getId()) .add("linktype", value.getLinkTypeId()) .add("source", value.getSourceId()) .add("destination", value.getDestinationId()) .add("sequence", value.getSequence()); } }