ArgsOptionParser
public
class
ArgsOptionParser
extends OptionSetter
java.lang.Object | ||
↳ | com.android.tradefed.config.OptionSetter | |
↳ | com.android.tradefed.config.ArgsOptionParser |
पार्स किए गए कमांड लाइन आर्ग्युमेंट से Option
फ़ील्ड को अपने-आप भरता है.
पास-इन स्ट्रिंग[] में मौजूद स्ट्रिंग को बाएं से दाएं पार्स किया जाता है. हर स्ट्रिंग को विकल्प (जैसे कि "-v"), एक लंबा विकल्प (जैसे कि "--verbose"), किसी विकल्प का आर्ग्युमेंट (जैसे "out.txt" "-f 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".)
एक बूलियन लंबा विकल्प '--name' अपने आप '--कोई-नाम नहीं' प्राप्त करता है साथी. विकल्प दिया गया "--flag", फिर "--flag", "--no-flag", "--flag=true" और "--flag=false" हालांकि, ये सभी मान्य हैं न तो "--फ़्लैग सही" और न ही "--flag false" की अनुमति है (क्योंकि "--flag" अपने आप में काफ़ी है, इसलिए "सही" के बाद या "गलत" की व्याख्या अलग से की जाती है). "हां" का इस्तेमाल किया जा सकता है और "नहीं" समानार्थी शब्दों के रूप में "true" के लिए और "गलत" शामिल होने चाहिए.
हर स्ट्रिंग "-" से शुरू नहीं होती है और पिछले विकल्प का अपेक्षित तर्क नहीं है गैर-विकल्प स्थितिजक तर्क, क्योंकि सभी क्रमिक स्ट्रिंग हैं. "--" के बाद हर स्ट्रिंग एक है नॉन-विकल्प पोज़िशनल आर्ग्युमेंट.
विकल्पों के प्रोसेस होने के बाद, उनसे जुड़े फ़ील्ड अपडेट हो जाते हैं. बाकी बची रकम पोज़िशनल आर्ग्युमेंट को List<String> के तौर पर दिखाया जाता है.
यहां एक आसान उदाहरण दिया गया है:
// 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) { ... } ... }
- गेटऑप्ट(1) मैन पेज
- Python का "optparse" मॉड्यूल (http://docs.python.org/library/optparse.html)
- POSIX के "यूटिलिटी सिंटैक्स दिशा-निर्देश" (http://www.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap12.html#tag_12_02)
- GNU "कमांड लाइन इंटरफ़ेस के लिए मानक" (http://www.gnum.org/prep/standards/standards.html#Command_002dLine-Interfaces)
यह भी देखें:
खास जानकारी
सार्वजनिक कंस्ट्रक्टर | |
---|---|
ArgsOptionParser(
ऑब्जेक्ट के कलेक्शन के लिए |
|
ArgsOptionParser(Object... optionSources)
एक या उससे ज़्यादा ऑब्जेक्ट के लिए |
सार्वजनिक तरीके | |
---|---|
|
getInopOptions()
उन विकल्पों का सेट दिखाता है जिन्होंने किसी डिफ़ॉल्ट वैल्यू में बदलाव नहीं किया. |
static
String
|
getOptionHelp(boolean importantOnly, Object optionObject)
optionObject में सभी |
|
parse(String... args)
यह कमांड लाइन आर्ग्युमेंट 'orgs' को पार्स करता है. साथ ही, 'optionSource' में @Option फ़ील्ड सेट करता है कंस्ट्रक्टर को दिया जाता है. |
|
parse(
|
|
parseBestEffort(
|
|
parseBestEffort(
|
|
parseBestEffort(String... args)
|
void
|
validateMandatoryOptions()
यह पुष्टि करता है कि 'ज़रूरी' के तौर पर मार्क किए गए सभी फ़ील्ड सेट कर दिए गए हैं. |
सार्वजनिक कंस्ट्रक्टर
ArgsOptionParser
public ArgsOptionParser (optionSources)
ऑब्जेक्ट के कलेक्शन के लिए ArgsOptionParser
बनाता है.
पैरामीटर | |
---|---|
optionSources |
: कॉन्फ़िगरेशन ऑब्जेक्ट. |
थ्रो | |
---|---|
ConfigurationException |
अगर कॉन्फ़िगरेशन ऑब्जेक्ट गलत तरीके से कॉन्फ़िगर किए गए हैं. |
ArgsOptionParser
public ArgsOptionParser (Object... optionSources)
एक या उससे ज़्यादा ऑब्जेक्ट के लिए ArgsOptionParser
बनाता है.
पैरामीटर | |
---|---|
optionSources |
Object : कॉन्फ़िगरेशन ऑब्जेक्ट. |
थ्रो | |
---|---|
ConfigurationException |
अगर कॉन्फ़िगरेशन ऑब्जेक्ट गलत तरीके से कॉन्फ़िगर किए गए हैं. |
सार्वजनिक तरीके
getInopOptions
publicgetInopOptions ()
उन विकल्पों का सेट दिखाता है जिन्होंने किसी डिफ़ॉल्ट वैल्यू में बदलाव नहीं किया.
रिटर्न | |
---|---|
|
getOptionसहायता
public static String getOptionHelp (boolean importantOnly, Object optionObject)
optionObject में सभी Option
फ़ील्ड के लिए आउटपुट सहायता टेक्स्ट.
हर विकल्प का सहायता टेक्स्ट इस फ़ॉर्मैट में होगा
[-option_shortname, --option_name] [option_description] Default: [current option field's value in optionObject]
पैरामीटर | |
---|---|
importantOnly |
boolean : अगर true सिर्फ़ ज़रूरी विकल्पों के लिए सहायता प्रिंट करता है |
optionObject |
Object : वह ऑब्जेक्ट जिसके लिए सहायता टेक्स्ट प्रिंट करना है |
रिटर्न | |
---|---|
String |
स्ट्रिंग, जिसमें सभी विकल्प फ़ील्ड के लिए इस्तेमाल में आसान सहायता टेक्स्ट होता है |
पार्स करें
publicparse (String... args)
यह कमांड लाइन आर्ग्युमेंट 'orgs' को पार्स करता है. साथ ही, 'optionSource' में @Option फ़ील्ड सेट करता है कंस्ट्रक्टर को दिया जाता है.
पैरामीटर | |
---|---|
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.Configurationअपवाद |
ConfigurationException |