Minor improvements in tool tasks

- Use java 8 types in UpdateDocsTask
- Simplify permissions page writing task to write to the file without any options
- Various minor simplifications (Java 8) to avoid casting etc.
This commit is contained in:
ljacqu
2016-10-08 00:38:51 +02:00
parent a2732da0c3
commit dd9312f581
5 changed files with 36 additions and 93 deletions
+12 -28
View File
@@ -9,14 +9,15 @@ import tools.utils.ToolTask;
import java.util.Scanner;
import java.util.Set;
import java.util.function.Consumer;
/**
* Task that runs all tasks which update files in the docs folder.
*/
public class UpdateDocsTask implements AutoToolTask {
private static final Set<Class<? extends ToolTask>> TASKS = ImmutableSet.<Class<? extends ToolTask>>of(
CommandPageCreater.class, HashAlgorithmsDescriptionTask.class, PermissionsListWriter.class);
private static final Set<Class<? extends ToolTask>> TASKS = ImmutableSet
.of(CommandPageCreater.class, HashAlgorithmsDescriptionTask.class, PermissionsListWriter.class);
@Override
public String getTaskName() {
@@ -25,22 +26,14 @@ public class UpdateDocsTask implements AutoToolTask {
@Override
public void execute(final Scanner scanner) {
executeTasks(new TaskRunner() {
@Override
public void execute(ToolTask task) {
task.execute(scanner);
}
});
executeTasks(task -> task.execute(scanner));
}
@Override
public void executeDefault() {
executeTasks(new TaskRunner() {
@Override
public void execute(ToolTask task) {
if (task instanceof AutoToolTask) {
((AutoToolTask) task).executeDefault();
}
executeTasks(task -> {
if (task instanceof AutoToolTask) {
((AutoToolTask) task).executeDefault();
}
});
}
@@ -49,24 +42,15 @@ public class UpdateDocsTask implements AutoToolTask {
try {
return clazz.newInstance();
} catch (IllegalAccessException | InstantiationException e) {
throw new UnsupportedOperationException(e);
throw new UnsupportedOperationException("Could not instantiate task class '" + clazz + "'", e);
}
}
private static void executeTasks(TaskRunner runner) {
private static void executeTasks(Consumer<ToolTask> taskRunner) {
for (Class<? extends ToolTask> taskClass : TASKS) {
try {
ToolTask task = instantiateTask(taskClass);
System.out.println("\nRunning " + task.getTaskName() + "\n-------------------");
runner.execute(task);
} catch (UnsupportedOperationException e) {
System.err.println("Error running task of class '" + taskClass + "'");
e.printStackTrace();
}
ToolTask task = instantiateTask(taskClass);
System.out.println("\nRunning " + task.getTaskName() + "\n-------------------");
taskRunner.accept(task);
}
}
private interface TaskRunner {
void execute(ToolTask task);
}
}