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