ArgsOptionParser

public class ArgsOptionParser
extends OptionSetter

java.lang.ऑब्जेक्ट
com.android.tradefed.config.OptionSetter
com.android.tradefed.config.ArgsOptionParser


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

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

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

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

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

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

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

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

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

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

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

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

 // 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/आधारितefs/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)

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

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 यदि कॉन्फ़िगरेशन ऑब्जेक्ट अनुचित तरीके से कॉन्फ़िगर किया गया है।

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

getIopOptions

public  getInopOptions ()

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

रिटर्न

विकल्प सहायता प्राप्त करें

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)

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

पैरामीटर
args String

रिटर्न
सभी विकल्पों को संसाधित करने के बाद बची हुई स्थितीय तर्कों की एक ERROR(/List)

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

पार्स

public  parse ( args)

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

पैरामीटर
args

रिटर्न
सभी विकल्पों को संसाधित करने के बाद बची हुई स्थितीय तर्कों की एक ERROR(/List)

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

पार्सबेस्टएफ़र्ट

public  parseBestEffort ( args)

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

पैरामीटर
args

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

पार्सबेस्टएफ़र्ट

public  parseBestEffort ( args, 
                boolean forceContinue)

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

पैरामीटर
args : सूची जिसमें बचे हुए आर्ग शामिल होंगे।

forceContinue boolean : यह सच है कि इसे पार्स करना जारी रखना चाहिए, भले ही कुछ तर्क पार्स न करें।

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

पार्सबेस्टएफ़र्ट

public  parseBestEffort (String... args)

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

पैरामीटर
args String

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

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

public void validateMandatoryOptions ()

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

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