You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by eb...@apache.org on 2011/04/12 20:57:30 UTC
svn commit: r1091539 - in /commons/proper/cli/trunk: ./
src/main/java/org/apache/commons/cli/
Author: ebourg
Date: Tue Apr 12 18:57:29 2011
New Revision: 1091539
URL: http://svn.apache.org/viewvc?rev=1091539&view=rev
Log:
Moving to Java 5
Modified:
commons/proper/cli/trunk/pom.xml
commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/AmbiguousOptionException.java
commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/CommandLine.java
commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/DefaultParser.java
commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/HelpFormatter.java
commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/MissingOptionException.java
commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/Option.java
commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/OptionGroup.java
commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/OptionValidator.java
commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/Options.java
Modified: commons/proper/cli/trunk/pom.xml
URL: http://svn.apache.org/viewvc/commons/proper/cli/trunk/pom.xml?rev=1091539&r1=1091538&r2=1091539&view=diff
==============================================================================
--- commons/proper/cli/trunk/pom.xml (original)
+++ commons/proper/cli/trunk/pom.xml Tue Apr 12 18:57:29 2011
@@ -151,10 +151,10 @@
</dependencies>
<properties>
- <maven.compile.source>1.4</maven.compile.source>
- <maven.compile.target>1.4</maven.compile.target>
+ <maven.compile.source>1.5</maven.compile.source>
+ <maven.compile.target>1.5</maven.compile.target>
<commons.componentid>cli</commons.componentid>
- <commons.release.version>1.2</commons.release.version>
+ <commons.release.version>1.3</commons.release.version>
<commons.release.name>commons-cli-${commons.release.version}</commons.release.name>
<commons.osgi.symbolicName>org.apache.commons.cli</commons.osgi.symbolicName>
<commons.jira.id>CLI</commons.jira.id>
Modified: commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/AmbiguousOptionException.java
URL: http://svn.apache.org/viewvc/commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/AmbiguousOptionException.java?rev=1091539&r1=1091538&r2=1091539&view=diff
==============================================================================
--- commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/AmbiguousOptionException.java (original)
+++ commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/AmbiguousOptionException.java Tue Apr 12 18:57:29 2011
@@ -30,7 +30,7 @@ import java.util.Iterator;
public class AmbiguousOptionException extends UnrecognizedOptionException
{
/** The list of options matching the partial name specified */
- private Collection matchingOptions;
+ private Collection<String> matchingOptions;
/**
* Constructs a new AmbiguousOptionException.
@@ -38,7 +38,7 @@ public class AmbiguousOptionException ex
* @param option the partial option name
* @param matchingOptions the options matching the name
*/
- public AmbiguousOptionException(String option, Collection matchingOptions)
+ public AmbiguousOptionException(String option, Collection<String> matchingOptions)
{
super(createMessage(option, matchingOptions), option);
this.matchingOptions = matchingOptions;
@@ -47,7 +47,7 @@ public class AmbiguousOptionException ex
/**
* Returns the options matching the partial name.
*/
- public Collection getMatchingOptions()
+ public Collection<String> getMatchingOptions()
{
return matchingOptions;
}
@@ -59,7 +59,7 @@ public class AmbiguousOptionException ex
* @param matchingOptions
* @return
*/
- private static String createMessage(String option, Collection matchingOptions)
+ private static String createMessage(String option, Collection<String> matchingOptions)
{
StringBuffer buff = new StringBuffer("Ambiguous option: '");
buff.append(option);
Modified: commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/CommandLine.java
URL: http://svn.apache.org/viewvc/commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/CommandLine.java?rev=1091539&r1=1091538&r2=1091539&view=diff
==============================================================================
--- commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/CommandLine.java (original)
+++ commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/CommandLine.java Tue Apr 12 18:57:29 2011
@@ -46,10 +46,10 @@ public class CommandLine implements Seri
private static final long serialVersionUID = 1L;
/** the unrecognised options/arguments */
- private List args = new LinkedList();
+ private List<String> args = new LinkedList<String>();
/** the processed options */
- private List options = new ArrayList();
+ private List<Option> options = new ArrayList<Option>();
/**
* Creates a command line.
@@ -169,18 +169,17 @@ public class CommandLine implements Seri
*/
public String[] getOptionValues(String opt)
{
- List values = new ArrayList();
+ List<String> values = new ArrayList<String>();
- for (Iterator it = options.iterator(); it.hasNext();)
+ for (Option option : options)
{
- Option option = (Option) it.next();
if (opt.equals(option.getOpt()) || opt.equals(option.getLongOpt()))
{
values.addAll(option.getValuesList());
}
}
- return values.isEmpty() ? null : (String[]) values.toArray(new String[values.size()]);
+ return values.isEmpty() ? null : values.toArray(new String[values.size()]);
}
/**
@@ -192,9 +191,7 @@ public class CommandLine implements Seri
private Option resolveOption(String opt)
{
opt = Util.stripLeadingHyphens(opt);
- for (Iterator it = options.iterator(); it.hasNext();)
- {
- Option option = (Option) it.next();
+ for (Option option : options) {
if (opt.equals(option.getOpt()))
{
return option;
@@ -268,13 +265,11 @@ public class CommandLine implements Seri
{
Properties props = new Properties();
- for (Iterator it = options.iterator(); it.hasNext();)
+ for (Option option : options)
{
- Option option = (Option) it.next();
-
if (opt.equals(option.getOpt()) || opt.equals(option.getLongOpt()))
{
- List values = option.getValuesList();
+ List<String> values = option.getValuesList();
if (values.size() >= 2)
{
// use the first 2 arguments as the key/value pair
@@ -310,7 +305,7 @@ public class CommandLine implements Seri
*
* @return remaining items passed in but not parsed as a <code>List</code>.
*/
- public List getArgList()
+ public List<String> getArgList()
{
return args;
}
@@ -375,12 +370,12 @@ public class CommandLine implements Seri
*/
public Option[] getOptions()
{
- Collection processed = options;
+ Collection<Option> processed = options;
// reinitialise array
Option[] optionsArray = new Option[processed.size()];
// return the array
- return (Option[]) processed.toArray(optionsArray);
+ return processed.toArray(optionsArray);
}
}
Modified: commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/DefaultParser.java
URL: http://svn.apache.org/viewvc/commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/DefaultParser.java?rev=1091539&r1=1091538&r2=1091539&view=diff
==============================================================================
--- commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/DefaultParser.java (original)
+++ commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/DefaultParser.java Tue Apr 12 18:57:29 2011
@@ -19,7 +19,6 @@ package org.apache.commons.cli;
import java.util.ArrayList;
import java.util.Enumeration;
-import java.util.Iterator;
import java.util.List;
import java.util.Properties;
@@ -51,7 +50,7 @@ public class DefaultParser implements Co
/** Flag indicating if tokens should no longer be analysed and simply added as arguments of the command line. */
protected boolean skipParsing;
- /** The required options expected to be found when parsing the command line. */
+ /** The required options and groups expected to be found when parsing the command line. */
protected List expectedOpts;
public CommandLine parse(Options options, String[] arguments) throws ParseException
@@ -104,9 +103,8 @@ public class DefaultParser implements Co
expectedOpts = new ArrayList(options.getRequiredOptions());
// clear the data from the groups
- for (Iterator it = options.getOptionGroups().iterator(); it.hasNext();)
+ for (OptionGroup group : options.getOptionGroups())
{
- OptionGroup group = (OptionGroup) it.next();
group.setSelected(null);
}
@@ -114,9 +112,9 @@ public class DefaultParser implements Co
if (arguments != null)
{
- for (int i = 0; i < arguments.length; i++)
+ for (String argument : arguments)
{
- handleToken(arguments[i]);
+ handleToken(argument);
}
}
@@ -387,7 +385,7 @@ public class DefaultParser implements Co
*/
private void handleLongOptionWithoutEqual(String token) throws ParseException
{
- List matchingOpts = options.getMatchingOptions(token);
+ List<String> matchingOpts = options.getMatchingOptions(token);
if (matchingOpts.isEmpty())
{
handleUnknownToken(currentToken);
@@ -398,7 +396,7 @@ public class DefaultParser implements Co
}
else
{
- handleOption(options.getOption((String) matchingOpts.get(0)));
+ handleOption(options.getOption(matchingOpts.get(0)));
}
}
@@ -420,7 +418,7 @@ public class DefaultParser implements Co
String opt = token.substring(0, pos);
- List matchingOpts = options.getMatchingOptions(opt);
+ List<String> matchingOpts = options.getMatchingOptions(opt);
if (matchingOpts.isEmpty())
{
handleUnknownToken(currentToken);
@@ -431,7 +429,7 @@ public class DefaultParser implements Co
}
else
{
- Option option = options.getOption((String) matchingOpts.get(0));
+ Option option = options.getOption(matchingOpts.get(0));
if (option.acceptsArg())
{
@@ -485,6 +483,7 @@ public class DefaultParser implements Co
}
else if (pos == -1)
{
+ // no equal sign found (-xxx)
if (options.hasShortOption(t))
{
handleOption(options.getOption(t));
@@ -521,6 +520,7 @@ public class DefaultParser implements Co
}
else
{
+ // equal sign found (-xxx=yyy)
String opt = t.substring(0, pos);
String value = t.substring(pos + 1);
@@ -595,7 +595,7 @@ public class DefaultParser implements Co
// check the previous option before handling the next one
checkRequiredArgs();
- option = (Option) option.clone();
+ option = option.clone();
updateRequiredOptions(option);
Modified: commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/HelpFormatter.java
URL: http://svn.apache.org/viewvc/commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/HelpFormatter.java?rev=1091539&r1=1091538&r2=1091539&view=diff
==============================================================================
--- commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/HelpFormatter.java (original)
+++ commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/HelpFormatter.java Tue Apr 12 18:57:29 2011
@@ -142,7 +142,7 @@ public class HelpFormatter
*
* Defaults to case-insensitive alphabetical sorting by option key
*/
- protected Comparator optionComparator = new OptionComparator();
+ protected Comparator<Option> optionComparator = new OptionComparator();
/**
* Sets the 'width'.
@@ -334,7 +334,7 @@ public class HelpFormatter
*
* @since 1.2
*/
- public Comparator getOptionComparator()
+ public Comparator<Option> getOptionComparator()
{
return optionComparator;
}
@@ -345,7 +345,7 @@ public class HelpFormatter
*
* @since 1.2
*/
- public void setOptionComparator(Comparator comparator)
+ public void setOptionComparator(Comparator<Option> comparator)
{
if (comparator == null)
{
@@ -544,12 +544,12 @@ public class HelpFormatter
StringBuffer buff = new StringBuffer(getSyntaxPrefix()).append(app).append(" ");
// create a list for processed option groups
- final Collection processedGroups = new ArrayList();
+ final Collection<OptionGroup> processedGroups = new ArrayList<OptionGroup>();
// temp variable
Option option;
- List optList = new ArrayList(options.getOptions());
+ List<Option> optList = new ArrayList<Option>(options.getOptions());
Collections.sort(optList, getOptionComparator());
// iterate over the options
for (Iterator i = optList.iterator(); i.hasNext();)
@@ -610,7 +610,7 @@ public class HelpFormatter
buff.append("[");
}
- List optList = new ArrayList(group.getOptions());
+ List<Option> optList = new ArrayList<Option>(group.getOptions());
Collections.sort(optList, getOptionComparator());
// for each option in the OptionGroup
for (Iterator i = optList.iterator(); i.hasNext();)
@@ -758,15 +758,14 @@ public class HelpFormatter
// sort options ascending
int max = 0;
StringBuffer optBuf;
- List prefixList = new ArrayList();
-
- List optList = options.helpOptions();
-
+ List<StringBuffer> prefixList = new ArrayList<StringBuffer>();
+
+ List<Option> optList = options.helpOptions();
+
Collections.sort(optList, getOptionComparator());
-
- for (Iterator i = optList.iterator(); i.hasNext();)
+
+ for (Option option : optList)
{
- Option option = (Option) i.next();
optBuf = new StringBuffer();
if (option.getOpt() == null)
@@ -1016,25 +1015,21 @@ public class HelpFormatter
* This class implements the <code>Comparator</code> interface
* for comparing Options.
*/
- private static class OptionComparator implements Comparator
+ private static class OptionComparator implements Comparator<Option>
{
-
/**
* Compares its two arguments for order. Returns a negative
* integer, zero, or a positive integer as the first argument
* is less than, equal to, or greater than the second.
*
- * @param o1 The first Option to be compared.
- * @param o2 The second Option to be compared.
+ * @param opt1 The first Option to be compared.
+ * @param opt2 The second Option to be compared.
* @return a negative integer, zero, or a positive integer as
* the first argument is less than, equal to, or greater than the
* second.
*/
- public int compare(Object o1, Object o2)
+ public int compare(Option opt1, Option opt2)
{
- Option opt1 = (Option) o1;
- Option opt2 = (Option) o2;
-
return opt1.getKey().compareToIgnoreCase(opt2.getKey());
}
}
Modified: commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/MissingOptionException.java
URL: http://svn.apache.org/viewvc/commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/MissingOptionException.java?rev=1091539&r1=1091538&r2=1091539&view=diff
==============================================================================
--- commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/MissingOptionException.java (original)
+++ commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/MissingOptionException.java Tue Apr 12 18:57:29 2011
@@ -28,7 +28,7 @@ import java.util.Iterator;
*/
public class MissingOptionException extends ParseException
{
- /** The list of missing options */
+ /** The list of missing options and groups */
private List missingOptions;
/**
Modified: commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/Option.java
URL: http://svn.apache.org/viewvc/commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/Option.java?rev=1091539&r1=1091538&r2=1091539&view=diff
==============================================================================
--- commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/Option.java (original)
+++ commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/Option.java Tue Apr 12 18:57:29 2011
@@ -72,7 +72,7 @@ public class Option implements Cloneable
private Class type = String.class;
/** the list of argument values **/
- private List values = new ArrayList();
+ private List<String> values = new ArrayList<String>();
/** the character that is the value separator */
private char valuesep;
@@ -482,7 +482,7 @@ public class Option implements Cloneable
*/
public String getValue()
{
- return hasNoValues() ? null : (String) values.get(0);
+ return hasNoValues() ? null : values.get(0);
}
/**
@@ -499,7 +499,7 @@ public class Option implements Cloneable
*/
public String getValue(int index) throws IndexOutOfBoundsException
{
- return hasNoValues() ? null : (String) values.get(index);
+ return hasNoValues() ? null : values.get(index);
}
/**
@@ -528,14 +528,14 @@ public class Option implements Cloneable
*/
public String[] getValues()
{
- return hasNoValues() ? null : (String[]) values.toArray(new String[values.size()]);
+ return hasNoValues() ? null : values.toArray(new String[values.size()]);
}
/**
* @return the values of this Option as a List
* or null if there are no values
*/
- public List getValuesList()
+ public List<String> getValuesList()
{
return values;
}
@@ -633,12 +633,12 @@ public class Option implements Cloneable
*
* @throws RuntimeException
*/
- public Object clone()
+ public Option clone()
{
try
{
Option option = (Option) super.clone();
- option.values = new ArrayList(values);
+ option.values = new ArrayList<String>(values);
return option;
}
catch (CloneNotSupportedException cnse)
Modified: commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/OptionGroup.java
URL: http://svn.apache.org/viewvc/commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/OptionGroup.java?rev=1091539&r1=1091538&r2=1091539&view=diff
==============================================================================
--- commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/OptionGroup.java (original)
+++ commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/OptionGroup.java Tue Apr 12 18:57:29 2011
@@ -35,7 +35,7 @@ public class OptionGroup implements Seri
private static final long serialVersionUID = 1L;
/** hold the options */
- private Map optionMap = new HashMap();
+ private Map<String, Option> optionMap = new HashMap<String, Option>();
/** the name of the selected option */
private String selected;
@@ -62,7 +62,7 @@ public class OptionGroup implements Seri
* @return the names of the options in this group as a
* <code>Collection</code>
*/
- public Collection getNames()
+ public Collection<String> getNames()
{
// the key set is the collection of names
return optionMap.keySet();
@@ -71,7 +71,7 @@ public class OptionGroup implements Seri
/**
* @return the options in this group as a <code>Collection</code>
*/
- public Collection getOptions()
+ public Collection<Option> getOptions()
{
// the values are the collection of options
return optionMap.values();
@@ -139,15 +139,15 @@ public class OptionGroup implements Seri
*/
public String toString()
{
- StringBuffer buff = new StringBuffer();
-
- Iterator iter = getOptions().iterator();
+ StringBuilder buff = new StringBuilder();
+
+ Iterator<Option> iter = getOptions().iterator();
buff.append("[");
while (iter.hasNext())
{
- Option option = (Option) iter.next();
+ Option option = iter.next();
if (option.getOpt() != null)
{
Modified: commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/OptionValidator.java
URL: http://svn.apache.org/viewvc/commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/OptionValidator.java?rev=1091539&r1=1091538&r2=1091539&view=diff
==============================================================================
--- commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/OptionValidator.java (original)
+++ commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/OptionValidator.java Tue Apr 12 18:57:29 2011
@@ -64,13 +64,11 @@ class OptionValidator
// handle the multi character opt
else
{
- char[] chars = opt.toCharArray();
-
- for (int i = 0; i < chars.length; i++)
+ for (char ch : opt.toCharArray())
{
- if (!isValidChar(chars[i]))
+ if (!isValidChar(ch))
{
- throw new IllegalArgumentException("The option '" + opt + "' contains an illegal character : '" + chars[i] + "'");
+ throw new IllegalArgumentException("The option '" + opt + "' contains an illegal character : '" + ch + "'");
}
}
}
Modified: commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/Options.java
URL: http://svn.apache.org/viewvc/commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/Options.java?rev=1091539&r1=1091538&r2=1091539&view=diff
==============================================================================
--- commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/Options.java (original)
+++ commons/proper/cli/trunk/src/main/java/org/apache/commons/cli/Options.java Tue Apr 12 18:57:29 2011
@@ -49,16 +49,16 @@ public class Options implements Serializ
private static final long serialVersionUID = 1L;
/** a map of the options with the character key */
- private Map shortOpts = new HashMap();
+ private Map<String, Option> shortOpts = new HashMap<String, Option>();
/** a map of the options with the long key */
- private Map longOpts = new HashMap();
+ private Map<String, Option> longOpts = new HashMap<String, Option>();
/** a map of the required options */
- private List requiredOpts = new ArrayList();
+ private List<Object> requiredOpts = new ArrayList<Object>();
/** a map of the option groups */
- private Map optionGroups = new HashMap();
+ private Map<String, OptionGroup> optionGroups = new HashMap<String, OptionGroup>();
/**
* Add the specified option group.
@@ -96,9 +96,9 @@ public class Options implements Serializ
*
* @return a Collection of OptionGroup instances.
*/
- Collection getOptionGroups()
+ Collection<OptionGroup> getOptionGroups()
{
- return new HashSet(optionGroups.values());
+ return new HashSet<OptionGroup>(optionGroups.values());
}
/**
@@ -170,7 +170,7 @@ public class Options implements Serializ
*
* @return read-only Collection of {@link Option} objects in this descriptor
*/
- public Collection getOptions()
+ public Collection<Option> getOptions()
{
return Collections.unmodifiableCollection(helpOptions());
}
@@ -180,9 +180,9 @@ public class Options implements Serializ
*
* @return the List of Options
*/
- List helpOptions()
+ List<Option> helpOptions()
{
- return new ArrayList(shortOpts.values());
+ return new ArrayList<Option>(shortOpts.values());
}
/**
@@ -208,10 +208,10 @@ public class Options implements Serializ
if (shortOpts.containsKey(opt))
{
- return (Option) shortOpts.get(opt);
+ return shortOpts.get(opt);
}
- return (Option) longOpts.get(opt);
+ return longOpts.get(opt);
}
/**
@@ -221,21 +221,17 @@ public class Options implements Serializ
* @return the options matching the partial name specified, or an empty list if none matches
* @since 1.3
*/
- public List getMatchingOptions(String opt)
+ public List<String> getMatchingOptions(String opt)
{
opt = Util.stripLeadingHyphens(opt);
- List matchingOpts = new ArrayList();
+ List<String> matchingOpts = new ArrayList<String>();
- Iterator it = longOpts.keySet().iterator();
- while (it.hasNext())
- {
- String longOpt = (String) it.next();
- if (longOpt.startsWith(opt))
- {
+ for (String longOpt : longOpts.keySet()) {
+ if (longOpt.startsWith(opt)) {
matchingOpts.add(longOpt);
}
- }
+ }
return matchingOpts;
}
@@ -290,7 +286,7 @@ public class Options implements Serializ
*/
public OptionGroup getOptionGroup(Option opt)
{
- return (OptionGroup) optionGroups.get(opt.getKey());
+ return optionGroups.get(opt.getKey());
}
/**