ArgsOptionParser
public class ArgsOptionParser
extends OptionSetter
java.lang.Object | ||
เ | com.android.tradefed.config.OptionSetter | |
เ | com.android.tradefed.config.ArgsOptionParser |
เติมฟิลด์ Option
จากอาร์กิวเมนต์บรรทัดคำสั่งแยกวิเคราะห์
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" เพียงอย่างเดียวก็เพียงพอแล้ว ระบบจะตีความ "จริง" หรือ "เท็จ" ต่อไปนี้แยกกัน) คุณสามารถใช้ "ใช่" และ "ไม่ใช่" เป็นคำพ้องความหมายสำหรับ "จริง" และ "เท็จ" แต่ละสตริงที่ไม่ได้ขึ้นต้นด้วย "-" และไม่ใช่อาร์กิวเมนต์ที่ต้องการของตัวเลือกก่อนหน้าเป็นอาร์กิวเมนต์ตำแหน่งที่ไม่ใช่ตัวเลือก เช่นเดียวกับสตริงที่ต่อเนื่องกันทั้งหมด แต่ละสตริงหลัง "--" เป็นอาร์กิวเมนต์ตำแหน่งที่ไม่มีตัวเลือก ฟิลด์ที่สอดคล้องกับตัวเลือกจะได้รับการอัปเดตเมื่อมีการประมวลผลตัวเลือก อาร์กิวเมนต์ตำแหน่งที่เหลือจะถูกส่งกลับเป็น 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) { ... } ... }ดูเพิ่มเติม:
- 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 ( optionSources) ArgsOptionParser ( optionSources) สร้าง | |
ArgsOptionParser (Object... optionSources) สร้าง |
วิธีการสาธารณะ | |
---|---|
getInopOptions () ส่งกลับชุดของตัวเลือกที่ไม่ได้เปลี่ยนค่าเริ่มต้นใดๆ | |
static String | getOptionHelp (boolean importantOnly, Object optionObject) เอาต์พุตข้อความช่วยเหลือสำหรับฟิลด์ |
parse (String... args) แยกวิเคราะห์อาร์กิวเมนต์บรรทัดคำสั่ง 'args' การตั้งค่าฟิลด์ @Option ของ 'optionSource' ที่จัดเตรียมให้กับคอนสตรัคเตอร์ | |
parse ( args) parse ( args) วิธี | |
parseBestEffort ( args) parseBestEffort ( args) วิธี | |
parseBestEffort ( args, boolean forceContinue) parseBestEffort ( args, boolean forceContinue) วิธี | |
parseBestEffort (String... args) | |
void | validateMandatoryOptions () ตรวจสอบว่าฟิลด์ทั้งหมดที่ทำเครื่องหมายว่าบังคับได้รับการตั้งค่าแล้ว |
ผู้สร้างสาธารณะ
ArgsOptionParser
public ArgsOptionParser (optionSources)
สร้าง ArgsOptionParser
สำหรับคอลเลกชันของวัตถุ
พารามิเตอร์ | |
---|---|
optionSources |
ขว้าง | |
---|---|
ConfigurationException | หากมีการกำหนดค่าอ็อบเจ็กต์ config อย่างไม่เหมาะสม |
ArgsOptionParser
public ArgsOptionParser (Object... optionSources)
สร้าง ArgsOptionParser
สำหรับออบเจ็กต์ตั้งแต่หนึ่งรายการขึ้นไป
พารามิเตอร์ | |
---|---|
optionSources | Object : วัตถุการกำหนดค่า |
ขว้าง | |
---|---|
ConfigurationException | หากมีการกำหนดค่าอ็อบเจ็กต์ config อย่างไม่เหมาะสม |
วิธีการสาธารณะ
getInopOptions
publicgetInopOptions ()
ส่งกลับชุดของตัวเลือกที่ไม่ได้เปลี่ยนค่าเริ่มต้นใดๆ
คืนสินค้า | |
---|---|
getOptionHelp
public static String getOptionHelp (boolean importantOnly, Object optionObject)
เอาต์พุตข้อความช่วยเหลือสำหรับฟิลด์ Option
ทั้งหมดใน ตัวเลือกวัตถุ .
[-option_shortname, --option_name] [option_description] Default: [current option field's value in optionObject]ข้อความ 'ค่าเริ่มต้น..." จะถูกละเว้นหากฟิลด์ตัวเลือกเป็นค่าว่างหรือว่างเปล่า
พารามิเตอร์ | |
---|---|
importantOnly | boolean : if 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 จะไม่แยกวิเคราะห์
พารามิเตอร์ | |
---|---|
args | |
forceContinue | boolean : จริงถ้ามันควรแยกวิเคราะห์ต่อไปแม้ว่าบาง args จะไม่แยกวิเคราะห์ |
คืนสินค้า | |
---|---|
ERROR(/List) ของอาร์กิวเมนต์ที่เหลือ |
parseBestEffort
publicparseBestEffort (String... args)
parse(String)
เวอร์ชันที่ดีที่สุด ถ้า ConfigurationException ถูกส่งออกไป ข้อยกเว้นนั้นจะถูกจับภายใน และอาร์กิวเมนต์ที่เหลือ (รวมถึงอาร์กิวเมนต์ที่ทำให้เกิดข้อยกเว้นจะถูกส่งกลับ) วิธีนี้ไม่โยน
พารามิเตอร์ | |
---|---|
args | String |
คืนสินค้า | |
---|---|
ERROR(/List) ของอาร์กิวเมนต์ที่เหลือ |
ตรวจสอบตัวเลือกบังคับ
public void validateMandatoryOptions ()
ตรวจสอบว่าฟิลด์ทั้งหมดที่ทำเครื่องหมายว่าบังคับได้รับการตั้งค่าแล้ว
ขว้าง | |
---|---|
ConfigurationException |