1 /*==================================================================== 2 3 ObjectWeb Util CommandLine Package. 4 Copyright (C) 2002 INRIA & USTL - LIFL - GOAL 5 Contact: architecture@objectweb.org 6 7 This library is free software; you can redistribute it and/or 8 modify it under the terms of the GNU Lesser General Public 9 License as published by the Free Software Foundation; either 10 version 2.1 of the License, or any later version. 11 12 This library is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 Lesser General Public License for more details. 16 17 You should have received a copy of the GNU Lesser General Public 18 License along with this library; if not, write to the Free Software 19 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 20 USA 21 22 Initial developer(s): Philippe Merle. 23 Contributor(s): ______________________________________. 24 25 ====================================================================*/ 26 27 package org.objectweb.util.cmdline.api; 28 29 /** 30 * The Option interface offers an abstraction of command line options. 31 * 32 * Command line options have an associated usage. 33 * 34 * @author <a HREF="mailto:Philippe.Merle@lifl.fr">Philippe Merle</a> 35 * 36 * @version 0.1 37 */ 38 39 public interface Option 40 extends Usage 41 { 42 /** 43 * Is it a mandatory option? 44 * 45 * @return true if it is a mandatory option. 46 */ 47 public boolean 48 isMandatory(); 49 50 /** 51 * Sets the mandatory option status. 52 * 53 * @param mandatory true if it is a mandatory option. 54 */ 55 public void 56 setMandatory(boolean mandatory); 57 58 /** 59 * Obtains the Set status of the option. 60 * 61 * @return true if the option was set during 62 * the command line argument parsing. 63 */ 64 public boolean 65 isSet(); 66 67 /** 68 * Checks the current command line argument. 69 * 70 * @param current The current command line argument. 71 * 72 * @return true if the option accepts this argument. 73 */ 74 public boolean 75 check(String current); 76 77 /** 78 * Consumes command line arguments from an iterator. 79 * 80 * @param iterator The command line argument iterator. 81 */ 82 public void 83 consume(Iterator iterator); 84 } 85