package net.jscanner.cli.command.impl; import java.util.List; import java.util.regex.Pattern; import net.jscanner.cli.command.Command; import net.jscanner.cli.command.CommandHandler; import net.jscanner.util.FileManager; /** * The "read" command. * * @author Desmond Jackson */ public class ReadCommand extends Command { /** * The commmand handler. */ private CommandHandler commandHandler; /** * Creates a new "read" command instance. * * @param commandHandler The command handler */ public ReadCommand(CommandHandler commandHandler) { super("read"); this.commandHandler = commandHandler; } @Override public boolean execute(String... arguments) { if (arguments.length > 0) { List<String> lines = FileManager.lines(arguments[0]); for (String line : lines) if (!line.trim().isEmpty()) { String name = line.split(" ")[0]; if (!name.equals("read")) commandHandler.handleCommand(name, line.replaceFirst(Pattern.quote(name), "").trim().split(" ")); } return true; } return false; } @Override public String getUsage() { return "read <file>"; } @Override public String getHelp() { return "reads JScanner commands from the specified file"; } }