// Path: RPi-Java-LedTable/src/net/mdp3/java/util/misc/ObjectNotInitializedException.java
// public class ObjectNotInitializedException extends Exception {
// 
// 	private static final long serialVersionUID = 2993512881656200086L;
// 
// 	public ObjectNotInitializedException() {
// 		super();
// 	}
// 
// 	/**
// 	 * @param message
// 	 */
// 	public ObjectNotInitializedException(String message) {
// 		super(message);
// 	}
// 
// 	/**
// 	 * @param cause
// 	 */
// 	public ObjectNotInitializedException(Throwable cause) {
// 		super(cause);
// 	}
// 
// 	/**
// 	 * @param message
// 	 * @param cause
// 	 */
// 	public ObjectNotInitializedException(String message, Throwable cause) {
// 		super(message, cause);
// 	}
// 
// 	/**
// 	 * @param message
// 	 * @param cause
// 	 * @param enableSuppression
// 	 * @param writableStackTrace
// 	 */
// 	public ObjectNotInitializedException(String message, Throwable cause,
// 			boolean enableSuppression, boolean writableStackTrace) {
// 		super(message, cause, enableSuppression, writableStackTrace);
// 	}
// 
// }


import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Logger;
import net.mdp3.java.util.misc.ObjectNotInitializedException;
	 * 
	 * @param prefixAr
	 */
	public void setPrefixList(String[] prefixAr) {
		if (prefixAr != null && prefixAr.length > 0)
			this.cmdPrefixList = Arrays.asList(prefixAr);
		else this.cmdPrefixList = Arrays.asList(DEFAULT_PREFIX_LIST);
	}
	
	/**
	 * Adds another prefix to the list, helpful if you want to use the default 
	 * list and an extra item or two
	 * 
	 * @param prefix
	 */
	public void addPrefix(String prefix) {
		this.cmdPrefixList.add(prefix);
	}
	
	/**
	 * Runs the argument runner against the object, returns a list of failed 
	 * arguments from the argList. A failure is when the command cannot be 
	 * found in the arg, not when the command doesnt exist on the object.
	 * 
	 * @return List<String> of failed arguments
	 * @throws InvocationTargetException 
	 * @throws IllegalArgumentException 
	 * @throws IllegalAccessException 
	 * @throws ObjectNotInitializedException 
	 */
// Path: RPi-Java-LedTable/src/net/mdp3/java/util/misc/ObjectNotInitializedException.java
// public class ObjectNotInitializedException extends Exception {
// 
// 	private static final long serialVersionUID = 2993512881656200086L;
// 
// 	public ObjectNotInitializedException() {
// 		super();
// 	}
// 
// 	/**
// 	 * @param message
// 	 */
// 	public ObjectNotInitializedException(String message) {
// 		super(message);
// 	}
// 
// 	/**
// 	 * @param cause
// 	 */
// 	public ObjectNotInitializedException(Throwable cause) {
// 		super(cause);
// 	}
// 
// 	/**
// 	 * @param message
// 	 * @param cause
// 	 */
// 	public ObjectNotInitializedException(String message, Throwable cause) {
// 		super(message, cause);
// 	}
// 
// 	/**
// 	 * @param message
// 	 * @param cause
// 	 * @param enableSuppression
// 	 * @param writableStackTrace
// 	 */
// 	public ObjectNotInitializedException(String message, Throwable cause,
// 			boolean enableSuppression, boolean writableStackTrace) {
// 		super(message, cause, enableSuppression, writableStackTrace);
// 	}
// 
// }


// Path: RPi-Java-LedTable/src/net/mdp3/java/util/console/ConsoleArgumentHandler.java
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Logger;
import net.mdp3.java.util.misc.ObjectNotInitializedException;

	 * 
	 * @param prefixAr
	 */
	public void setPrefixList(String[] prefixAr) {
		if (prefixAr != null && prefixAr.length > 0)
			this.cmdPrefixList = Arrays.asList(prefixAr);
		else this.cmdPrefixList = Arrays.asList(DEFAULT_PREFIX_LIST);
	}
	
	/**
	 * Adds another prefix to the list, helpful if you want to use the default 
	 * list and an extra item or two
	 * 
	 * @param prefix
	 */
	public void addPrefix(String prefix) {
		this.cmdPrefixList.add(prefix);
	}
	
	/**
	 * Runs the argument runner against the object, returns a list of failed 
	 * arguments from the argList. A failure is when the command cannot be 
	 * found in the arg, not when the command doesnt exist on the object.
	 * 
	 * @return List<String> of failed arguments
	 * @throws InvocationTargetException 
	 * @throws IllegalArgumentException 
	 * @throws IllegalAccessException 
	 * @throws ObjectNotInitializedException 
	 */
	public List<String> runArgs() throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, ObjectNotInitializedException {