private void linkItemToItemWithId(final LinkedSpecificationItem item, final SpecificationItemId id) { LinkedSpecificationItem coveredLinkedItem; if ((coveredLinkedItem = this.index.getById(id)) != null) { linkMatchingRevision(item, coveredLinkedItem); } else { linkOrphanToStaleId(item, id); linkIgnoringRevision(item, id); } }
/** * Turn the items into linked items. * * @return a list of {@link LinkedSpecificationItem}s. */ // [impl->dsn~tracing.needed-coverage-status~1] public List<LinkedSpecificationItem> link() { for (final LinkedSpecificationItem linkedItem : this.linkedItems) { linkItem(linkedItem); } return this.linkedItems; }
private void linkItem(final LinkedSpecificationItem item) { for (final SpecificationItemId id : item.getCoveredIds()) { linkItemToItemWithId(item, id); } }
/** * Create a {@link Linker} for specification items. * * @param items * the specification items to be linked. */ public Linker(final List<SpecificationItem> items) { this.linkedItems = wrapItems(items); this.index = LinkedItemIndex.createFromWrappedItems(this.linkedItems); this.staleIndex = new HashMap<>(); }
private void linkOrphanToStaleId(final LinkedSpecificationItem item, final SpecificationItemId id) { final LinkedSpecificationItem deadItem = findOrCreateStaleItem(id); item.addLinkToItemWithStatus(deadItem, LinkStatus.ORPHANED); }
private void linkIgnoringRevision(final LinkedSpecificationItem item, final SpecificationItemId id) { final List<LinkedSpecificationItem> coveredLinkedItems = this.index .getByIdIgnoringVersion(id); if (!coveredLinkedItems.isEmpty()) { linkToOutdatedOrPredated(item, id, coveredLinkedItems); } }
private void linkItem(final LinkedSpecificationItem item) { for (final SpecificationItemId id : item.getCoveredIds()) { linkItemToItemWithId(item, id); } }
/** * Create a {@link Linker} for specification items. * * @param items * the specification items to be linked. */ public Linker(final List<SpecificationItem> items) { this.linkedItems = wrapItems(items); this.index = LinkedItemIndex.createFromWrappedItems(this.linkedItems); this.staleIndex = new HashMap<>(); }
private void linkOrphanToStaleId(final LinkedSpecificationItem item, final SpecificationItemId id) { final LinkedSpecificationItem deadItem = findOrCreateStaleItem(id); item.addLinkToItemWithStatus(deadItem, LinkStatus.ORPHANED); }
private void linkIgnoringRevision(final LinkedSpecificationItem item, final SpecificationItemId id) { final List<LinkedSpecificationItem> coveredLinkedItems = this.index .getByIdIgnoringVersion(id); if (!coveredLinkedItems.isEmpty()) { linkToOutdatedOrPredated(item, id, coveredLinkedItems); } }
private void linkItemToItemWithId(final LinkedSpecificationItem item, final SpecificationItemId id) { LinkedSpecificationItem coveredLinkedItem; if ((coveredLinkedItem = this.index.getById(id)) != null) { linkMatchingRevision(item, coveredLinkedItem); } else { linkOrphanToStaleId(item, id); linkIgnoringRevision(item, id); } }
/** * Turn the items into linked items. * * @return a list of {@link LinkedSpecificationItem}s. */ // [impl->dsn~tracing.needed-coverage-status~1] public List<LinkedSpecificationItem> link() { for (final LinkedSpecificationItem linkedItem : this.linkedItems) { linkItem(linkedItem); } return this.linkedItems; }