fixed merge issue

This commit is contained in:
Isaac Parenteau
2018-09-13 19:44:04 -05:00
2 changed files with 12 additions and 10 deletions

View File

@ -9,6 +9,7 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@ -149,16 +150,17 @@ public class ArgParser {
@SuppressWarnings("unchecked")
private <T> T parseItem(String[] args) throws InstantiationException, IllegalAccessException {
if (argClass == null) throw new IllegalArgumentException("Argument class was not specified");
Object obj = argClass.newInstance();
this.fields = Stream.of(obj.getClass().getDeclaredFields())
.filter(f -> f.isAnnotationPresent(Parameter.class))
.map(f -> {
f.setAccessible(true);
return f;
})
.collect(Collectors.toList());
List<String> argList = new ArrayList<>(Arrays.asList(args));
Optional<String> helpTest = argList.stream().filter(s -> s.trim().equals("-h") || s.trim().equals("--help")).findFirst();
if (helpTest.isPresent()) {
help();
System.exit(0);
}
Object obj = argClass.newInstance();
recollectFields();
List<Field> positional = new ArrayList<>();
for(Iterator<Field> iter = fields.iterator(); iter.hasNext();) {

View File

@ -33,8 +33,8 @@ public class ArgParserTest {
Args arg = ArgParser.newBuilder().withArgClass(Args.class).parse(args);
assertTrue(arg.position2.equals(args[0]));
assertTrue(arg.position1.equals(args[1]));
assertTrue(arg.position2.equals(args[1]));
assertTrue(arg.position1.equals(args[0]));
assertTrue(arg.values.size() == 2);
assertTrue(arg.count == 1);
}