Run tool tasks from one entry point

- Create scanner which scans for existing tasks
- Unify options management (mostly because multiple Scanner's are a bad idea)
This commit is contained in:
ljacqu
2015-12-12 10:09:38 +01:00
parent a14e3260dc
commit 23d6801baa
6 changed files with 267 additions and 35 deletions
@@ -3,32 +3,32 @@ package permissions;
import utils.ANewMap;
import utils.FileUtils;
import utils.TagReplacer;
import utils.TaskOption;
import utils.ToolTask;
import utils.ToolsConstants;
import java.util.Arrays;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
/**
* Class responsible for formatting a permissions node list and
* Task responsible for formatting a permissions node list and
* for writing it to a file if desired.
*/
public class PermissionsListWriter {
public class PermissionsListWriter implements ToolTask {
private static final String PERMISSIONS_OUTPUT_FILE = ToolsConstants.DOCS_FOLDER + "permission_nodes.md";
public static void main(String[] args) {
// Ask if result should be written to file
Scanner scanner = new Scanner(System.in);
System.out.println("Include description? [Enter 'n' for no]");
boolean includeDescription = !matches("n", scanner);
@Override
public String getTaskName() {
return "writePermissionsList";
}
boolean writeToFile = false;
if (includeDescription) {
System.out.println("Write to file? [Enter 'y' for yes]");
writeToFile = matches("y", scanner);
}
scanner.close();
@Override
public void execute(Map<String, String> options) {
// Ask if result should be written to file
boolean includeDescription = options.get("include.description").equals("y");
boolean writeToFile = options.get("write.to.file").equals("y");
if (!includeDescription) {
outputSimpleList();
@@ -39,6 +39,12 @@ public class PermissionsListWriter {
}
}
@Override
public Iterable<TaskOption> getOptions() {
return Arrays.asList(
new TaskOption("include.description", "Include description? [y/n]", "y", "y", "n"),
new TaskOption("write.to.file", "Write to file? [y/n]", "n", "y", "n"));
}
private static void generateAndWriteFile() {
final String permissionsTagValue = generatePermissionsList();
@@ -77,9 +83,4 @@ public class PermissionsListWriter {
System.out.println("Total: " + nodes.size());
}
private static boolean matches(String answer, Scanner sc) {
String userInput = sc.nextLine();
return answer.equalsIgnoreCase(userInput);
}
}