Geoffrey-MC-Plugin/src/main/java/com/zerohighdef/geoffrey/Objects/GeoffreyUtil.java

50 lines
1.4 KiB
Java

package com.zerohighdef.geoffrey.Objects;
import java.text.ParseException;
import java.util.LinkedList;
import java.util.List;
public class GeoffreyUtil {
public static List<String> parseArgs(String [] args) throws ParseException {
LinkedList<String> parsedArgs = new LinkedList<>();
boolean parsingMultiWordArg = false;
StringBuilder parsedArg = new StringBuilder();
for (String arg: args) {
boolean foundEndOfString = false;
if (!parsingMultiWordArg) {
parsedArg = new StringBuilder();
}
for (char c: arg.toCharArray()) {
if (c == '"') {
if (parsingMultiWordArg) {
foundEndOfString = true;
parsingMultiWordArg = false;
}
else {
parsingMultiWordArg = true;
}
}
}
parsedArg.append(arg);
if (parsingMultiWordArg) {
parsedArg.append(" ");
}
if (foundEndOfString || !parsingMultiWordArg) {
parsedArgs.add(parsedArg.toString().replace("\"", ""));
}
}
if (parsingMultiWordArg) {
throw new ParseException("No matching \" found", 0);
}
return parsedArgs;
}
}