private List<Requirement> buildRequirementsTree(SortedMap<String, Requirement> requirementsByPath, Map<Requirement, String> requirementPaths) { List<Requirement> requirementsTree = Lists.newArrayList(); for (Requirement requirement : requirementsByPath.values()) { if (isRoot(requirementPaths.get(requirement))) { List<Requirement> children = findDirectChildrenFor(requirement, requirementsByPath, requirementPaths); requirementsTree.add(requirement.withChildren(children)); } } return requirementsTree; }
private List<Requirement> buildRequirementsTree(SortedMap<String, Requirement> requirementsByPath, Map<Requirement, String> requirementPaths) { List<Requirement> requirementsTree = Lists.newArrayList(); for (Requirement requirement : requirementsByPath.values()) { if (isRoot(requirementPaths.get(requirement))) { List<Requirement> children = findDirectChildrenFor(requirement, requirementsByPath, requirementPaths); requirementsTree.add(requirement.withChildren(children)); } } return requirementsTree; }
private List<Requirement> removeRequirementsWithoutTestsFrom(List<Requirement> requirements) { List<Requirement> prunedRequirements = Lists.newArrayList(); for(Requirement requirement : requirements) { if (testsExistFor(requirement)) { List<Requirement> prunedChildren = removeRequirementsWithoutTestsFrom(requirement.getChildren()); prunedRequirements.add(requirement.withChildren(prunedChildren)); } } return ImmutableList.copyOf(prunedRequirements); }
private Set<Requirement> removeRequirementsWithoutTestsFrom(Collection<Requirement> requirements) { Set<Requirement> prunedRequirements = new HashSet<>(); for (Requirement requirement : requirements) { if (testsExistFor(requirement)) { Set<Requirement> prunedChildren = removeRequirementsWithoutTestsFrom(requirement.getChildren()); prunedRequirements.add(requirement.withChildren(new ArrayList<>(prunedChildren))); } } return prunedRequirements; }
private List<Requirement> removeRequirementsWithoutTestsFrom(List<Requirement> requirements) { List<Requirement> prunedRequirements = Lists.newArrayList(); for(Requirement requirement : requirements) { if (testsExistFor(requirement)) { List<Requirement> prunedChildren = removeRequirementsWithoutTestsFrom(requirement.getChildren()); prunedRequirements.add(requirement.withChildren(prunedChildren)); } } return ImmutableList.copyOf(prunedRequirements); }
public RequirementOutcome withoutUnrelatedRequirements() { if (!shouldPrune(this)) { return this; } List<Requirement> childRequirementsWithTests = getRequirement().getChildren().stream() .filter(this::isTested) .collect(Collectors.toList()); Requirement prunedRequirement = getRequirement().withChildren(childRequirementsWithTests); return new RequirementOutcome(prunedRequirement, testOutcomes, requirementsWithoutTests, estimatedUnimplementedTests, issueTracking); }
private List<Requirement> findDirectChildrenFor(Requirement requirement, SortedMap<String, Requirement> requirementsByPath, Map<Requirement, String> requirementPaths) { List<Requirement> immediateChildren = Lists.newArrayList(); if (!isLeaf(requirement)) { String requirementPath = requirementPaths.get(requirement); for (String path : requirementsByPath.keySet()) { Requirement childRequirement = requirementsByPath.get(path); if ((childRequirement != requirement) && (isImmediateChild(requirementPath, path))) { if (isLeaf(childRequirement)) { immediateChildren.add(childRequirement); } else { immediateChildren.add(childRequirement.withChildren(findDirectChildrenFor(childRequirement, requirementsByPath, requirementPaths))); } } } } return immediateChildren; }
private List<Requirement> findDirectChildrenFor(Requirement requirement, SortedMap<String, Requirement> requirementsByPath, Map<Requirement, String> requirementPaths) { List<Requirement> immediateChildren = Lists.newArrayList(); if (!isLeaf(requirement)) { String requirementPath = requirementPaths.get(requirement); for (String path : requirementsByPath.keySet()) { Requirement childRequirement = requirementsByPath.get(path); if ((childRequirement != requirement) && (isImmediateChild(requirementPath, path))) { if (isLeaf(childRequirement)) { immediateChildren.add(childRequirement); } else { immediateChildren.add(childRequirement.withChildren(findDirectChildrenFor(childRequirement, requirementsByPath, requirementPaths))); } } } } return immediateChildren; }
private List<Requirement> addParentsTo(List<Requirement> requirements, String parent) { List<Requirement> augmentedRequirements = Lists.newArrayList(); for (Requirement requirement : requirements) { List<Requirement> children = requirement.hasChildren() ? addParentsTo(requirement.getChildren(), requirement.getName()) : NO_REQUIREMENTS; augmentedRequirements.add(requirement.withParent(parent).withChildren(children)); } return augmentedRequirements; }
protected List<Requirement> addParentsTo(List<Requirement> requirements, String parent) { List<Requirement> augmentedRequirements = new ArrayList<>(); for(Requirement requirement : requirements) { List<Requirement> children = requirement.hasChildren() ? addParentsTo(requirement.getChildren(),requirement.getName()) : NO_REQUIREMENTS; augmentedRequirements.add(requirement.withParent(parent).withChildren(children)); } return augmentedRequirements; }
private List<Requirement> addParentsTo(List<Requirement> requirements, String parent) { List<Requirement> augmentedRequirements = Lists.newArrayList(); for(Requirement requirement : requirements) { List<Requirement> children = requirement.hasChildren() ? addParentsTo(requirement.getChildren(),requirement.getName()) : NO_REQUIREMENTS; augmentedRequirements.add(requirement.withParent(parent).withChildren(children)); } return augmentedRequirements; }
private List<Requirement> addParentsTo(List<Requirement> requirements, String parent) { List<Requirement> augmentedRequirements = Lists.newArrayList(); for (Requirement requirement : requirements) { List<Requirement> children = requirement.hasChildren() ? addParentsTo(requirement.getChildren(), requirement.getName()) : NO_REQUIREMENTS; augmentedRequirements.add(requirement.withParent(parent).withChildren(children)); } return augmentedRequirements; }
private List<Requirement> addParentsTo(List<Requirement> requirements, String parent) { List<Requirement> augmentedRequirements = Lists.newArrayList(); for(Requirement requirement : requirements) { List<Requirement> children = requirement.hasChildren() ? addParentsTo(requirement.getChildren(),requirement.getName()) : NO_REQUIREMENTS; augmentedRequirements.add(requirement.withParent(parent).withChildren(children)); } return augmentedRequirements; }
private List<Requirement> addParentsTo(List<Requirement> requirements, String parent) { List<Requirement> augmentedRequirements = new ArrayList<>(); for (Requirement requirement : requirements) { List<Requirement> children = requirement.hasChildren() ? addParentsTo(requirement.getChildren(), requirement.getName()) : NO_REQUIREMENTS; augmentedRequirements.add(requirement.withParent(parent).withChildren(children)); } return augmentedRequirements; }
private Requirement requirementFromDirectoryName(File requirementDirectory) { System.out.println("Reading requirement from directory name " + requirementDirectory); String shortName = humanReadableVersionOf(requirementDirectory.getName()); List<Requirement> children = readChildrenFrom(requirementDirectory); return Requirement.named(shortName).withType(getDefaultType(level)).withNarrative(shortName).withChildren(children); }
private Requirement requirementFromDirectoryName(File requirementDirectory) { String shortName = humanReadableVersionOf(requirementDirectory.getName()); List<Requirement> children = readChildrenFrom(requirementDirectory); return Requirement.named(shortName).withType(getDefaultType(level)).withNarrative(shortName).withChildren(children); }
private Requirement requirementFromDirectoryName(File requirementDirectory) { String shortName = humanReadableVersionOf(requirementDirectory.getName()); List<Requirement> children = readChildrenFrom(requirementDirectory); return Requirement.named(shortName) .withType(getDefaultType(level)) .withNarrative("") .withPath(relativeDirectoryOf(requirementDirectory.getPath())) .withChildren(children); }
private Requirement requirementWithNarrative(File requirementDirectory, String shortName, Narrative requirementNarrative) { String displayName = getTitleFromNarrativeOrDirectoryName(requirementNarrative, shortName); String cardNumber = requirementNarrative.getCardNumber().orNull(); String type = requirementNarrative.getType(); List<String> releaseVersions = requirementNarrative.getVersionNumbers(); List<Requirement> children = readChildrenFrom(requirementDirectory); return Requirement.named(shortName) .withOptionalDisplayName(displayName) .withOptionalCardNumber(cardNumber) .withType(type) .withNarrative(requirementNarrative.getText()) .withReleaseVersions(releaseVersions) .withChildren(children); }
private Requirement requirementWithNarrative(File requirementDirectory, String shortName, Narrative requirementNarrative) { String displayName = getTitleFromNarrativeOrDirectoryName(requirementNarrative, shortName); String cardNumber = requirementNarrative.getCardNumber().orElse(null); String type = requirementNarrative.getType(); List<String> releaseVersions = requirementNarrative.getVersionNumbers(); List<Requirement> children = readChildrenFrom(requirementDirectory); return Requirement.named(shortName) .withOptionalDisplayName(displayName) .withOptionalCardNumber(cardNumber) .withType(type) .withNarrative(requirementNarrative.getText()) .withReleaseVersions(releaseVersions) .withPath(relativeDirectoryOf(requirementDirectory.getPath())) .withChildren(children); }
private Requirement requirementWithNarrative(File requirementDirectory, String shortName, Narrative requirementNarrative) { String displayName = getTitleFromNarrativeOrDirectoryName(requirementNarrative, shortName); String cardNumber = requirementNarrative.getCardNumber().orNull(); String type = requirementNarrative.getType(); List<String> releaseVersions = requirementNarrative.getVersionNumbers(); List<Requirement> children = readChildrenFrom(requirementDirectory); return Requirement.named(shortName) .withOptionalDisplayName(displayName) .withOptionalCardNumber(cardNumber) .withType(type) .withNarrative(requirementNarrative.getText()) .withReleaseVersions(releaseVersions) .withChildren(children); }