Skip to content

Commit

Permalink
simplification
Browse files Browse the repository at this point in the history
  • Loading branch information
remal committed May 12, 2024
1 parent f1bc8e4 commit f7e2402
Showing 1 changed file with 23 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import static name.remal.gradle_plugins.toolkit.PredicateUtils.not;

import java.io.File;
import java.util.Collection;
import java.util.List;
import javax.annotation.Nullable;
import lombok.val;
Expand All @@ -28,19 +27,16 @@ public void apply(Project project) {
}


private void configureFinalizedBy(Project project) {
private static void configureFinalizedBy(Project project) {
project.getTasks()
.matching(task -> !(task instanceof JacocoBase))
.configureEach(task ->
task.finalizedBy(project.provider(() -> getFinalizedBy(task)))
);
}

private List<Object> getFinalizedBy(Task task) {
val taskExecutionDataFile = getOptionalExtension(task, JacocoTaskExtension.class)
.map(JacocoTaskExtension::getDestinationFile)
.map(File::getAbsoluteFile)
.orElse(null);
private static List<Object> getFinalizedBy(Task task) {
val taskExecutionDataFile = getTaskExecutionDataFile(task);
if (taskExecutionDataFile == null) {
return emptyList();
}
Expand All @@ -49,54 +45,53 @@ private List<Object> getFinalizedBy(Task task) {
.filter(JacocoReportBase.class::isInstance)
.map(JacocoReportBase.class::cast)
.filter(reportTask -> {
val reportExecutionDataFile = singleOrNullFile(reportTask.getExecutionData().getFiles());
if (reportExecutionDataFile == null) {
return false;
}
return reportExecutionDataFile.equals(taskExecutionDataFile);
val reportExecutionDataFile = getReportExecutionDataFile(reportTask);
return reportExecutionDataFile != null && reportExecutionDataFile.equals(taskExecutionDataFile);
})
.collect(toList());
}


private void configureDependsOn(Project project) {
private static void configureDependsOn(Project project) {
project.getTasks()
.withType(JacocoReportBase.class)
.configureEach(reportTask ->
reportTask.dependsOn(project.provider(() -> getDependsOn(reportTask)))
);
}

private List<Object> getDependsOn(JacocoReportBase reportTask) {
val reportExecutionDataFile = singleOrNullFile(reportTask.getExecutionData().getFiles());
private static List<Object> getDependsOn(JacocoReportBase reportTask) {
val reportExecutionDataFile = getReportExecutionDataFile(reportTask);
if (reportExecutionDataFile == null) {
return emptyList();
}

return reportTask.getProject().getTasks().stream()
.filter(not(JacocoBase.class::isInstance))
.filter(task -> {
val taskExecutionDataFile = getOptionalExtension(task, JacocoTaskExtension.class)
.map(JacocoTaskExtension::getDestinationFile)
.map(File::getAbsoluteFile)
.orElse(null);
if (taskExecutionDataFile == null) {
return false;
}

return taskExecutionDataFile.equals(reportExecutionDataFile);
val taskExecutionDataFile = getTaskExecutionDataFile(task);
return taskExecutionDataFile != null && taskExecutionDataFile.equals(reportExecutionDataFile);
})
.collect(toList());
}


@Nullable
private static File singleOrNullFile(Collection<? extends File> collection) {
if (collection.size() == 1) {
return collection.iterator().next().getAbsoluteFile();
private static File getTaskExecutionDataFile(Task task) {
return getOptionalExtension(task, JacocoTaskExtension.class)
.map(JacocoTaskExtension::getDestinationFile)
.map(File::getAbsoluteFile)
.orElse(null);
}

@Nullable
private static File getReportExecutionDataFile(JacocoReportBase reportTask) {
val files = reportTask.getExecutionData().getFiles();
if (files.size() != 1) {
return null;
}

return null;
return files.iterator().next().getAbsoluteFile();
}

}

0 comments on commit f7e2402

Please sign in to comment.