import java.util.Vector ;
import java.util.Enumeration ;

/**
 * Classe de cr&eacute;ation / mise en forme de la ligne de commande &agrave; utiliser.<BR>
 * La cr&eacute;ation de la ligne de commande ne se fait qu'&agrave; l'appel de la fonction makeCommandLine().<BR>
 * Cela permet d'ajouter et de supprimer une option autant de fois que l'on veut, sans avoir &agrave; recr&eacute;er la chaine.
 */
public class LigneDeCommande {
    private Vector options ;
    private String commandline ;
    private String URL ;

    /**
     * Constructeur par d&eacute;faut.
     */
    public LigneDeCommande() {
	this(null) ;
    }
    
    /**
     * Cr&eacute;ation d'un objet <I>LigneDeCommande</I>.
     * @param URL L'URL du s&icirc;te &agrave; aspirer.
     */
    public LigneDeCommande(String URL) {
	options = new Vector() ;
	commandline = new String() ;
	this.URL = URL ;
    }
    
    /**
     * Une fonction priv&eacute;e qui sert aux fonctions unset* pour trouver la position d'une option dans
     * le vecteur.
     */
    private int find(String s) {
	int index = 0 ;
	for(Enumeration e = options.elements() ; e.hasMoreElements() ; index = index + 1){
	    if(e.nextElement().equals(s)) return index ;
	}
	return -1 ;
    }
    
    /**
     * Une autre version de la fonction find qui fait la comparaison sur des sous cha&icirc;nes.
     */
    private int findstr(String s) {
        int index = 0 ;
        for(Enumeration e = options.elements() ; e.hasMoreElements() ; index = index + 1){
	    if(s.regionMatches(0 , e.nextElement().toString() , 0 , s.length())) return index ;
	}
	return -1 ;
    }
	
    /** 
     * Modifie le contenu du vecteur &agrave; la position <i>index</i> pour le 
     * remplacer par la concat&eacute;nation des param&egrave;tres <i>opt</i> et <i>param</i>.
     * @param opt La cha&icirc;ne representant l'option
     * @param param La valeur du  param&egrave;tre
     */
    public void updateOpt(String opt , String newopt , String param) {
	int index = findstr(opt) ;
	if(index != -1)
	    options.setElementAt(newopt + param, index) ;
    }
    /**
     * Fonction de concatenation de la ligne de commande.
     * @return Une chaine contenant la ligne de commande complete (rpm y compris).
     */
    public String makeCommandLine() {
	commandline = new String() ;
	for(Enumeration e = options.elements() ; e.hasMoreElements() ;) {
	    commandline = commandline.concat(" ") ;
	    commandline = commandline.concat(e.nextElement().toString()) ;
	}
	if(URL != null)
	    return commandline + " " + URL;
	else
	    return commandline ;
    }
    
    public void setUrl(String url) {
	URL = url ;
    }
    public String getUrl() {
	return URL ;
    }
    /*************************
     * Basic Startup Options *
     *************************/
    
    /**
     * Ajoute l'option -V (--version) &agrave; la ligne de commande
     */
    public void setOptVersion() {
	options.addElement("-V");
    }
    /**
     * Efface l'option -V de la ligne de commande
     */
    public void unsetOptVersion(){
	int pos = find("-V") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }
    
    
    /**
     * Ajoute l'option -h (--help) &agrave; la ligne de commande
     */
    public void setOptHelp() {
	options.addElement("-h");
    }
    /**
     * Efface l'option -h de la ligne de commande
     */
    public void unsetOptHelp(){
	int pos = find("-h") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }


    /**
     * Ajoute l'option -b (--background) &agrave; la ligne de commande
     */
    public void setOptBackground() {
	options.addElement("-b");
    }
    /**
     * Efface l'option -b de la ligne de commande
     */
    public void unsetOptBackground(){
	int pos = find("-b") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }
    

    /**
     * Ajoute l'option -e &agrave; la ligne de commande
     * @param arg L'argument de l'option
     */
    public void setOptExecute(String arg) {
	options.addElement("-e " + arg);
    }
    /**
     * Efface l'option -e de la ligne de commande
     */
    public void unsetOptExecute(){
	int pos = findstr("-e ") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }





    /**********************************
     * LOGGING AND INPUT FILE OPTIONS *
     **********************************/

    /**
     * Ajoute l'option --output-file &agrave; la ligne de commande
     * @param arg L'argument de l'option
     */
    public void setOptOutputLog(String arg) {
	options.addElement("-o " + arg);
    }
    /**
     * Efface l'option -o de la ligne de commande
     */
    public void unsetOptOutputLog(){
	int pos = findstr("-o ") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }
    
    
    /**
     * Ajoute l'option -a (--append-output) &agrave; la ligne de commande
     * @param arg L'argument de l'option
     */
    public void setOptAppendLog(String arg) {
	options.addElement("-a " + arg);
    }
    /**
     * Efface l'option -a de la ligne de commande
     */
    public void unsetOptAppendLog(){
	int pos = findstr("-a ") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }
    

    /**
     * Ajoute l'option -d (--debug) &agrave; la ligne de commande
     */
    public void setOptDebug() {
	options.addElement("-d");
    }
    /**
     * Efface l'option -d de la ligne de commande
     */
    public void unsetOptDebug(){
	int pos = find("-d") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }
    
    
    /**
     * Ajoute l'option -q (--quiet) &agrave; la ligne de commande
     */
    public void setOptQuiet() {
	options.addElement("-q");
    }
    /**
     * Efface l'option -q de la ligne de commande
     */
    public void unsetOptQuiet(){
	int pos = find("-q") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }
    
    
    /**
     * Ajoute l'option -v (--verbose) a la ligne de commande
     */
    public void setOptVerbose() {
	options.addElement("-v");
    }
    /**
     * Efface l'option -v de la ligne de commande
     */
    public void unsetOptVerbose(){
	int pos = find("-v") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }
    

    /**
     * Ajoute l'option -nv (--non-verbose) &agrave; la ligne de commande
     */
    public void setOptNonVerbose() {
	options.addElement("-nv");
    }
    /**
     * Efface l'option -nv de la ligne de commande
     */
    public void unsetOptNonVerbose(){
	int pos = find("-nv") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }
    
    
    /**
     * Ajoute l'option -i (--input-file) &agrave; la ligne de commande
     * @param arg L'argument de l'option
     */
    public void setOptInputFile(String arg) {
	options.addElement("-i " + arg);
    }
    /**
     * Efface l'option -i de la ligne de commande
     */
    public void unsetOptInputFile(){
	int pos = findstr("-i ") ;
	if(pos != -1) 
	    options.removeElementAt(pos) ;
    }


    /**
     * Ajoute l'option -F (--force-html) &agrave; la ligne de commande
     */
    public void setOptForceHTML() {
	options.addElement("-F");
    }
    /**
     * Efface l'option -F de la ligne de commande
     */
    public void unsetOptForceHTML(){
	int pos = find("-F") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }
    


    /********************
     * DOWNLOAD OPTIONS *
     ********************/

    /**
     * Ajoute l'option -t (--tries) &agrave; la ligne de commande
     * @param arg L'argument de l'option
     */
    public void setOptTries(String arg) {
	options.addElement("-t " + arg);
    }
    /**
     * Efface l'option -t de la ligne de commande
     */
    public void unsetOptTries(){
	int pos = findstr("-t ") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }
    

    /**
     * Ajoute l'option -O (--output-document) &agrave; la ligne de commande
     * @param arg L'argument de l'option
     */
    public void setOptOutputDocument(String arg) {
	options.addElement("-O " + arg);
    }
    /**
     * Efface l'option -O de la ligne de commande
     */
    public void unsetOptOutputDocument(){
	int pos = findstr("-O ") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }
    

    /**
     * Ajoute l'option -nc (--no-clobber) &agrave; la ligne de commande
     */
    public void setOptNoClober() {
	options.addElement("-nc");
    }
    /**
     * Efface l'option -nc de la ligne de commande
     */
    public void unsetOptNoClober(){
	int pos = find("-nc") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }


    /**
     * Ajoute l'option -c (--continue) &agrave; la ligne de commande
     */
    public void setOptContinue() {
	options.addElement("-c");
    }
    /**
     * Efface l'option -c de la ligne de commande
     */
    public void unsetOptContinue(){
	int pos = find("-c") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }


    /**
     * Ajoute l'option --dot-style &agrave; la ligne de commande.
     */
    public void setOptDotStyle(String style) {
	options.addElement("--dot-style=" + style);
    }
    /**
     * Efface l'option  --dot-style de la ligne de commande
     */
    public void unsetOptDotStyle() {
	int pos = findstr("--dot-style") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }
    
    /**
     * Ajoute l'option -N (--timestamping) &agrave; la ligne de commande
     */
    public void setOptTimestamping() {
	options.addElement("-N");
    }
    /**
     * Efface l'option -N de la ligne de commande
     */
    public void unsetOptTimestamping(){
	int pos = find("-N") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }
    

    /**
     * Ajoute l'option -S (--server-response) &agrave; la ligne de commande
     */
    public void setOptServerResponse() {
	options.addElement("-S");
    }
    /**
     * Efface l'option -S de la ligne de commande
     */
    public void unsetOptServerResponse(){
	int pos = find("-S") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }
    

    /**
     * Ajoute l'option --spider &agrave; la ligne de commande
     */
    public void setOptSpider() {
	options.addElement("--spider");
    }
    /**
     * Efface l'option --spider de la ligne de commande
     */
    public void unsetOptSpider(){
	int pos = find("--spider") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }


    /**
     * Ajoute l'option -T (--timeout) &agrave; la ligne de commande
     * @param arg L'argument de l'option
     */
    public void setOptTimeout(String arg) {
	options.addElement("-T " + arg);
    }
    /**
     * Efface l'option -T de la ligne de commande
     */
    public void unsetOptTimeout(){
	int pos = findstr("-T ") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }

    /**
     * Ajoute l'option -w (--wait) &agrave; la ligne de commande
     * @param arg L'argument de l'option
     */
    public void setOptWait(String arg) {
	options.addElement("-w " + arg);
    }
    /**
     * Efface l'option -w de la ligne de commande
     */
    public void unsetOptWait(){
	int pos = findstr("-w ") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }


    /**
     * Ajoute l'option -Y (--proxy) &agrave; la ligne de commande
     * @param arg L'argument de l'option
     */
    public void setOptProxy(String arg) {
	options.addElement("-Y " + arg);
    }
    /**
     * Efface l'option -Y de la ligne de commande
     */
    public void unsetOptProxy(){
	int pos = findstr("-Y") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }

    /**
     * Ajoute l'option -Q (--quota) &agrave; la ligne de commande
     * @param arg L'argument de l'option
     */
    public void setOptQuota(String arg) {
	options.addElement("-Q " + arg);
    }
    /**
     * Efface l'option -Q de la ligne de commande
     */
    public void unsetOptQuota(){
	int pos = findstr("-Q ") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }



    /*********************
     * DIRECTORY OPTIONS *
     *********************/

    /**
     * Ajoute l'option -nd (--no-directories) &agrave; la ligne de commande
     */
    public void setOptNoDirectories() {
	options.addElement("-nd");
    }
    /**
     * Efface l'option -nd de la ligne de commande
     */
    public void unsetOptNoDirectories(){
	int pos = find("-nd") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }

    
    /**
     * Ajoute l'option -x (--force-directories) &agrave; la ligne de commande
     */
    public void setOptForceDirectories() {
	options.addElement("-x");
    }
    /**
     * Efface l'option -x de la ligne de commande
     */
    public void unsetOptForceDirectories(){
	int pos = find("-x") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }
    
    
    /**
     * Ajoute l'option -nH (--no-host-diretories) &agrave; la ligne de commande
     */
    public void setOptNoHostDirectories() {
	options.addElement("-nH");
    }
    /**
     * Efface l'option -nH de la ligne de commande
     */
    public void unsetOptNoHostDirectories(){
	int pos = find("-nH") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }

    
    /**
     * Ajoute l'option --cut-dirs &agrave; la ligne de commande.
     */
    public void setOptCutDirs(String style) {
	options.addElement("--cut-dirs=" + style);
    }
    /**
     * Efface l'option  --cut-dirs de la ligne de commande
     */
    public void unsetOptCutDirs() {
	int pos = findstr("--cut-dirs") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }

    /**
     * Ajoute l'option -P (--directory-prefix) &agrave; la ligne de commande
     * @param arg L'argument de l'option
     */
    public void setOptDirectoryPrefix(String arg) {
	options.addElement("-P " + arg);
    }
    /**
     * Efface l'option -P de la ligne de commande
     */
    public void unsetOptDirectoryPrefix(){
	int pos = findstr("-P ") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }



    /****************
     * HTTP OPTIONS *
     ****************/
 
    /**
     * Ajoute l'option --http-user &agrave; la ligne de commande.
     */
    public void setOptHTTPUser(String s) {
	options.addElement("--http-user=" + s);
    }
    /**
     * Efface l'option  --http-user de la ligne de commande
     */
    public void unsetOptHTTPUser() {
	int pos = findstr("--http-user") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }
    
    /**
     * Ajoute l'option --http-passwd &agrave; la ligne de commande.
     */
    public void setOptHTTPPassword(String s) {
	options.addElement("--http-passwd=" + s);
    }
    /**
     * Efface l'option  --http-passwd de la ligne de commande
     */
    public void unsetOptHTTPPassword() {
	int pos = findstr("--http-passwd") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }

    /**
     * Active l'option --cache=on (rien du tout en fait car c'est on par defaut.
     */
    public void setOptCache(String arg) {
	options.addElement("-C " + arg) ;
    }
    /**
     * Desactive le cache
     */
    public void unsetOptCache(){
	int pos = findstr("-C") ;
	if(pos != -1)
	    options.removeElementAt(pos);
    }
    
    /**
     * Ajoute l'option --ignore-length  a la ligne de commande
     */
    public void setOptIgnoreLength() {
	options.addElement("--ignore-length");
    }
    /**
     * Efface l'option --ignore-length de la ligne de commande
     */
    public void unsetOptIgnoreLength(){
	int pos = find("--ignore-length") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }

    
    /**
     * Ajoute l'option --header &agrave; la ligne de commande.
     */
    public void setOptHeader(String s) {
	options.addElement("--header=" + s);
    }
    /**
     * Efface l'option  --header de la ligne de commande
     */
    public void unsetOptHeader() {
	int pos = findstr("--header") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }
    
    /**
     * Ajoute l'option --proxy-user &agrave; la ligne de commande.
     */
    public void setOptProxyUser(String s) {
	options.addElement("--proxy-user=" + s);
    }
    /**
     * Efface l'option  --proxy-user de la ligne de commande
     */
    public void unsetOptProxyUser() {
	int pos = findstr("--proxy-user") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }

    /**
     * Ajoute l'option --proxy-passwd &agrave; la ligne de commande.
     */
    public void setOptProxyPassword(String s) {
	options.addElement("--proxy-passwd=" + s);
    }
    /**
     * Efface l'option  --proxy-passwd de la ligne de commande
     */
    public void unsetOptProxyPassword() {
	int pos = findstr("--proxy-passwd") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }

    /**
     * Ajoute l'option -s (--save-headers) &agrave; la ligne de commande
     */
    public void setOptSaveHeaders() {
	options.addElement("-s");
    }
    /**
     * Efface l'option -s de la ligne de commande
     */
    public void unsetOptSaveHeaders(){
	int pos = find("-s") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }

    /**
     * Ajoute l'option -U (--user-agent) &agrave; la ligne de commande
     * @param arg L'argument de l'option
     */
    public void setOptUserAgent(String arg) {
	options.addElement("-U " + arg);
    }
    /**
     * Efface l'option -U de la ligne de commande
     */
    public void unsetOptUserAgent(){
	int pos = findstr("-U ") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }


    /***************
     * FTP OPTIONS *
     ***************/

    /**
     * Ajoute l'option --retr-symlinks &agrave; la ligne de commande
     */
    public void setOptRetrieveSymlinks() {
	options.addElement("--retr-symlinks");
    }
    /**
     * Efface l'option --retr-symlinks de la ligne de commande
     */
    public void unsetOptRetrieveSymlinks(){
	int pos = find("--retr-symlinks") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }
    
    /**
     * Active le globbing
     */
    public void setOptGlob(String arg) {
	options.addElement("-g " + arg);
    }
    /**
     * Desactive le globbing
     */
    public void unsetOptGlob(){
	int pos = findstr("-g") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }

    /**
     * Ajoute l'option --passive-ftp  &agrave; la ligne de commande
     */
    public void setOptPassiveFTP() {
	options.addElement("--passive-ftp");
    }
    /**
     * Efface l'option --passive-ftp de la ligne de commande
     */
    public void unsetOptPassiveFTP(){
	int pos = find("--passive-ftp") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }
    

    /*******************************
     * RECURSIVE RETRIEVAL OPTIONS *
     *******************************/

    /**
     * Ajoute l'option -r (--recursive) &agrave; la ligne de commande
     */
    public void setOptRecursive() {
	options.addElement("-r");
    }
    /**
     * Efface l'option -r de la ligne de commande
     */
    public void unsetOptRecursive(){
	int pos = find("-r") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }

    /**
     * Ajoute l'option -l (--level) &agrave; la ligne de commande
     * @param arg L'argument de l'option
     */
    public void setOptLevel(String arg) {
	options.addElement("-l " + arg);
    }
    /**
     * Efface l'option -l de la ligne de commande
     */
    public void unsetOptLevel(){
	int pos = findstr("-l ") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }

    /**
     * Ajoute l'option --delete-after  &agrave; la ligne de commande
     */
    public void setOptDeleteAfter() {
	options.addElement("--delete-after");
    }
    /**
     * Efface l'option --delete-after de la ligne de commande
     */
    public void unsetOptDeleteAfter(){
	int pos = find("--delete-after") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }
    
    /**
     * Ajoute l'option -k (--convert-links) &agrave; la ligne de commande
     */
    public void setOptConvertLinks() {
	options.addElement("-k");
    }
    /**
     * Efface l'option -k de la ligne de commande
     */
    public void unsetOptConvertLinks(){
	int pos = find("-k") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }
    
    /**
     * Ajoute l'option -m (--mirror) &agrave; la ligne de commande
     */
    public void setOptMirror() {
	options.addElement("-m");
    }
    /**
     * Efface l'option -m de la ligne de commande
     */
    public void unsetOptMirror(){
	int pos = find("-m") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }

    /**
     * Ajoute l'option -nr (--dont-remove-listing) &agrave; la ligne de commande
     */
    public void setOptDontRemoveListing() {
	options.addElement("-nr");
    }
    /**
     * Efface l'option -nr de la ligne de commande
     */
    public void unsetOptDontRemoveListing(){
	int pos = find("-nr") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }



    /***********************************
     * RECURSIVE ACCEPT/REJECT OPTIONS *
     ***********************************/

    /**
     * Ajoute l'option -A (--accept) &agrave; la ligne de commande
     * @param arg L'argument de l'option (aclist)
     */
    public void setOptAccept(String arg) {
	options.addElement("-A " + arg);
    }
    /**
     * Efface l'option -A de la ligne de commande
     */
    public void unsetOptAccept(){
	int pos = findstr("-A ") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }

    /**
     * Ajoute l'option -R (--reject) &agrave; la ligne de commande
     * @param arg L'argument de l'option (rejlist)
     */
    public void setOptReject(String arg) {
	options.addElement("-R " + arg);
    }
    /**
     * Efface l'option -R de la ligne de commande
     */
    public void unsetOptReject(){
	int pos = findstr("-R ") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }

    /**
     * Ajoute l'option -D (--domains) &agrave; la ligne de commande
     * @param arg L'argument de l'option (domain-list)
     */
    public void setOptDomains(String arg) {
	options.addElement("-D " + arg);
    }
    /**
     * Efface l'option -D de la ligne de commande
     */
    public void unsetOptDomains(){
	int pos = findstr("-D ") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }

    /**
     * Ajoute l'option --exclude-domains &agrave; la ligne de commande
     * @param arg L'argument de l'option (domain-list)
     */
    public void setOptExcludeDomains(String arg) {
	options.addElement("--exclude-domains=" + arg);
    }
    /**
     * Efface l'option --exclude-domains de la ligne de commande
     */
    public void unsetOptExcludeDomains(){
	int pos = findstr("--exclude-domains") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }

    /**
     * Ajoute l'option -L (--relative) &agrave; la ligne de commande
     */
    public void setOptRelative() {
	options.addElement("-L");
    }
    /**
     * Efface l'option -L de la ligne de commande
     */
    public void unsetOptRelative(){
	int pos = find("-L") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }

    /**
     * Ajoute l'option --follow-ftp  &agrave; la ligne de commande
     */
    public void setOptFollowFTP() {
	options.addElement("--follow-ftp");
    }
    /**
     * Efface l'option --follow-ftp de la ligne de commande
     */
    public void unsetOptFollowFTP(){
	int pos = find("--follow-ftp") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }
    
    /**
     * Ajoute l'option -H (--span-hosts) &agrave; la ligne de commande
     */
    public void setOptSpanHosts() {
	options.addElement("-H");
    }
    /**
     * Efface l'option -H de la ligne de commande
     */
    public void unsetOptSpanHosts(){
	int pos = find("-H") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }

    /**
     * Ajoute l'option -I (--include-directories) &agrave; la ligne de commande
     * @param arg L'argument de l'option
     */
    public void setOptIncludeDirectory(String arg) {
	options.addElement("-I " + arg);
	options.addElement(arg);
    }
    /**
     * Efface l'option -I de la ligne de commande
     */
    public void unsetOptIncludeDirectory(){
	int pos = findstr("-I ") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }

    /**
     * Ajoute l'option -X (--exclude-directories) &agrave; la ligne de commande
     * @param arg L'argument de l'option
     */
    public void setOptExcludeDirectory(String arg) {
	options.addElement("-X " + arg);
    }
    /**
     * Efface l'option -X de la ligne de commande
     */
    public void unsetOptExcludeDirectory(){
	int pos = findstr("-X ") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }

    /**
     * Ajoute l'option -nh (--no-host-lookup) &agrave; la ligne de commande
     */
    public void setOptNoHostLookup() {
	options.addElement("-nh");
    }
    /**
     * Efface l'option -nh de la ligne de commande
     */
    public void unsetOptNoHostLookup(){
	int pos = find("-nh") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }

    /**
     * Ajoute l'option -np (--no-parent) &agrave; la ligne de commande
     */
    public void setOptNoParent() {
	options.addElement("-np");
    }
    /**
     * Efface l'option -np de la ligne de commande
     */
    public void unsetOptNoParent(){
	int pos = find("-np") ;
	if(pos != -1)
	    options.removeElementAt(pos) ;
    }


}



