ArgsOptionParser

public class ArgsOptionParser
extends OptionSetter

java.lang.Object
com.android.tradefed.config.OptionSetter
com.android.tradefed.config.ArgsOptionParser


पार्स किए गए कमांड लाइन तर्कों से Option फ़ील्ड पॉप्युलेट करता है।

पारित स्ट्रिंग [] में स्ट्रिंग्स को बाएं से दाएं पार्स किया गया है। प्रत्येक स्ट्रिंग को एक छोटे विकल्प (जैसे "-v"), एक लंबे विकल्प (जैसे "--verbose"), एक विकल्प के लिए एक तर्क (जैसे "-f out.txt" में "out.txt") के रूप में वर्गीकृत किया गया है। "), या एक गैर-विकल्प स्थितीय तर्क।

प्रत्येक विकल्प तर्क को एक या अधिक Option फ़ील्ड में मैप करना चाहिए। एक लंबा विकल्प Option नाम के लिए मैप करता है, और एक छोटा विकल्प Option संक्षिप्त नाम के लिए मैप करता है। प्रत्येक विकल्प का नाम और विकल्प का संक्षिप्त नाम एक ही वस्तु के भीतर अन्य सभी Option क्षेत्रों के संबंध में अद्वितीय होना चाहिए।

एक ही विकल्प तर्क को एकाधिक ऑब्जेक्ट में समान नाम वाले एकाधिक Option फ़ील्ड में मैप किया जा सकता है। Option तर्कों को उस ऑब्जेक्ट के पूर्ण वर्ग नाम या इसके Option उपनाम मान को ':' द्वारा अलग करके किसी एकल ऑब्जेक्ट के भीतर विशिष्ट रूप से संदर्भित OptionClass के लिए नामित किया जा सकता है। यानी

 --classname:optionname optionvalue or
 --optionclassalias:optionname optionvalue.
 

एक साधारण लघु विकल्प एक "-" है जिसके बाद एक छोटा विकल्प वर्ण होता है। यदि विकल्प को एक तर्क की आवश्यकता है (जो किसी भी गैर-बूलियन विकल्प के लिए सही है), तो इसे एक अलग पैरामीटर के रूप में लिखा जा सकता है, लेकिन इसकी आवश्यकता नहीं है। यानी, "-f out.txt" और "-fout.txt" दोनों स्वीकार्य हैं।

एक "-" के बाद कई छोटे विकल्पों को निर्दिष्ट करना संभव है जब तक कि सभी (संभवतः अंतिम को छोड़कर) को तर्कों की आवश्यकता न हो।

एक लंबा विकल्प "--" से शुरू होता है जिसके बाद कई वर्ण होते हैं। यदि विकल्प को एक तर्क की आवश्यकता होती है, तो इसे सीधे विकल्प नाम के बाद लिखा जा सकता है, "=" द्वारा अलग किया जा सकता है, या अगले तर्क के रूप में। (यानी, "--file=out.txt" या "--file out.txt"।)

एक बूलियन लंबा विकल्प '--नाम' स्वचालित रूप से '--नो-नाम' साथी प्राप्त करता है। एक विकल्प "--flag" दिया गया है, फिर, "--flag", "--no-flag", "--flag=true" और "--flag=false" सभी मान्य हैं, हालांकि न तो "--flag सत्य" और न ही "-झंडा झूठा" की अनुमति है (चूंकि "--ध्वज" अपने आप में पर्याप्त है, निम्नलिखित "सत्य" या "गलत" की अलग से व्याख्या की जाती है)। आप "हाँ" और "नहीं" का उपयोग "सत्य" और "असत्य" के पर्यायवाची के रूप में कर सकते हैं।

प्रत्येक स्ट्रिंग जो "-" से शुरू नहीं होती है और पिछले विकल्प का आवश्यक तर्क नहीं है, एक गैर-विकल्प स्थितीय तर्क है, जैसा कि सभी क्रमिक स्ट्रिंग्स हैं। "--" के बाद प्रत्येक स्ट्रिंग एक गैर-विकल्प स्थितीय तर्क है।

विकल्पों से संबंधित फ़ील्ड अपडेट किए जाते हैं क्योंकि उनके विकल्प संसाधित होते हैं। किसी भी शेष स्थितीय तर्क को सूची <स्ट्रिंग> के रूप में लौटाया जाता है।

यहाँ एक सरल उदाहरण है:

 // Non-@Option fields will be ignored.
 class Options {
     @Option(name = "quiet", shortName = 'q')
     boolean quiet = false;

     // Here the user can use --no-color.
     @Option(name = "color")
     boolean color = true;

     @Option(name = "mode", shortName = 'm')
     String mode = "standard; // Supply a default just by setting the field.

     @Option(name = "port", shortName = 'p')
     int portNumber = 8888;

     // There's no need to offer a short name for rarely-used options.
     @Option(name = "timeout" )
     double timeout = 1.0;

     @Option(name = "output-file", shortName = 'o' })
     File output;

     // Multiple options are added to the collection.
     // The collection field itself must be non-null.
     @Option(name = "input-file", shortName = 'i')
     List<File> inputs = new ArrayList<File>();

 }

 Options options = new Options();
 List<String> posArgs = new OptionParser(options).parse("--input-file", "/tmp/file1.txt");
 for (File inputFile : options.inputs) {
     if (!options.quiet) {
        ...
     }
     ...

 }

 
यह भी देखें:
  • getopt(1) मैन पेज
  • पायथन का "ऑप्टपर्स" मॉड्यूल (http://docs.python.org/library/optparse.html)
  • POSIX "यूटिलिटी सिंटैक्स दिशानिर्देश" (http://www.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap12.html#tag_12_02)
  • जीएनयू "कमांड लाइन इंटरफेस के लिए मानक" (http://www.gnu.org/prep/standards/standards.html#Command_002dLine-Interfaces)

यह सभी देखें:

सारांश

सार्वजनिक निर्माणकर्ता

ArgsOptionParser ( optionSources) ArgsOptionParser ( optionSources)

वस्तुओं के संग्रह के लिए ArgsOptionParser बनाता है।

ArgsOptionParser (Object... optionSources)

एक या अधिक ऑब्जेक्ट के लिए ArgsOptionParser बनाता है।

सार्वजनिक तरीके

getInopOptions ()

उन विकल्पों का सेट लौटाता है जिन्होंने कोई डिफ़ॉल्ट मान नहीं बदला।

static String getOptionHelp (boolean importantOnly, Object optionObject)

सभी Option फ़ील्ड के लिए आउटपुट सहायता पाठ optionObject .

parse (String... args)

कंस्ट्रक्टर को प्रदान किए गए 'विकल्प स्रोत' के @Option फ़ील्ड को सेट करते हुए कमांड-लाइन तर्क 'तर्क' को पार्स करता है।

parse ( args) parse ( args)

वैकल्पिक parse(String) विधि जो तर्कों की ERROR(/List) लेती है

parseBestEffort ( args) parseBestEffort ( args)

वैकल्पिक parseBestEffort(String) विधि जो तर्कों की ERROR(/List) लेती है

parseBestEffort ( args, boolean forceContinue) parseBestEffort ( args, boolean forceContinue)

वैकल्पिक parseBestEffort(String) विधि जो तर्कों की ERROR(/List) लेती है, और अंत तक पार्सिंग जारी रखने के लिए मजबूर किया जा सकता है, भले ही कुछ तर्क पार्स न करें।

parseBestEffort (String... args)

parse(String) का सर्वोत्तम प्रयास संस्करण।

void validateMandatoryOptions ()

पुष्टि करता है कि अनिवार्य के रूप में चिह्नित सभी फ़ील्ड सेट कर दिए गए हैं।

सार्वजनिक निर्माणकर्ता

ArgsOptionParser

public ArgsOptionParser ( optionSources)

वस्तुओं के संग्रह के लिए ArgsOptionParser बनाता है।

पैरामीटर
optionSources : कॉन्फ़िगरेशन ऑब्जेक्ट्स।

फेंकता
ConfigurationException यदि कॉन्फ़िग ऑब्जेक्ट अनुचित तरीके से कॉन्फ़िगर किया गया है।

ArgsOptionParser

public ArgsOptionParser (Object... optionSources)

एक या अधिक ऑब्जेक्ट के लिए ArgsOptionParser बनाता है।

पैरामीटर
optionSources Object : कॉन्फ़िगरेशन ऑब्जेक्ट।

फेंकता
ConfigurationException यदि कॉन्फ़िग ऑब्जेक्ट अनुचित तरीके से कॉन्फ़िगर किया गया है।

सार्वजनिक तरीके

getInopOptions

public  getInopOptions ()

उन विकल्पों का सेट लौटाता है जिन्होंने कोई डिफ़ॉल्ट मान नहीं बदला।

रिटर्न

getOptionHelp

public static String getOptionHelp (boolean importantOnly, 
                Object optionObject)

सभी Option फ़ील्ड के लिए आउटपुट सहायता पाठ optionObject .

प्रत्येक विकल्प के लिए सहायता पाठ निम्न प्रारूप में होगा

   [-option_shortname, --option_name]          [option_description] Default:
   [current option field's value in optionObject]
 
यदि विकल्प फ़ील्ड शून्य या खाली है तो 'डिफ़ॉल्ट..." पाठ हटा दिया जाएगा।

पैरामीटर
importantOnly boolean : यदि true तो केवल महत्वपूर्ण विकल्पों के लिए प्रिंट सहायता

optionObject Object : वह ऑब्जेक्ट जिसके लिए सहायता टेक्स्ट प्रिंट करना है

रिटर्न
String एक स्ट्रिंग जिसमें सभी विकल्प फ़ील्ड के लिए उपयोगकर्ता के अनुकूल सहायता टेक्स्ट है

पार्स

public  parse (String... args)

कंस्ट्रक्टर को प्रदान किए गए 'विकल्प स्रोत' के @Option फ़ील्ड को सेट करते हुए कमांड-लाइन तर्क 'तर्क' को पार्स करता है।

पैरामीटर
args String

रिटर्न
सभी विकल्पों को संसाधित करने के बाद छोड़े गए स्थितीय तर्कों की एक ERROR(/List)

फेंकता
ConfigurationException अगर तर्कों को पार्स करने में त्रुटि हुई।

पार्स

public  parse ( args)

वैकल्पिक parse(String) विधि जो तर्कों की ERROR(/List) लेती है

पैरामीटर
args

रिटर्न
सभी विकल्पों को संसाधित करने के बाद छोड़े गए स्थितीय तर्कों की एक ERROR(/List)

फेंकता
ConfigurationException अगर तर्कों को पार्स करने में त्रुटि हुई।

parseBestEffort

public  parseBestEffort ( args)

वैकल्पिक parseBestEffort(String) विधि जो तर्कों की ERROR(/List) लेती है

पैरामीटर
args

रिटर्न
बचे हुए तर्कों की एक ERROR(/List)

parseBestEffort

public  parseBestEffort ( args, 
                boolean forceContinue)

वैकल्पिक parseBestEffort(String) विधि जो तर्कों की ERROR(/List) लेती है, और अंत तक पार्सिंग जारी रखने के लिए मजबूर किया जा सकता है, भले ही कुछ तर्क पार्स न करें।

पैरामीटर
args : सूची जिसमें बायीं ओर तर्क होंगे।

forceContinue boolean : सच है अगर कुछ आर्ग्स पार्स नहीं करते हैं तो भी इसे पार्स करना जारी रखना चाहिए।

रिटर्न
बचे हुए तर्कों की एक ERROR(/List)

parseBestEffort

public  parseBestEffort (String... args)

parse(String) का सर्वोत्तम प्रयास संस्करण। यदि कोई कॉन्फ़िगरेशन अपवाद फेंक दिया जाता है, तो उस अपवाद को आंतरिक रूप से कैप्चर किया जाता है, और शेष तर्क (तर्क सहित जो अपवाद को फेंकने का कारण बनता है) लौटाए जाते हैं। यह विधि फेंकती नहीं है।

पैरामीटर
args String

रिटर्न
बचे हुए तर्कों की एक ERROR(/List)

मान्य अनिवार्य विकल्प

public void validateMandatoryOptions ()

पुष्टि करता है कि अनिवार्य के रूप में चिह्नित सभी फ़ील्ड सेट कर दिए गए हैं।

फेंकता
com.android.tradefed.config.ConfigurationException
ConfigurationException