ArgsOptionParser
public
class
ArgsOptionParser
extends OptionSetter
java.lang.Object | ||
↳ | com.android.tradefed.config.OptionSetter | |
↳ | com.android.tradefed.config.ArgsOptionParser |
تعبئ حقول Option
من وسيطات سطر الأوامر التي تم تحليلها.
يتمّ تحليل السلاسل في String[] التي تمّ تمريرها من اليسار إلى اليمين. يتم تصنيف كل سلسلة على أنّها خيار قصير (مثل "-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" تلقائيًا على خيار مصاحب "--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) man
- وحدة "optparse" في Python (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(
تُنشئ |
|
ArgsOptionParser(Object... optionSources)
تُنشئ |
الطرق العامة | |
---|---|
|
getInopOptions()
عرض مجموعة الخيارات التي لم تؤدي إلى تغيير أي قيم تلقائية |
static
String
|
getOptionHelp(boolean importantOnly, Object optionObject)
عرض نص المساعدة لجميع حقول |
|
parse(String... args)
تُحلِّل وسيطات سطر الأوامر "args"، وتضبط حقول @Option الخاصة بـ "optionSource" المقدَّمة لدالة الإنشاء. |
|
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 ()
عرض مجموعة الخيارات التي لم تؤدي إلى تغيير أي قيم تلقائية
المرتجعات | |
---|---|
|
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)
تُحلِّل وسيطات سطر الأوامر "args"، وتضبط حقول @Option الخاصة بـ "optionSource" المقدَّمة لدالة الإنشاء.
المعلمات | |
---|---|
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)
يتم بذل أقصى جهد لعرضها في حال تم طرح ConfigurationException
، يتم تسجيل هذا الاستثناء داخليًا، ويتم عرض الوسيطات المتبقية (بما في ذلك وسيطة
التي أدّت إلى طرح الاستثناء). لا تُعرِض هذه الطريقة أي أخطاء.
المعلمات | |
---|---|
args |
String |
المرتجعات | |
---|---|
|
ERROR(/List) من الوسيطات المتبقية |
validateMandatoryOptions
public void validateMandatoryOptions ()
للتحقّق من ضبط جميع الحقول التي تم وضع علامة "إلزامية" عليها
عمليات الرمي | |
---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |