ArgsOptionParser

public class ArgsOptionParser
extends OptionSetter

java.lang.Object
com.android.tradefed.config.OptionSetter
com.android.tradefed.config.ArgsOptionParser


يملأ حقول Option من وسيطات سطر الأوامر الموزعة.

يتم تحليل السلاسل الموجودة في السلسلة التي تم تمريرها من اليسار إلى اليمين. يتم تصنيف كل سلسلة على أنها خيار قصير (مثل "-v") ، وخيار طويل (مثل "- overbose") ، وسيطة لخيار (مثل "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" يحصل تلقائيًا على رفيق "- no-name". إعطاء خيار "--flag" ، إذن ، "--flag" ، "- no-flag" ، "--flag = true" و "--flag = false" كلها صالحة ، على الرغم من عدم صلاحية "--flag" يُسمح باستخدام "true" أو "--flag false" (نظرًا لأن "--flag" يكفي بحد ذاته ، يتم تفسير "true" أو "false" التاليين بشكل منفصل). يمكنك استخدام "نعم" و "لا" كمرادفين لكل من "صواب" و "خطأ".

كل سلسلة لا تبدأ بـ "-" وليست وسيطة مطلوبة لخيار سابق هي وسيطة موضعية غير اختيارية ، كما هو الحال مع جميع السلاسل المتتالية. كل سلسلة بعد "-" هي وسيطة موضعية غير اختيارية.

يتم تحديث الحقول المقابلة للخيارات أثناء معالجة خياراتها. يتم إرجاع أي وسيطات موضعية متبقية على هيئة قائمة <سلسلة>.

إليك مثال بسيط:

 // 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)
  • وحدة بايثون "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.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)

يوزع وسيطات سطر الأوامر 'args' ، مع تعيين حقولOption لـ 'optionSource' المقدمة إلى المنشئ.

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) من الوسيطات ، ويمكن إجبارها على الاستمرار في التحليل حتى النهاية ، حتى لو لم يتم تحليل بعض args.

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)

إخراج نص تعليمات لجميع حقول Option بتنسيق optionObject .

سيكون نص التعليمات لكل خيار بالتنسيق التالي

   [-option_shortname, --option_name]          [option_description] Default:
   [current option field's value in optionObject]
 
سيتم حذف نص "Default ..." إذا كان حقل الخيار فارغًا أو فارغًا.

حدود
importantOnly boolean : إذا true ، اطبع التعليمات فقط للخيارات المهمة

optionObject Object : الكائن المطلوب طباعة نص التعليمات له

عائدات
String سلسلة تحتوي على نص تعليمات سهل الاستخدام لجميع حقول الخيار

تحليل

public  parse (String... args)

يوزع وسيطات سطر الأوامر 'args' ، مع تعيين حقولOption لـ 'optionSource' المقدمة إلى المنشئ.

حدود
args String

عائدات
ERROR(/List) من الحجج الموضعية المتبقية بعد معالجة جميع الخيارات.

رميات
ConfigurationException إذا حدث خطأ في تحليل الوسائط.

تحليل

public  parse ( args)

أسلوب parse(String) الذي يأخذ ERROR(/List) من الوسيطات

حدود
args

عائدات
ERROR(/List) من الحجج الموضعية المتبقية بعد معالجة جميع الخيارات.

رميات
ConfigurationException إذا حدث خطأ في تحليل الوسائط.

تحليل أفضل جهد

public  parseBestEffort ( args)

أسلوب parseBestEffort(String) البديل الذي يأخذ ERROR(/List) من الوسائط

حدود
args

عائدات
a ERROR(/List) من اليسار عبر الوسائط

تحليل أفضل جهد

public  parseBestEffort ( args, 
                boolean forceContinue)

البديل parseBestEffort(String) طريقة تأخذ ERROR(/List) من الوسيطات ، ويمكن إجبارها على الاستمرار في التحليل حتى النهاية ، حتى لو لم يتم تحليل بعض args.

حدود
args : قائمة تحتوي على اليسار فوق Args.

forceContinue boolean : صحيح إذا كان يجب أن يستمر في التحليل حتى لو لم يتم تحليل بعض args.

عائدات
a ERROR(/List) من اليسار عبر الوسائط

تحليل أفضل جهد

public  parseBestEffort (String... args)

نسخة من parse(String) . إذا تم طرح ConfigurationException ، يتم التقاط هذا الاستثناء داخليًا ، ويتم إرجاع الوسائط المتبقية (بما في ذلك الوسيطة التي تسببت في طرح الاستثناء). هذه الطريقة لا ترمي.

حدود
args String

عائدات
a ERROR(/List) من اليسار عبر الوسائط

ValidateMandatoryOptions

public void validateMandatoryOptions ()

التحقق من أن جميع الحقول التي تم وضع علامة عليها على أنها إلزامية قد تم تعيينها.

رميات
com.android.tradefed.config.ConfigurationException
ConfigurationException