X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fcommons%2Fcommandline%2Fparameterparser%2FParser.java;h=e064cd53475b959fe51e0e280385dd1740430aa5;hb=85bd29620c59ea7f843a46691516a316358202ab;hp=d2f623fc5c8a0a21e6f390365194d94dca2594f3;hpb=26f09b1ebcafae67855b55ad588d5332a107d202;p=svjatoslav_commons.git diff --git a/src/main/java/eu/svjatoslav/commons/commandline/parameterparser/Parser.java b/src/main/java/eu/svjatoslav/commons/commandline/parameterparser/Parser.java index d2f623f..e064cd5 100755 --- a/src/main/java/eu/svjatoslav/commons/commandline/parameterparser/Parser.java +++ b/src/main/java/eu/svjatoslav/commons/commandline/parameterparser/Parser.java @@ -1,10 +1,10 @@ /* * Svjatoslav Commons - shared library of common functionality. - * Copyright (C) 2012, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu - * + * Copyright ©2012-2014, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu + * * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU General Public License - * as published by the Free Software Foundation. + * modify it under the terms of version 3 of the GNU Lesser General Public License + * or later as published by the Free Software Foundation. */ package eu.svjatoslav.commons.commandline.parameterparser; @@ -20,20 +20,20 @@ public class Parser { private final ArrayList parameters = new ArrayList(); - public void addParameter(final Parameter parameter) { + public E add(final E parameter) { parameters.add(parameter); + return parameter; } /** * Return parameter by given alias or null if no parameter * exists for given alias. */ - public Parameter getParameterByAlias(final String alias) { + public Parameter findParameterByAlias(final String alias) { - for (final Parameter parameter : parameters) { + for (final Parameter parameter : parameters) if (parameter.matchesAlias(alias)) return parameter; - } return null; } @@ -48,7 +48,7 @@ public class Parser { for (final String argument : args) { - final Parameter parameterForAlias = getParameterByAlias(argument); + final Parameter parameterForAlias = findParameterByAlias(argument); if (parameterForAlias == null) { if (currentParameter == null) { System.out.println("Unknown commandline parameter: " @@ -60,10 +60,9 @@ public class Parser { return false; } else { - if (currentParameter != null) { + if (currentParameter != null) if (!currentParameter.noMoreArguments()) return false; - } parameterForAlias.setParameterSpecified(true); currentParameter = parameterForAlias; @@ -73,21 +72,19 @@ public class Parser { // check if any mandatory parameters are missing - for (final Parameter parameter : parameters) { + for (final Parameter parameter : parameters) if (parameter.isMandatory() && (!parameter.isParameterSpecified())) { System.out.println("Error! Mandatory parameter (" + parameter.getAliases() + ") is not specified."); return false; } - } return true; } public void showHelp() { - for (final Parameter parameter : parameters) { + for (final Parameter parameter : parameters) System.out.println(parameter.getHelp()); - } } }