// Decompiled by: Fernflower v0.6
// Date: 16.01.2011 23:15:47
// Copyright: 2008-2009, Stiver
// Home page: http://www.reversed-java.com
package org.apache.commons.cli;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Properties;
import org.apache.commons.cli.Option;
import org.apache.commons.cli.ParseException;
import org.apache.commons.cli.TypeHandler;
import org.apache.commons.cli.Util;
public class CommandLine implements Serializable {
private static final long serialVersionUID = 1L;
private List args = new LinkedList();
private List options = new ArrayList();
public boolean hasOption(String var1) {
return this.options.contains(this.resolveOption(var1));
}
public boolean hasOption(char var1) {
return this.hasOption(String.valueOf(var1));
}
public Object getOptionObject(String var1) {
try {
return this.getParsedOptionValue(var1);
} catch (ParseException var3) {
System.err.println("Exception found converting " + var1 + " to desired type: " + var3.getMessage());
return null;
}
}
public Object getParsedOptionValue(String var1) throws ParseException {
String var2 = this.getOptionValue(var1);
Option var3 = this.resolveOption(var1);
if(var3 == null) {
return null;
} else {
Object var4 = var3.getType();
return var2 == null?null:TypeHandler.createValue(var2, var4);
}
}
public Object getOptionObject(char var1) {
return this.getOptionObject(String.valueOf(var1));
}
public String getOptionValue(String var1) {
String[] var2 = this.getOptionValues(var1);
return var2 == null?null:var2[0];
}
public String getOptionValue(char var1) {
return this.getOptionValue(String.valueOf(var1));
}
public String[] getOptionValues(String var1) {
ArrayList var2 = new ArrayList();
Iterator var3 = this.options.iterator();
while(var3.hasNext()) {
Option var4 = (Option)var3.next();
if(var1.equals(var4.getOpt()) || var1.equals(var4.getLongOpt())) {
var2.addAll(var4.getValuesList());
}
}
return var2.equals("")?null:(String[])((String[])var2.toArray(new String[var2.size()]));
}
private Option resolveOption(String var1) {
var1 = Util.stripLeadingHyphens(var1);
Iterator var2 = this.options.iterator();
Option var3;
do {
if(!var2.hasNext()) {
return null;
}
var3 = (Option)var2.next();
if(var1.equals(var3.getOpt())) {
return var3;
}
} while(!var1.equals(var3.getLongOpt()));
return var3;
}
public String[] getOptionValues(char var1) {
return this.getOptionValues(String.valueOf(var1));
}
public String getOptionValue(String var1, String var2) {
String var3 = this.getOptionValue(var1);
return var3 != null?var3:var2;
}
public String getOptionValue(char var1, String var2) {
return this.getOptionValue(String.valueOf(var1), var2);
}
public Properties getOptionProperties(String var1) {
Properties var2 = new Properties();
Iterator var3 = this.options.iterator();
while(var3.hasNext()) {
Option var4 = (Option)var3.next();
if(var1.equals(var4.getOpt()) || var1.equals(var4.getLongOpt())) {
List var5 = var4.getValuesList();
if(var5.size() >= 2) {
var2.put(var5.get(0), var5.get(1));
} else if(var5.size() == 1) {
var2.put(var5.get(0), "true");
}
}
}
return var2;
}
public String[] getArgs() {
String[] var1 = new String[this.args.size()];
this.args.toArray(var1);
return var1;
}
public List getArgList() {
return this.args;
}
void addArg(String var1) {
this.args.add(var1);
}
void addOption(Option var1) {
this.options.add(var1);
}
public Iterator iterator() {
return this.options.iterator();
}
public Option[] getOptions() {
List var1 = this.options;
Option[] var2 = new Option[var1.size()];
return (Option[])((Option[])var1.toArray(var2));
}
}