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_
- コマンドライン引数