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) الرئيسية
- وحدة "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 ()
عرض مجموعة الخيارات التي لم تُغيّر أي قيم تلقائية
المرتجعات | |
---|---|
|
الحصول على مساعدة
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) من الوسيطات المتبقية |
خيارات التحقّق من صحة ما يجب
public void validateMandatoryOptions ()
يتم التحقّق من ضبط جميع الحقول التي تم وضع علامة عليها على أنّها إلزامية.
الرميات | |
---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |