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' 또는 옵션이 아닌 위치 인수입니다.
각 옵션 인수는 하나 이상의 Option
필드에 매핑되어야 합니다. 긴 옵션은
Option
이름을 지정하고 짧은 옵션은 Option
닉네임에 매핑됩니다. 각 옵션 이름과
옵션 닉네임은
Option
필드가 모두 포함되어야 합니다.
단일 옵션 인수가 이름이 같은 여러 Option
필드에 매핑될 수 있음
여러 객체에 걸쳐서
함수를 만들 수 있습니다 Option
인수를 네임스페이스화하여
단일 객체 내에서 Option
필드의 전체 클래스 이름 또는
':'로 구분된 OptionClass
별칭 값. 예
--classname:optionname optionvalue or --optionclassalias:optionname optionvalue.
간단한 짧은 옵션은 '-'입니다. 그 뒤에 짧은 옵션 문자가 나옵니다. 옵션에 인수 (부울이 아닌 옵션의 경우)는 별도의 매개변수로 작성될 수 있습니다. 될 필요는 없습니다. 즉, '-f out.txt'입니다. '-fout.txt' 둘 다 허용됩니다.
단일 '-' 뒤에 short 옵션을 여러 개 지정할 수 있습니다. 전체( 마지막)에는 인수가 필요하지 않습니다.
긴 옵션은 '--'로 시작합니다. 몇 글자가 이어집니다. 옵션에 인수의 경우 옵션 이름 바로 뒤에 '='로 구분하거나 인수입니다. 즉, '--file=out.txt' 또는 '--file out.txt'입니다.
긴 불리언 옵션 '--name' 자동으로 '--no-name'을 가져옵니다. 있습니다. 옵션이 주어짐 '--flag' 다음 '--flag', '--no-flag', '--flag=true'입니다. '--flag=false'입니다. 모두 유효하지만 둘 다 '--flag true'가 아닙니다. 또는 '--flag false'도 포함되지 않습니다. 는 허용됩니다('--flag'만으로 충분하므로 'true' 다음에 옴 또는 'false'입니다. 별도로 해석됩니다.) 'yes'를 사용할 수 있습니다. '아니요'를 선택합니다. 유의어로 검색어: 'true' 'false'입니다.
각 문자열이 '-'로 시작하지 않음 이전 옵션의 필수 인수가 아닌 것은 옵션이 아닌 위치 인수를 포함하며, 모든 연속된 문자열도 마찬가지입니다. '--' 뒤에 오는 각 문자열은 은 옵션이 아닌 위치 인수입니다.
옵션에 해당하는 필드는 옵션이 처리되면 업데이트됩니다. 남은 시간 위치 인수는 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) { ... } ... }
- </ph>
- getopt(1) 매뉴얼 페이지
- Python의 '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)
optionObject. |
|
parse(String... args)
명령줄 인수 'args'를 파싱하여 'optionSource'의 @Option 필드를 설정합니다. 생성자에 제공됩니다. |
|
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)
optionObject.Option
각 옵션의 도움말 텍스트는 다음 형식입니다.
[-option_shortname, --option_name] [option_description] Default: [current option field's value in optionObject]
매개변수 | |
---|---|
importantOnly |
boolean : true 가 중요한 옵션에 관한 도움말만 출력하는 경우 |
optionObject |
Object : 도움말 텍스트를 출력할 객체입니다. |
반환 값 | |
---|---|
String |
모든 Option 필드에 대한 사용자 친화적인 도움말 텍스트가 포함된 문자열 |
파싱
publicparse (String... args)
명령줄 인수 'args'를 파싱하여 'optionSource'의 @Option 필드를 설정합니다. 생성자에 제공됩니다.
매개변수 | |
---|---|
args |
String |
반환 값 | |
---|---|
|
모든 옵션을 처리한 후 남은 위치 인수의 ERROR(/List) |
생성 값 | |
---|---|
ConfigurationException |
인수 파싱 중 오류가 발생한 경우 |
파싱
publicparse ( args)
인수의 ERROR(/List)
를 사용하는 대체 parse(String)
메서드
매개변수 | |
---|---|
args |
|
반환 값 | |
---|---|
|
모든 옵션을 처리한 후 남은 위치 인수의 ERROR(/List) |
생성 값 | |
---|---|
ConfigurationException |
인수 파싱 중 오류가 발생한 경우 |
parseBestEffort
publicparseBestEffort ( args)
ERROR(/List)
를 가져오는 대체 parseBestEffort(String)
메서드
인수
매개변수 | |
---|---|
args |
|
반환 값 | |
---|---|
|
왼쪽 인수의 ERROR(/List) |
parseBestEffort
publicparseBestEffort ( args, boolean forceContinue)
ERROR(/List)
를 가져오는 대체 parseBestEffort(String)
메서드
인수를 사용해야 하며, 일부 인수가
파싱합니다.
매개변수 | |
---|---|
args |
: 남은 인수를 포함할 목록입니다. |
forceContinue |
boolean : 일부 인수가 파싱하지 않는 경우에도 계속 파싱해야 하는 경우 true입니다. |
반환 값 | |
---|---|
|
왼쪽 인수의 ERROR(/List) |
parseBestEffort
publicparseBestEffort (String... args)
parse(String)
의 최선의 버전 ConfigurationException이
그 예외가 내부적으로 캡처되고 나머지 인수(
인수)가 반환됩니다. 이 메서드는 발생되지 않습니다.
매개변수 | |
---|---|
args |
String |
반환 값 | |
---|---|
|
왼쪽 인수의 ERROR(/List) |
validateMandatoryOptions 클래스의 정적 변수
public void validateMandatoryOptions ()
필수로 표시된 모든 필드가 설정되었는지 확인합니다.
생성 값 | |
---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |