in client/example/src/main/java/org/apache/qpid/example/OptionParser.java [135:203]
private void parseOpts(String[] args)
{
String prevOpt = null;
for(String op: args)
{
// covers both -h and --help formats
if (op.startsWith("-"))
{
String key = op.substring(op.startsWith("--")? 2:1 ,
(op.indexOf('=') > 0) ?
op.indexOf('='):
op.length());
boolean match = false;
for (Option option: optDefs)
{
if ((op.startsWith("-") && option.getShortForm() != null && option.getShortForm().equals(key)) ||
(op.startsWith("--") && option.getLongForm() != null && option.getLongForm().equals(key)) )
{
match = true;
break;
}
}
if (!match)
{
System.out.println(op + " is not a valid option");
System.exit(0);
}
if (op.indexOf('=') > 0)
{
String val = extractValue(op.substring(op.indexOf('=')+1));
if (optMap.containsKey(key))
{
optMap.put(key, optMap.get(key) + "," + val);
}
else
{
optMap.put(key, val);
}
}
else
{
if (! optMap.containsKey(key)){ optMap.put(key, ""); }
prevOpt = key;
}
}
else if (prevOpt != null) // this is to catch broker localhost:5672 instead broker=localhost:5672
{
String val = extractValue(op);
if (optMap.containsKey(prevOpt) && !optMap.get(prevOpt).toString().equals(""))
{
optMap.put(prevOpt, optMap.get(prevOpt) + "," + val);
}
else
{
optMap.put(prevOpt, val);
}
prevOpt = null;
}
else
{
System.out.println(optMap);
throw new IllegalArgumentException(op + " is not a valid option");
}
}
}