package io.gitlab.jfronny.inceptum.cli; import java.util.*; public class CommandArgs implements Iterable { protected final List args; public final int length; public CommandArgs(List args) { this.args = List.copyOf(args); this.length = args.size(); } public boolean contains(String param) { return args.contains(param.replaceAll("^[-/]*", "").toLowerCase(Locale.ROOT)); } public String last() { return args[args.size() - 1]; } public String get(int index) { return args[index]; } public List after(String param) { List yes = null; for (String arg : args) { if (yes != null) yes.add(arg); else if (arg.equals(param.replaceAll("^[-/]*", "").toLowerCase(Locale.ROOT))) yes = new ArrayList<>(); } return yes; } public List after(int index) { return index + 1 < length ? args.subList(index + 1, length) : new ArrayList<>(); } public List getArgs() { return args; } @Override public Iterator iterator() { return args.iterator(); } public CommandArgs subArgs() { return new CommandArgs(args.subList(1, args.size())); } @Override public String toString() { return "[" + String.join(", ", args) + "]"; } }