public Optional<String> readOverviewFrom(String... featureDirectories) { Optional<File> overviewFile = stream(featureDirectories) .map(featureDirectory -> findOverviewFileIn(featureDirectory)) .filter(Optional::isPresent) .map(Optional::get) .findFirst(); try { return overviewFile.isPresent() ? Optional.of(new String(readAllBytes(overviewFile.get().toPath()))) : Optional.empty(); } catch (IOException e) { return Optional.empty(); } }
public Optional<String> getOverview() { return overviewReader.readOverviewFrom(directoryPaths.toArray(new String[]{})); }
public FileSystemRequirementsTagProvider(String rootDirectory, int level, EnvironmentVariables environmentVariables) { super(environmentVariables, rootDirectory); this.narrativeReader = NarrativeReader.forRootDirectory(rootDirectory) .withRequirementTypes(getRequirementTypes()); this.overviewReader = new OverviewReader(); directoryPaths = rootDirectories(rootDirectory, environmentVariables); this.requirementsConfiguration = new RequirementsConfiguration(environmentVariables); this.level = level; }
public FileSystemRequirementsTagProvider(String rootDirectory, EnvironmentVariables environmentVariables) { super(environmentVariables, rootDirectory); this.narrativeReader = NarrativeReader.forRootDirectory(rootDirectory) .withRequirementTypes(getRequirementTypes()); this.overviewReader = new OverviewReader(); this.requirementsConfiguration = new RequirementsConfiguration(environmentVariables); directoryPaths = rootDirectories(rootDirectory, environmentVariables); this.level = requirementsConfiguration.startLevelForADepthOf(maxDirectoryDepthIn(directoryPaths) + 1); }