محلّل 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' يحصل تلقائيًا على "--no-name" رفيق. تم توفير خيار "--flag" ثم "--flag" أو "--no-flag" أو "--flag=true" و"--flag=false" كلها صالحة، على الرغم من لا "--flag true" أو "--flag false" (نظرًا لأن "--flag" في حد ذاتها كافية، بعد "true" أو "خطأ" يتم تفسيره بشكل منفصل). يمكنك استخدام "نعم" و"لا" كمرادفات لكلمة "true" و"خطأ".
كل سلسلة لا تبدأ بـ "-" وليست وسيطة مطلوبة للخيار السابق هي وسيطة موضعية غير اختيارية، كما هي الحال مع جميع السلاسل المتتالية. كل سلسلة بعد "--" هو وسيطة موضعية غير اختيارية.
يتم تعديل الحقول المقابلة للخيارات أثناء معالجة خياراتها. أي رصيد متبقي يتم عرض وسيطات موضع الإعلان على شكل قائمة<سلسلة>.
إليك مثال بسيط:
// 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(
تنشئ السمة |
|
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 |
إذا حدث خطأ أثناء تحليل الوسيطات. |
تحليل BestEffort
publicparseBestEffort ( args)
طريقة parseBestEffort(String)
بديلة تستغرق ERROR(/List)
من
وسيطات
المعلمات | |
---|---|
args |
|
المرتجعات | |
---|---|
|
ERROR(/List) للوسيطات اليسرى فوق الوسيطات |
تحليل BestEffort
publicparseBestEffort ( args, boolean forceContinue)
طريقة parseBestEffort(String)
بديلة تستغرق ERROR(/List)
من
ويمكن أن تضطر إلى متابعة التحليل حتى النهاية، حتى إذا لم تعثر على بعض الوسيطات
التحليل.
المعلمات | |
---|---|
args |
: قائمة تتضمّن ما تبقى من الوسيطات. |
forceContinue |
boolean : صحيح إذا كان يجب مواصلة التحليل حتى إذا لم يتم تحليل بعض الوسيطات. |
المرتجعات | |
---|---|
|
ERROR(/List) للوسيطات اليسرى فوق الوسيطات |
تحليل BestEffort
publicparseBestEffort (String... args)
النسخة الأفضل من حيث الجهد من parse(String)
إذا كان استثناء التهيئة
فقط، ويتم تسجيل هذا الاستثناء داخليًا، والوسيطات المتبقية (بما في ذلك
التي تسببت في طرح الاستثناء). لا يتم طرح هذه الطريقة.
المعلمات | |
---|---|
args |
String |
المرتجعات | |
---|---|
|
ERROR(/List) للوسيطات اليسرى فوق الوسيطات |
خيارات التحقّق من صحة مادّة عرض الخيارات
public void validateMandatoryOptions ()
يتم التحقّق من ضبط جميع الحقول التي تم وضع علامة عليها على أنّها إلزامية.
الرميات | |
---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |