private List<Requirement> addParentsTo(List<Requirement> requirements) { return addParentsTo(requirements, null); }
private List<Requirement> addParentsTo(List<Requirement> requirements) { return addParentsTo(requirements, null); }
private List<Requirement> addParentsTo(List<Requirement> requirements) { return addParentsTo(requirements, null); }
/** * We look for file system requirements in the root directory path (by default, 'stories'). * First, we look on the classpath. If we don't find anything on the classpath (e.g. if the task is * being run from the Maven plugin), we look in the src/main/resources and src/test/resources directories starting * at the working directory. */ public List<Requirement> getRequirements() { if (requirements == null) { try { Set<Requirement> allRequirements = Sets.newHashSet(); Set<String> directoryPaths = getRootDirectoryPaths(); for (String rootDirectoryPath : directoryPaths) { File rootDirectory = new File(rootDirectoryPath); if (rootDirectory.exists()) { allRequirements.addAll(loadCapabilitiesFrom(rootDirectory.listFiles(thatAreDirectories()))); allRequirements.addAll(loadStoriesFrom(rootDirectory.listFiles(thatAreStories()))); } } requirements = Lists.newArrayList(allRequirements); Collections.sort(requirements); } catch (IOException e) { requirements = NO_REQUIREMENTS; throw new IllegalArgumentException("Could not load requirements from '" + rootDirectoryPath + "'", e); } if (level == 0) { requirements = addParentsTo(requirements); } } return requirements; }
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; }
/** * We look for file system requirements in the root directory path (by default, 'stories'). * First, we look on the classpath. If we don't find anything on the classpath (e.g. if the task is * being run from the Maven plugin), we look in the src/main/resources and src/test/resources directories starting * at the working directory. */ public List<Requirement> getRequirements() { if (requirements == null) { synchronized (requirementsLock) { if (requirements == null) { Set<Requirement> allRequirements = new HashSet<>(); Set<String> directoryPaths = getRootDirectoryPaths(); for (String path : directoryPaths) { File rootDirectory = new File(path); if (rootDirectory.exists()) { List<Requirement> capabilities = loadCapabilitiesFrom(rootDirectory.listFiles(thatAreFeatureDirectories())); List<Requirement> leafRequirements = loadStoriesFrom(rootDirectory.listFiles(thatAreStories())); allRequirements.addAll(capabilities); allRequirements.addAll(leafRequirements); } } requirements = new ArrayList<>(allRequirements); sort(requirements); requirements = addParentsTo(requirements); } } } return Collections.unmodifiableList(requirements); }
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; }
requirements = addParentsTo(requirements);
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; }