ArgsOptionParser
public class ArgsOptionParser
extends OptionSetter
java.lang.Object | ||
↳ | com.android.tradefed.config.OptionSetter | |
↳ | com.android.tradefed.config.ArgsOptionParser |
Điền vào Option
từ các đối số dòng lệnh được phân tích cú pháp.
Option
. Tùy chọn dài ánh xạ tới tên Option
và tùy chọn ngắn ánh xạ tới tên ngắn Option
. Mỗi tên tùy chọn và tên viết tắt tùy chọn phải là duy nhất đối với tất cả các trường Option
khác trong cùng một đối tượng. Một đối số tùy chọn duy nhất có thể được ánh xạ tới nhiều trường Option
có cùng tên trên nhiều đối tượng. Các đối số Option
có thể được đặt tên để tham chiếu duy nhất đến một trường Option
trong một đối tượng bằng cách sử dụng tên lớp đầy đủ của đối tượng đó hoặc giá trị bí danh OptionClass
của nó được phân tách bằng ':'. tức là --classname:optionname optionvalue or --optionclassalias:optionname optionvalue.Tùy chọn ngắn gọn đơn giản là dấu "-" theo sau là ký tự tùy chọn ngắn. Nếu tùy chọn yêu cầu một đối số (điều này đúng với bất kỳ tùy chọn không phải boolean nào), thì nó có thể được viết dưới dạng một tham số riêng biệt, nhưng không nhất thiết phải như vậy. Tức là "-f out.txt" và "-fout.txt" đều được chấp nhận. Có thể chỉ định nhiều tùy chọn ngắn sau một dấu "-" miễn là tất cả (ngoại trừ tùy chọn cuối cùng) không yêu cầu đối số. Một tùy chọn dài bắt đầu bằng "--" theo sau là một vài ký tự. Nếu tùy chọn yêu cầu một đối số, nó có thể được viết trực tiếp sau tên tùy chọn, được phân tách bằng dấu "=" hoặc làm đối số tiếp theo. (Nghĩa là "--file=out.txt" hoặc "--file out.txt".) Tùy chọn dài boolean '--name' tự động nhận được tùy chọn đồng hành '--no-name'. Cho một tùy chọn "--flag", sau đó, "--flag", "--no-flag", "--flag=true" và "--flag=false" đều hợp lệ, mặc dù cả "--flag đều không hợp lệ true" hay "--flag false" đều được phép (vì bản thân "--flag" là đủ nên "true" hoặc "false" sau đây được diễn giải riêng). Bạn có thể sử dụng "có" và "không" làm từ đồng nghĩa với "đúng" và "sai". Mỗi Chuỗi không bắt đầu bằng "-" và không phải là đối số bắt buộc của tùy chọn trước đó là đối số vị trí không phải tùy chọn, cũng như tất cả các Chuỗi kế tiếp. Mỗi Chuỗi sau dấu "--" là một đối số vị trí không có tùy chọn. Các trường tương ứng với các tùy chọn được cập nhật khi các tùy chọn của chúng được xử lý. Mọi đối số vị trí còn lại đều được trả về dưới dạng Danh sách<Chuỗi>. Đây là một ví dụ đơn giản:
// 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) { ... } ... }Xem thêm:
- trang hướng dẫn getopt(1)
- Mô-đun "optparse" của Python (http://docs.python.org/library/optparse.html)
- "Nguyên tắc cú pháp tiện ích" POSIX (http://www.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap12.html#tag_12_02)
- GNU "Tiêu chuẩn cho giao diện dòng lệnh" (http://www.gnu.org/prep/standards/standards.html#Command_002dLine-Interfaces)
Xem thêm:
Bản tóm tắt
Nhà thầu xây dựng công cộng | |
---|---|
ArgsOptionParser ( optionSources) ArgsOptionParser ( optionSources) Tạo | |
ArgsOptionParser (Object... optionSources) Tạo |
Phương pháp công khai | |
---|---|
getInopOptions () Trả về tập hợp các tùy chọn không thay đổi bất kỳ giá trị mặc định nào. | |
static String | getOptionHelp (boolean importantOnly, Object optionObject) Xuất văn bản trợ giúp cho tất cả các trường |
parse (String... args) Phân tích các đối số dòng lệnh 'args', thiết lập các trường @Option của 'optionSource' được cung cấp cho hàm tạo. | |
parse ( args) parse ( args) Phương thức | |
parseBestEffort ( args) parseBestEffort ( args) Phương thức | |
parseBestEffort ( args, boolean forceContinue) parseBestEffort ( args, boolean forceContinue) Phương thức | |
parseBestEffort (String... args) Phiên bản nỗ lực tốt nhất của | |
void | validateMandatoryOptions () Xác thực rằng tất cả các trường được đánh dấu là bắt buộc đã được đặt. |
Nhà thầu xây dựng công cộng
ArgsOptionParser
public ArgsOptionParser (optionSources)
Tạo ArgsOptionParser
cho một tập hợp các đối tượng.
Thông số | |
---|---|
optionSources |
Ném | |
---|---|
ConfigurationException | nếu đối tượng cấu hình được cấu hình không đúng. |
ArgsOptionParser
public ArgsOptionParser (Object... optionSources)
Tạo ArgsOptionParser
cho một hoặc nhiều đối tượng.
Thông số | |
---|---|
optionSources | Object : các đối tượng cấu hình. |
Ném | |
---|---|
ConfigurationException | nếu đối tượng cấu hình được cấu hình không đúng. |
Phương pháp công khai
getInopOptions
publicgetInopOptions ()
Trả về tập hợp các tùy chọn không thay đổi bất kỳ giá trị mặc định nào.
Trả lại | |
---|---|
getOptionHelp
public static String getOptionHelp (boolean importantOnly, Object optionObject)
Xuất văn bản trợ giúp cho tất cả các trường Option
trong tùy chọnĐối tượng .
[-option_shortname, --option_name] [option_description] Default: [current option field's value in optionObject]Văn bản 'Mặc định..." sẽ bị bỏ qua nếu trường tùy chọn rỗng hoặc trống.
Thông số | |
---|---|
importantOnly | boolean : nếu true chỉ in trợ giúp cho các tùy chọn quan trọng |
optionObject | Object : đối tượng cần in văn bản trợ giúp |
Trả lại | |
---|---|
String | một Chuỗi chứa văn bản trợ giúp thân thiện với người dùng cho tất cả các trường Tùy chọn |
phân tích cú pháp
publicparse (String... args)
Phân tích các đối số dòng lệnh 'args', thiết lập các trường @Option của 'optionSource' được cung cấp cho hàm tạo.
Thông số | |
---|---|
args | String |
Trả lại | |
---|---|
ERROR(/List) của các đối số vị trí còn sót lại sau khi xử lý tất cả các tùy chọn. |
Ném | |
---|---|
ConfigurationException | nếu xảy ra lỗi khi phân tích các đối số. |
phân tích cú pháp
publicparse ( args)
Phương thức parse(String)
thay thế có ERROR(/List)
đối số
Thông số | |
---|---|
args |
Trả lại | |
---|---|
ERROR(/List) của các đối số vị trí còn sót lại sau khi xử lý tất cả các tùy chọn. |
Ném | |
---|---|
ConfigurationException | nếu xảy ra lỗi khi phân tích các đối số. |
phân tích cú phápBestEffort
publicparseBestEffort ( args)
Phương thức parseBestEffort(String)
thay thế nhận ERROR(/List)
đối số
Thông số | |
---|---|
args |
Trả lại | |
---|---|
một ERROR(/List) của các đối số còn sót lại |
phân tích cú phápBestEffort
publicparseBestEffort ( args, boolean forceContinue)
Phương thức parseBestEffort(String)
thay thế có ERROR(/List)
đối số và có thể buộc phải tiếp tục phân tích cú pháp cho đến hết, ngay cả khi một số đối số không phân tích cú pháp.
Thông số | |
---|---|
args | |
forceContinue | boolean : Đúng nếu nó tiếp tục phân tích cú pháp ngay cả khi một số đối số không phân tích cú pháp. |
Trả lại | |
---|---|
một ERROR(/List) của các đối số còn sót lại |
phân tích cú phápBestEffort
publicparseBestEffort (String... args)
Phiên bản nỗ lực tốt nhất của parse(String)
. Nếu một Ngoại lệ cấu hình được ném ra, ngoại lệ đó sẽ được ghi lại bên trong và các đối số còn lại (bao gồm cả đối số khiến ngoại lệ bị ném ra) sẽ được trả về. Phương pháp này không ném.
Thông số | |
---|---|
args | String |
Trả lại | |
---|---|
một ERROR(/List) của các đối số còn sót lại |
xác thựcTùy chọn bắt buộc
public void validateMandatoryOptions ()
Xác thực rằng tất cả các trường được đánh dấu là bắt buộc đã được đặt.
Ném | |
---|---|
| com.android.tradefed.config.ConfigurationException |
ConfigurationException |