private Requirement mostPreciseOf(Requirement thisRequirement, Requirement thatRequirement) { String thisParent = thisRequirement.getParent() != null ? thisRequirement.getParent() : ""; String thatParent = thatRequirement.getParent() != null ? thatRequirement.getParent() : ""; return (thatParent.length() >= thisParent.length()) ? thatRequirement : thisRequirement; }
private List<Requirement> rootRequirementsIn(Collection<Requirement> allRequirements) { List<Requirement> rootRequirements = new ArrayList<>(); for (Requirement requirement : allRequirements) { if (requirement.getParent() == null) { rootRequirements.add(requirement); } } return rootRequirements; }
private Set<Requirement> removeChildrenFromTopLevelRequirementsIn(Set<Requirement> allRequirements) { Set<Requirement> prunedRequirements = new HashSet(); for (Requirement requirement : allRequirements) { if (requirement.getParent() == null) { prunedRequirements.add(requirement); } } return prunedRequirements; }
public List<Requirement> in(Collection<Requirement> requirements) { List<Requirement> children = new ArrayList<>(); for (Requirement requirement : requirements) { if (isNotEmpty(requirement.getParent()) && requirement.getParent().equals(parent.getName())) { children.add(requirement); } } return children; } }
public java.util.Optional<Requirement> getGrandparentRequirement() { if (!parentRequirement.isPresent()) { return java.util.Optional.empty(); } if (isEmpty(parentRequirement.get().getParent())) { return java.util.Optional.empty(); } return parentRequirementOf(parentRequirement.get()); }
public void in(Collection<Requirement> requirements) { Requirement ancestor = parent; Requirement immediateDescendant = child; while(ancestor != null) { Requirement updatedAncestor = ancestor.withChild(immediateDescendant); replaceIn(requirements, ancestor, updatedAncestor); immediateDescendant = updatedAncestor; ancestor = requirementCalled(ancestor.getParent(), requirements); } }