ArgsOptionParser
public class ArgsOptionParser
extends OptionSetter
java.lang.ऑब्जेक्ट | ||
↳ | com.android.tradefed.config.OptionSetter | |
↳ | com.android.tradefed.config.ArgsOptionParser |
पार्स किए गए कमांड लाइन तर्कों से Option
फ़ील्ड को पॉप्युलेट करता है।
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 (Object... optionSources) एक या अधिक ऑब्जेक्ट के लिए |
सार्वजनिक तरीके | |
---|---|
getInopOptions () उन विकल्पों का सेट लौटाता है जिन्होंने कोई डिफ़ॉल्ट मान नहीं बदला। | |
static String | getOptionHelp (boolean importantOnly, Object optionObject) सभी |
parse (String... args) कंस्ट्रक्टर को प्रदान किए गए 'ऑप्शनसोर्स' के @ऑप्शन फ़ील्ड सेट करते हुए, कमांड-लाइन तर्क 'आर्ग्स' को पार्स करता है। | |
parse ( args) parse ( args) वैकल्पिक | |
parseBestEffort ( args) parseBestEffort ( args) वैकल्पिक | |
parseBestEffort ( args, boolean forceContinue) parseBestEffort ( args, boolean forceContinue) वैकल्पिक | |
parseBestEffort (String... args) | |
void | validateMandatoryOptions () पुष्टि करता है कि अनिवार्य के रूप में चिह्नित सभी फ़ील्ड सेट कर दिए गए हैं। |
सार्वजनिक निर्माणकर्ता
ArgsOptionParser
public ArgsOptionParser (optionSources)
वस्तुओं के संग्रह के लिए ArgsOptionParser
बनाता है।
पैरामीटर | |
---|---|
optionSources |
फेंकता | |
---|---|
ConfigurationException | यदि कॉन्फ़िगरेशन ऑब्जेक्ट अनुचित तरीके से कॉन्फ़िगर किया गया है। |
ArgsOptionParser
public ArgsOptionParser (Object... optionSources)
एक या अधिक ऑब्जेक्ट के लिए ArgsOptionParser
बनाता है।
पैरामीटर | |
---|---|
optionSources | Object : कॉन्फ़िगरेशन ऑब्जेक्ट। |
फेंकता | |
---|---|
ConfigurationException | यदि कॉन्फ़िगरेशन ऑब्जेक्ट अनुचित तरीके से कॉन्फ़िगर किया गया है। |
सार्वजनिक तरीके
getIopOptions
publicgetInopOptions ()
उन विकल्पों का सेट लौटाता है जिन्होंने कोई डिफ़ॉल्ट मान नहीं बदला।
रिटर्न | |
---|---|
विकल्प सहायता प्राप्त करें
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 | एक स्ट्रिंग जिसमें सभी विकल्प फ़ील्ड के लिए उपयोगकर्ता के अनुकूल सहायता टेक्स्ट शामिल है |
पार्स
publicparse (String... args)
कंस्ट्रक्टर को प्रदान किए गए 'ऑप्शनसोर्स' के @ऑप्शन फ़ील्ड सेट करते हुए, कमांड-लाइन तर्क 'आर्ग्स' को पार्स करता है।
पैरामीटर | |
---|---|
args | String |
रिटर्न | |
---|---|
सभी विकल्पों को संसाधित करने के बाद बची हुई स्थितीय तर्कों की एक ERROR(/List) । |
फेंकता | |
---|---|
ConfigurationException | यदि तर्कों को पार्स करने में त्रुटि हुई। |
पार्स
publicparse ( args)
वैकल्पिक parse(String)
विधि जो तर्कों की एक ERROR(/List)
लेती है
पैरामीटर | |
---|---|
args |
रिटर्न | |
---|---|
सभी विकल्पों को संसाधित करने के बाद बची हुई स्थितीय तर्कों की एक ERROR(/List) । |
फेंकता | |
---|---|
ConfigurationException | यदि तर्कों को पार्स करने में त्रुटि हुई। |
पार्सबेस्टएफ़र्ट
publicparseBestEffort ( args)
वैकल्पिक parseBestEffort(String)
विधि जो तर्कों की ERROR(/List)
लेती है
पैरामीटर | |
---|---|
args |
रिटर्न | |
---|---|
बचे हुए तर्कों की एक ERROR(/List) |
पार्सबेस्टएफ़र्ट
publicparseBestEffort ( args, boolean forceContinue)
वैकल्पिक parseBestEffort(String)
विधि जो तर्कों की एक ERROR(/List)
लेती है, और अंत तक पार्सिंग जारी रखने के लिए मजबूर किया जा सकता है, भले ही कुछ तर्क पार्स न करें।
पैरामीटर | |
---|---|
args | |
forceContinue | boolean : यह सच है कि इसे पार्स करना जारी रखना चाहिए, भले ही कुछ तर्क पार्स न करें। |
रिटर्न | |
---|---|
बचे हुए तर्कों की एक ERROR(/List) |
पार्सबेस्टएफ़र्ट
publicparseBestEffort (String... args)
parse(String)
का सर्वोत्तम प्रयास वाला संस्करण। यदि कोई कॉन्फ़िगरेशन अपवाद फेंक दिया जाता है, तो उस अपवाद को आंतरिक रूप से कैप्चर किया जाता है, और शेष तर्क (उस तर्क सहित जिसके कारण अपवाद को फेंक दिया गया) वापस कर दिया जाता है। यह विधि फेंकती नहीं है.
पैरामीटर | |
---|---|
args | String |
रिटर्न | |
---|---|
बचे हुए तर्कों की एक ERROR(/List) |
मान्य अनिवार्य विकल्प
public void validateMandatoryOptions ()
पुष्टि करता है कि अनिवार्य के रूप में चिह्नित सभी फ़ील्ड सेट कर दिए गए हैं।
फेंकता | |
---|---|
| com.android.tradefed.config.ConfigurationException |
ConfigurationException |