public class hiCaller extends Object
コマンドライン引数により、プログラムを呼び分ける機構です。
この機構から呼び出すのは
です。
hiCaller.hi_command_ifの実装クラスを生成し、そのリストを
構築子で指定し、#main(String[])を呼ぶと、登録された実装クラスを
呼び出します。
リストの形式は文字列の配列で、3個が1セットとなり、
となっています。
例えば次のような実行クラスで第一引数に応じ、様々なクラスのmainが 呼び出されます。コマンド第1引数はmainの第一引数に、固定引数と第2引数以降 が文字列の配列としてmainの第2引数にわたります。
public class COMMAND {
static final boolean D=true;
static String[] progs={
"diff" ,"otsu.hiNote.command.hiDiff",""
,"conv" ,"otsu.hiNote.hiConv",""
,"genDataClass" ,"otsu.hiNote.command.hiGenDataClass",""
,"dump" ,"otsu.hiNote.command.hiGenDataClass","-dump"
,"prop" ,"otsu.hiNote.command.hiGenDataClass","-prop"
,"htmlCheck" ,"otsu.hiNote.hiHtmlChecker",""
,"checkUpperLower","otsu.hiNote.hiCharCheck",""
,"addLineNum" ,"otsu.hiNote.hiAddLineNum",""
};
COMMAND(){}
// コマンド起動.
public static void main(String args_[]){
try{
hiCaller caller= new hiCaller(progs);
caller.main(args_);
}
catch(Exception e){
e.printStackTrace(hiU.err);
System.exit(1);
}
}
}
この例では次のような呼び出しとなります。
java COMMAND diff fileA fileB
=> otsu.hiNote.command.hiDiff#main("diff",["fileA","fileB"]);
java COMMAND dump fileX
=> otsu.hiNote.command.hiDiff#iGenDataClass("dump",["-dump","fileX"]);
| 修飾子とタイプ | クラスと説明 |
|---|---|
static interface |
hiCaller.hi_command_if
コマンド呼び分け機構用のコマンド形式.
|
| コンストラクタと説明 |
|---|
hiCaller()
呼び出し定義リストなしの構築.
|
hiCaller(String[] progs_)
呼び出し定義リスト付きの構築.
|
| 修飾子とタイプ | メソッドと説明 |
|---|---|
void |
main(String[] args_)
定義リスト上のクラスmain呼び出し
|
void |
setCommandJarName(String jarName_)
コマンドが実行jarの場合、パラメタ異常helpで出すjar名.
|
void |
setProg(String[] progs_)
呼び出し定義リスト追加.
|
static void |
version_check(hiArgs args_)
コマンド引数に-versionがある場合ライブラリバージョンを表示しexitする.
|
public hiCaller()
public hiCaller(String[] progs_)
progs_ - 呼び出し定義リストpublic void setCommandJarName(String jarName_)
jarName_ - 実行jar名public void setProg(String[] progs_)
progs_ - 定義並びpublic void main(String[] args_)
args_ - コマンド引数public static void version_check(hiArgs args_)
args_ - コマンドライン引数