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 type="x-smartling-placeholder">
    </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( optionSources)

객체 컬렉션의 ArgsOptionParser를 만듭니다.

ArgsOptionParser(Object... optionSources)

하나 이상의 객체에 대한 ArgsOptionParser를 만듭니다.

공개 메서드

getInopOptions()

기본값을 변경하지 않은 옵션 집합을 반환합니다.

static String getOptionHelp(boolean importantOnly, Object optionObject)

optionObject.Option

parse(String... args)

명령줄 인수 'args'를 파싱하여 'optionSource'의 @Option 필드를 설정합니다. 생성자에 제공됩니다.

parse( args)

인수의 ERROR(/List)를 사용하는 대체 parse(String) 메서드

parseBestEffort( args)

ERROR(/List)를 가져오는 대체 parseBestEffort(String) 메서드 인수

parseBestEffort( args, boolean forceContinue)

ERROR(/List)를 가져오는 대체 parseBestEffort(String) 메서드 인수를 사용해야 하며, 일부 인수가 파싱합니다.

parseBestEffort(String... args)

parse(String)의 최선의 버전

void validateMandatoryOptions()

필수로 표시된 모든 필드가 설정되었는지 확인합니다.

공개 생성자

ArgsOptionParser 클래스의 생성자

public ArgsOptionParser ( optionSources)

객체 컬렉션의 ArgsOptionParser를 만듭니다.

매개변수
optionSources : 구성 객체입니다.

생성 값
ConfigurationException 구성 객체가 잘못 구성된 경우

ArgsOptionParser 클래스의 생성자

public ArgsOptionParser (Object... optionSources)

하나 이상의 객체에 대한 ArgsOptionParser를 만듭니다.

매개변수
optionSources Object: 구성 객체입니다.

생성 값
ConfigurationException 구성 객체가 잘못 구성된 경우

공개 메서드

getInopOptions

public  getInopOptions ()

기본값을 변경하지 않은 옵션 집합을 반환합니다.

반환 값

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]
 
드림 '기본값...' 옵션 필드가 null이거나 비어 있으면 텍스트가 생략됩니다.

매개변수
importantOnly boolean: true가 중요한 옵션에 관한 도움말만 출력하는 경우

optionObject Object: 도움말 텍스트를 출력할 객체입니다.

반환 값
String 모든 Option 필드에 대한 사용자 친화적인 도움말 텍스트가 포함된 문자열

파싱

public  parse (String... args)

명령줄 인수 'args'를 파싱하여 'optionSource'의 @Option 필드를 설정합니다. 생성자에 제공됩니다.

매개변수
args String

반환 값
모든 옵션을 처리한 후 남은 위치 인수의 ERROR(/List)

생성 값
ConfigurationException 인수 파싱 중 오류가 발생한 경우

파싱

public  parse ( args)

인수의 ERROR(/List)를 사용하는 대체 parse(String) 메서드

매개변수
args

반환 값
모든 옵션을 처리한 후 남은 위치 인수의 ERROR(/List)

생성 값
ConfigurationException 인수 파싱 중 오류가 발생한 경우

parseBestEffort

public  parseBestEffort ( args)

ERROR(/List)를 가져오는 대체 parseBestEffort(String) 메서드 인수

매개변수
args

반환 값
왼쪽 인수의 ERROR(/List)

parseBestEffort

public  parseBestEffort ( args, 
                boolean forceContinue)

ERROR(/List)를 가져오는 대체 parseBestEffort(String) 메서드 인수를 사용해야 하며, 일부 인수가 파싱합니다.

매개변수
args : 남은 인수를 포함할 목록입니다.

forceContinue boolean: 일부 인수가 파싱하지 않는 경우에도 계속 파싱해야 하는 경우 true입니다.

반환 값
왼쪽 인수의 ERROR(/List)

parseBestEffort

public  parseBestEffort (String... args)

parse(String)의 최선의 버전 ConfigurationException이 그 예외가 내부적으로 캡처되고 나머지 인수( 인수)가 반환됩니다. 이 메서드는 발생되지 않습니다.

매개변수
args String

반환 값
왼쪽 인수의 ERROR(/List)

validateMandatoryOptions 클래스의 정적 변수

public void validateMandatoryOptions ()

필수로 표시된 모든 필드가 설정되었는지 확인합니다.

생성 값
com.android.tradefed.config.ConfigurationException
ConfigurationException