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( optionSources)

ऑब्जेक्ट के कलेक्शन के लिए ArgsOptionParser बनाता है.

ArgsOptionParser(Object... optionSources)

एक या उससे ज़्यादा ऑब्जेक्ट के लिए ArgsOptionParser बनाता है.

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

getInopOptions()

उन विकल्पों का सेट दिखाता है जिन्होंने किसी डिफ़ॉल्ट वैल्यू में बदलाव नहीं किया.

static String getOptionHelp(boolean importantOnly, Object optionObject)

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

parse(String... args)

यह कमांड लाइन आर्ग्युमेंट 'orgs' को पार्स करता है. साथ ही, 'optionSource' में @Option फ़ील्ड सेट करता है कंस्ट्रक्टर को दिया जाता है.

parse( args)

parse(String) का दूसरा तरीका, जिसमें ERROR(/List) आर्ग्युमेंट इस्तेमाल किए जाते हैं

parseBestEffort( args)

parseBestEffort(String) का दूसरा तरीका, जिसमें ERROR(/List) की ज़रूरत होती है तर्क

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 ()

उन विकल्पों का सेट दिखाता है जिन्होंने किसी डिफ़ॉल्ट वैल्यू में बदलाव नहीं किया.

रिटर्न

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 स्ट्रिंग, जिसमें सभी विकल्प फ़ील्ड के लिए इस्तेमाल में आसान सहायता टेक्स्ट होता है

पार्स करें

public  parse (String... args)

यह कमांड लाइन आर्ग्युमेंट 'orgs' को पार्स करता है. साथ ही, 'optionSource' में @Option फ़ील्ड सेट करता है कंस्ट्रक्टर को दिया जाता है.

पैरामीटर
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.Configurationअपवाद
ConfigurationException