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:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user