import java.nio.file.Files;
import java.nio.file.Path;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.SortedMap;
import java.util.StringJoiner;
private final Path base;
private final Map<String, String> variantsXOr;
-// public FsA2Source(Path base) {
-// this(base, new HashMap<>());
-// }
+ private final List<String> includes;
+ private final List<String> excludes;
- public FsA2Source(Path base, Map<String, String> variantsXOr, boolean usingReference) {
+ public FsA2Source(Path base, Map<String, String> variantsXOr, boolean usingReference, List<String> includes,
+ List<String> excludes) {
super(usingReference);
this.base = base;
this.variantsXOr = new HashMap<>(variantsXOr);
+ this.includes = includes;
+ this.excludes = excludes;
}
void load() throws IOException {
if (variantPath == null)
continue contributions;
- if (Files.exists(variantPath)) {
- // a variant was found, let's collect its contributions (also common ones in its
- // parent)
+ // a variant was found, let's collect its contributions (also common ones in its
+ // parent)
+ if (Files.exists(variantPath.getParent())) {
for (Path variantContributionPath : Files.newDirectoryStream(variantPath.getParent())) {
String variantContributionId = variantContributionPath.getFileName().toString();
if (variantContributionId.contains(".")) {
contributions.put(variantContributionPath, contribution);
}
}
+ }
+ if (Files.exists(variantPath)) {
for (Path variantContributionPath : Files.newDirectoryStream(variantPath)) {
String variantContributionId = variantContributionPath.getFileName().toString();
if (variantContributionId.contains(".")) {
}
}
- for (Path contributionPath : contributions.keySet()) {
+ contributions: for (Path contributionPath : contributions.keySet()) {
String contributionId = contributionPath.getFileName().toString();
+ if (includes != null && !includes.contains(contributionId))
+ continue contributions;
+ if (excludes != null && excludes.contains(contributionId))
+ continue contributions;
A2Contribution contribution = getOrAddContribution(contributionId);
DirectoryStream<Path> modulePaths = Files.newDirectoryStream(contributionPath);
modules: for (Path modulePath : modulePaths) {