net.wasamon.mjlib.util
クラス GetOpt

java.lang.Object
  上位を拡張 net.wasamon.mjlib.util.GetOpt

public class GetOpt
extends java.lang.Object

引数の解析を行い、その結果を保持するクラス。
GetOpt("hvf:", "prefix:", args)などとして利用
最初の引数で一文字のオプションを、第二引数ではロングオプションを設定。
":"を末尾につけることで、そのオプションは引数をとることができる。
この引数は空白または"="で識別される。
また、オプションに"::"をつけると、その後の文字列すべてを、そのオプションの引数として処理する。
- や -- の次、また、-ではじまらない文字列からを引数として保持する。

バージョン:
$Id: GetOpt.java,v 1.3 2004/05/24 05:24:35 miyo Exp $
作成者:
Takefumi MIYOSHI

入れ子のクラスの概要
(package private)  class GetOpt.AssocPair
          名前と値の組を表わすオブジェクト
 
フィールドの概要
private  java.lang.String[] args
           
private  NamedArrayList opt_flag
          引数つきではないオプションフラグのリスト
private  NamedArrayList opt_with_arg
          引数つきのオプションを保持するのリスト
private  NamedObject opt_with_arg_rest
           
private  NamedArrayList opts
           
private  boolean result
           
private  java.util.ArrayList unknown
          解析の結果不明だったリスト
 
コンストラクタの概要
GetOpt(java.lang.String sp, java.lang.String lps, java.lang.String[] ptn)
          コンストラクタ
GetOpt(java.lang.String sp, java.lang.String lps, java.lang.String[] ptn, boolean flag)
          デバッグ用コンストラクタ
GetOpt(java.lang.String sp, java.lang.String lps, java.lang.String[] ptn, int offset)
          コンストラクタ
 
メソッドの概要
private  int analy_longopt(java.lang.String ptn, java.lang.String[] arg, int offset)
          引数つきオプションの解析 hoge=fefe または hoge fefe をオプション hoge と、その引数 fefe と解析
private  int analy_shortopt(java.lang.String ptn, java.lang.String[] arg, int offset)
          パターンに該当するフラグオプションがるかどうか
private  void analyze(java.lang.String[] ptn, int offset)
          引数すべてに対し指定したパターンがあるかどうか判定する
 boolean flag(java.lang.String key)
          オプションが指定されていたかどうかを判定する
private  java.lang.String[] getAllOpt()
          すべてのオプションを配列で得る。
 java.lang.String[] getArgs()
          すべての引数を配列にして返す
 java.lang.String getValue(java.lang.String key)
          オプションで指定されていた値を取得する。
 boolean isSuccess()
           
static void main(java.lang.String[] args)
           
private  boolean makeOptList(java.lang.String sp, java.lang.String[] lp)
          与えられたショートオプションとロングオプションから 引数解析のためのリストを生成する
private  void print_opt_flag()
           
private  void print_opt_with_arg()
           
private  java.lang.String[] setArgs(java.lang.String[] ptn, int offset)
          パタンのうちoffset以降を配列に格納して返す
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

args

private java.lang.String[] args

opts

private NamedArrayList opts

opt_with_arg

private NamedArrayList opt_with_arg
引数つきのオプションを保持するのリスト


opt_flag

private NamedArrayList opt_flag
引数つきではないオプションフラグのリスト


unknown

private java.util.ArrayList unknown
解析の結果不明だったリスト


opt_with_arg_rest

private NamedObject opt_with_arg_rest

result

private boolean result
コンストラクタの詳細

GetOpt

public GetOpt(java.lang.String sp,
              java.lang.String lps,
              java.lang.String[] ptn)
コンストラクタ

パラメータ:
sp - 解析したい一文字オプションの連続(-vとか)
lps - 解析したいロングオプションのcommma separate羅列
ptn - 解析すべき文字列の配列

GetOpt

public GetOpt(java.lang.String sp,
              java.lang.String lps,
              java.lang.String[] ptn,
              int offset)
コンストラクタ

パラメータ:
sp - 解析したい一文字オプションの連続(-vとか)
lps - 解析したいロングオプションのcommma separate羅列
ptn - 解析すべき文字列の配列
offset - 解析すべき文字のオフセット

GetOpt

public GetOpt(java.lang.String sp,
              java.lang.String lps,
              java.lang.String[] ptn,
              boolean flag)
デバッグ用コンストラクタ

メソッドの詳細

analyze

private void analyze(java.lang.String[] ptn,
                     int offset)
引数すべてに対し指定したパターンがあるかどうか判定する

パラメータ:
ptn - 引数の配列
offset - 解析する引数のオフセット --todo もっといいアルゴリズムに

makeOptList

private boolean makeOptList(java.lang.String sp,
                            java.lang.String[] lp)
与えられたショートオプションとロングオプションから 引数解析のためのリストを生成する


analy_shortopt

private int analy_shortopt(java.lang.String ptn,
                           java.lang.String[] arg,
                           int offset)
パターンに該当するフラグオプションがるかどうか

パラメータ:
ptn - パターン文字列
戻り値:
該当オプションがあるかどうか

analy_longopt

private int analy_longopt(java.lang.String ptn,
                          java.lang.String[] arg,
                          int offset)
引数つきオプションの解析 hoge=fefe または hoge fefe をオプション hoge と、その引数 fefe と解析

パラメータ:
ptn - ためすパターン
arg - オプション字列の配列(引数かもしれないから)
offset - 現在のパタンの配列中のオフセット
戻り値:
該当するオプションがあったかどうか

isSuccess

public boolean isSuccess()

flag

public boolean flag(java.lang.String key)
オプションが指定されていたかどうかを判定する

パラメータ:
key - 検索するオプション名
戻り値:
指定されていた/いなかった

getValue

public java.lang.String getValue(java.lang.String key)
                          throws GetOptException
オプションで指定されていた値を取得する。

パラメータ:
key - 検索するオプション名
戻り値:
指定されていた値(文字列)
例外:
GetOptException - 与えられた文字列のオプションがない場合

getAllOpt

private java.lang.String[] getAllOpt()
すべてのオプションを配列で得る。

戻り値:
オプションの配列

getArgs

public java.lang.String[] getArgs()
すべての引数を配列にして返す

戻り値:
引数の配列

setArgs

private java.lang.String[] setArgs(java.lang.String[] ptn,
                                   int offset)
パタンのうちoffset以降を配列に格納して返す

パラメータ:
ptn - パタン
offset - オフセット
戻り値:
文字列の配列

print_opt_flag

private void print_opt_flag()

print_opt_with_arg

private void print_opt_with_arg()

main

public static void main(java.lang.String[] args)
                 throws java.lang.Exception
例外:
java.lang.Exception