クラス Argument
- java.lang.Object
-
- org.opengion.fukurou.util.Argument
-
public final class Argument extends java.lang.Object
Argument は、バッチ処理の main メソッドの引数を解析するクラスです。 Argument は、3つのタイプに分かれます。 [コメント] : # で始まる引数で、使用されません。(登録もされません。) [引数] : #,-,= 以外で始まる通常の文字列。登録の順番が指定されます。 [プロパティ]: - で始まり、キーと値を=で区切っているパラメータです。順序は無関係。 これらのタイプを混在させても構いません。[引数]は、[コメント] や[プロパティ]を 無視した、入力の順番が重要視されます。取り出す場合も、番号で取り出します。 最初の[引数]が、0 で、以降 引数個数-1 までの番号で取り出します。 [プロパティ]は、順番は無視し、キー部を指定することで取り出せます。 ただし、キー部を重複して登録することは出来ません。なお、キー部の頭の文字列のみで 取り出すメソッドがあるため、key1,key2,key3 などと指定して、key で取り出せば、 複数プロパティを同一キーで取り出すことが可能です。 [プロパティ]の指定では、キーと値を=で区切りますが、その前後にスペースを 入れないで下さい。引数の前後に = が付く文字列は指定できません。 java Program AAA BBB #CCC -DD=XX -EE=YY -FF=ZZ GGG ~~~ ~~~ ~~~~ ~~~~~~ ~~~~~~ ~~~~~~ ~~~ [コメント] : #CCC [引数] : [0]=AAA , [1]=BBB , [2]=GGG [プロパティ]: key=DD,val=XX key=EE,val=YY key=FF,val=ZZ Argument の整合性チェックは、3つのパターンがあります。 [引数]個数指定 :引数自身の最小個数、最大個数を登録しておくことで、プロパティのハイフン忘れ等を防止します。 [プロパティ]必須チェック :必須キーが登録されたかどうかのチェックを行います。 [プロパティ]整合性チェック : 指定されているキーのみ登録可能です。 これらのチェックで、整合性チェックのみ、Argument の登録時に行います。 それ以外は、取り出し時まで、判断できません。 (取り出しは、登録がすべて終了したのちに行われると仮定しています) [プロパティ]のキー部の大文字・小文字は、厳格に判定しています。 [プロパティ]設定可能なプロパティの値を指定することで、誤記入を防止します。- バージョン
- 4.0
- 作成者
- Kazuhiko Hasegawa
- 導入されたバージョン:
- JDK5.0,
-
-
コンストラクタの概要
コンストラクタ コンストラクタ 説明 Argument(java.lang.String pgid)
この Argument を使用している プログラムID(Javaクラス名)を指定して インスタンスを作成します。
-
メソッドの概要
すべてのメソッド インスタンス・メソッド concreteメソッド 修飾子とタイプ メソッド 説明 java.lang.String
changeParam(java.lang.String inMsg)
入力文字列に、{@XXXX}関係の文字列変換を行います。java.lang.String
getArgument(int adrs)
指定の番号に対する[引数]を返します。boolean
getArgument(int adrs, boolean def)
指定の番号に対する[引数]を返します。int
getArgument(int adrs, int def)
指定の番号に対する[引数]を返します。java.lang.String
getArgument(int adrs, java.lang.String def)
指定の番号に対する[引数]を返します。int
getArgumentType(java.lang.String arg)
Argument の文字列から、そのタイプを判断します。HybsEntry[]
getEntrys(java.lang.String startsKey)
内部で使用する[プロパティ]を、キーを先頭に含む値を取得します。java.lang.String
getFileProparty(java.lang.String key, java.lang.String keyFile, boolean must)
内部で使用する[プロパティ]を、キーを指定して取得します。java.lang.String
getFileProparty(java.lang.String key, java.lang.String keyFile, java.lang.String encode, boolean must)
内部で使用する[プロパティ]を、キーを指定して取得します。java.lang.String
getProparty(java.lang.String key)
内部で使用する[プロパティ]を、キーを指定して取得します。boolean
getProparty(java.lang.String key, boolean def)
内部で使用する[プロパティ]を、キーを指定して取得します。int
getProparty(java.lang.String key, int def)
内部で使用する[プロパティ]を、キーを指定して取得します。java.lang.String
getProparty(java.lang.String key, java.lang.String def)
内部で使用する[プロパティ]を、キーを指定して取得します。java.lang.String
getProparty(java.lang.String key, java.lang.String def, java.lang.String... list)
内部で使用する[プロパティ]を、キーを指定して取得します。void
putArgument(java.lang.String arg)
Argument の文字列から、引数かプロパティをセットします。void
putArgument(java.lang.String key, java.lang.String val)
Argument の文字列から、プロパティをセットします。void
setArgRange(int min, int max)
[引数]個数指定を設定します。void
setArgument(java.lang.String... args)
Argument の配列文字列から、引数やプロパティをセットします。void
setMustProparty(java.util.Map<java.lang.String,java.lang.String> mustProp)
[プロパティ]必須チェック Map 登録 必須キーが登録されたかどうかのチェックを行います。void
setUsableProparty(java.util.Map<java.lang.String,java.lang.String> useProp)
[プロパティ]整合性チェック Map 登録 指定されているキーのみ登録可能です。java.lang.String
toString()
このオブジェクトの内部表現を、文字列にして返します。java.lang.String
usage()
このクラスの使用方法を返します。
-
-
-
メソッドの詳細
-
setArgument
public void setArgument(java.lang.String... args)
Argument の配列文字列から、引数やプロパティをセットします。 [プロパティ]のキー部の大文字・小文字は、厳格に判定しています。 これは、main メソッド等で単独起動する場合に、引数そのままを セットする場合に使用します。- パラメータ:
args
- 引数配列(可変長引数)- 関連項目:
putArgument( String )
-
putArgument
public void putArgument(java.lang.String arg)
Argument の文字列から、引数かプロパティをセットします。 [プロパティ]のキー部の大文字・小文字は、厳格に判定しています。 Argument を設定する時に、タイプ判断として、getArgumentType( String ) を 使用します。よって、不正な Argument を設定した場合は、強制終了されます。- パラメータ:
arg
- 引数- 関連項目:
putArgument( String,String )
- 変更履歴:
- 6.4.8.3 (2016/07/15) key,val 分解後は、#putArgument(String,String)
-
putArgument
public void putArgument(java.lang.String key, java.lang.String val)
Argument の文字列から、プロパティをセットします。 [プロパティ]のキー部の大文字・小文字は、厳格に判定しています。 このメソッドは、引数 や コメントの判断を行いません。プロパティ のみ 設定されるものとして、処理します。 プロパティの key=val が初めから分割されている場合の簡易メソッドです。- パラメータ:
key
- プロパティのキーval
- プロパティの値- 関連項目:
putArgument( String )
- 変更履歴:
- 6.4.8.3 (2016/07/15) val で、「\t」と、「\n」の文字列を、タブと改行に変換します。, 6.4.8.4 (2016/07/22) 元に戻します。タブと改行は、ここで変換できません。
-
setArgRange
public void setArgRange(int min, int max)
[引数]個数指定を設定します。 最大値、最小値を登録しておくことで、個数が、規定から外れていないか どうかを確認します。 エラー判定は、実際に、[引数]を取り出すときに行われます。 このチェックの登録は、putArgument( String ) の前でも後でもよく、 getArgument の実行前であれば、いつでも構いません。 設定しない場合の初期値は、0~200 です。- パラメータ:
min
- [引数]の最小個数(初期値:0)max
- [引数]の最大個数(初期値:200)
-
setMustProparty
public void setMustProparty(java.util.Map<java.lang.String,java.lang.String> mustProp)
[プロパティ]必須チェック Map 登録 必須キーが登録されたかどうかのチェックを行います。 マスト判定は、実際に、[プロパティ]を取り出すときに行われます。 すべてのプロパティーがセットし終わったかどうかの判断が出来ないためです。 それ以外のチェックは、putArgument( String ) 時に行われるので、それまでに mustProparty のMapを登録しておく必要があります。 ただし、引数文字列の記述チェック(使用してもよい値の配列チェック)は、 #getProparty( String , String , String[] ) で行われるので、取得時になります。 設定しない場合の初期値は、制限なしです。 指定のMapのValue値には、エラー時のコメントを記述しておきます。- パラメータ:
mustProp
- 必須キーのMap- 関連項目:
getProparty( String , String , String[] )
- 変更履歴:
- 6.4.3.1 (2016/02/12) Collections.synchronizedMap に置き換え。
-
setUsableProparty
public void setUsableProparty(java.util.Map<java.lang.String,java.lang.String> useProp)
[プロパティ]整合性チェック Map 登録 指定されているキーのみ登録可能です。 エラー判定は、実際に、[プロパティ]を取り出すときに行われます。 このチェックの登録は、putArgument( String ) 時に行われるので、それまでに usableProparty のMapを登録しておく必要があります。 ただし、引数文字列の記述チェック(使用してもよい値の配列チェック)は、 #getProparty( String , String , String[] ) で行われるので、取得時になります。 設定しない場合の初期値は、制限なしです。 指定のMapのValue値には、このキーに対する解説を登録しておきます。- パラメータ:
useProp
- 使用可能キーのMap- 変更履歴:
- 6.4.3.1 (2016/02/12) Collections.synchronizedMap に置き換え。
-
getArgumentType
public int getArgumentType(java.lang.String arg)
Argument の文字列から、そのタイプを判断します。 引数の形式が不正な場合(例えば、キーと値の分離の = の前後にスペースが入った場合) RuntimeException で強制終了します。 [コメント] : # で始まる引数で、使用されません。(登録もされません。) [引数] : #,-,= 以外で始まる通常の文字列。登録の順番が指定されます。 [プロパティ]: - で始まり、キーと値を=で区切っているパラメータです。順序は無関係。 ※ 引数の設定方法が間違っている場合、RuntimeException が throw されます。
-
getArgument
public java.lang.String getArgument(int adrs)
指定の番号に対する[引数]を返します。 [引数]は、#,-,= 以外で始まる通常の文字列として登録されています。 登録された順番で取得します。 ※ 引数の設定方法が間違っている場合、RuntimeException が throw されます。- パラメータ:
adrs
- 番号- 戻り値:
- [引数]
-
getArgument
public java.lang.String getArgument(int adrs, java.lang.String def)
指定の番号に対する[引数]を返します。 def には、文字列の初期値を指定しておきます。adrs に対応する値が、null の場合、 この def をそのまま返します。 処理は、getArgument( int ) の結果を、使用しています。- パラメータ:
adrs
- 番号def
- 値が null の場合の初期値- 戻り値:
- [引数]
- 関連項目:
getArgument( int )
-
getArgument
public int getArgument(int adrs, int def)
指定の番号に対する[引数]を返します。 def には、数字の初期値を指定しておきます。adrs に対応する値が、null の場合、 この def をそのまま返します。 処理は、getArgument( int ) の結果を、使用しています。- パラメータ:
adrs
- 番号def
- 値が null の場合の初期値- 戻り値:
- [引数]
- 関連項目:
getArgument( int )
-
getArgument
public boolean getArgument(int adrs, boolean def)
指定の番号に対する[引数]を返します。 def には、boolean の初期値を指定しておきます。adrs に対応する値が、null の場合、 この def をそのまま返します。 処理は、getArgument( int ) の結果を、使用しています。- パラメータ:
adrs
- 番号def
- 値が null の場合の初期値- 戻り値:
- [引数]
- 関連項目:
getArgument( int )
-
getProparty
public java.lang.String getProparty(java.lang.String key)
内部で使用する[プロパティ]を、キーを指定して取得します。 値が設定されていない場合は、 null を返します。 [プロパティ]のキー部の大文字・小文字は、厳格に判定しています。 ※ 引数の設定方法が間違っている場合、RuntimeException が throw されます。- パラメータ:
key
- 引数のキー- 戻り値:
- 引数に対する値
- 変更履歴:
- 6.4.3.1 (2016/02/12) Collections.synchronizedMap に置き換え。
-
getProparty
public java.lang.String getProparty(java.lang.String key, java.lang.String def)
内部で使用する[プロパティ]を、キーを指定して取得します。 [プロパティ]のキー部の大文字・小文字は、厳格に判定しています。 def には、文字列の初期値を指定しておきます。key に対応する値が、null の場合、 この def をそのまま返します。 処理は、getProparty( String ) の結果を、使用しています。- パラメータ:
key
- キーdef
- 値が null の場合の初期値- 戻り値:
- [プロパティ]
- 関連項目:
getProparty( String )
-
getProparty
public java.lang.String getProparty(java.lang.String key, java.lang.String def, java.lang.String... list)
内部で使用する[プロパティ]を、キーを指定して取得します。 [プロパティ]のキー部の大文字・小文字は、厳格に判定しています。 def には、文字列の初期値を指定しておきます。key に対応する値が、null の場合、 この def をそのまま返します。 list 配列には、登録できる文字列配列を指定します。この文字列に含まれない 値が設定されていた場合は、エラーになります。 処理は、getProparty( String ) の結果を、使用しています。 ※ 引数の設定方法が間違っている場合、RuntimeException が throw されます。- パラメータ:
key
- キーdef
- 値が null の場合の初期値list
- 値として存在できる文字列配列(可変長引数)- 戻り値:
- [プロパティ]
- 関連項目:
getProparty( String )
-
getProparty
public int getProparty(java.lang.String key, int def)
内部で使用する[プロパティ]を、キーを指定して取得します。 [プロパティ]のキー部の大文字・小文字は、厳格に判定しています。 def には、数字の初期値を指定しておきます。key に対応する値が、null の場合、 この def をそのまま返します。 処理は、getProparty( String ) の結果を、使用しています。- パラメータ:
key
- キーdef
- 値が null の場合の初期値- 戻り値:
- [プロパティ]
- 関連項目:
getProparty( String )
-
getProparty
public boolean getProparty(java.lang.String key, boolean def)
内部で使用する[プロパティ]を、キーを指定して取得します。 [プロパティ]のキー部の大文字・小文字は、厳格に判定しています。 def には、boolean の初期値を指定しておきます。key に対応する値が、null の場合、 この def をそのまま返します。 処理は、getProparty( String ) の結果を、使用しています。- パラメータ:
key
- キーdef
- 値が null の場合の初期値- 戻り値:
- [プロパティ]
- 関連項目:
getProparty( String )
-
getFileProparty
public java.lang.String getFileProparty(java.lang.String key, java.lang.String keyFile, boolean must)
内部で使用する[プロパティ]を、キーを指定して取得します。 [プロパティ]のキー部の大文字・小文字は、厳格に判定しています。 key プロパティは、通常の引数として指定できる簡易的な値を設定します。 keyFile プロパティ は、ファイル名を指定し、そのファイルの中身を 取得して返します。通常は1行であるが、時には複数行のデータを指定 したい場合に、2つのパラメータを使いますが、設定値は、同じ引数として 使用したいケースに便利です。 key プロパティと、keyFile プロパティ は、同時指定できません。 これは、指定方法の間違い等を避ける為です。 どちらも、null である可能性はあります。 ※ 同時指定時、または、must 必須時に null の場合、RuntimeException が throw されます。- パラメータ:
key
- キーkeyFile
- 設定ファイル名must
- 必須条件[true/false]- 戻り値:
- [プロパティ]
- 関連項目:
getProparty( String )
-
getFileProparty
public java.lang.String getFileProparty(java.lang.String key, java.lang.String keyFile, java.lang.String encode, boolean must)
内部で使用する[プロパティ]を、キーを指定して取得します。 [プロパティ]のキー部の大文字・小文字は、厳格に判定しています。 key プロパティは、通常の引数として指定できる簡易的な値を設定します。 keyFile プロパティ は、ファイル名を指定し、そのファイルの中身を 取得して返します。通常は1行であるが、時には複数行のデータを指定 したい場合に、2つのパラメータを使いますが、設定値は、同じ引数として 使用したいケースに便利です。 key プロパティと、keyFile プロパティ は、同時指定できません。 これは、指定方法の間違い等を避ける為です。 どちらも、null である可能性はあります。 ※ 同時指定時、または、must 必須時に null の場合、RuntimeException が throw されます。- パラメータ:
key
- キーkeyFile
- 設定ファイル名encode
- keyFile読取エンコード(null はデフォルトエンコード)must
- 必須条件[true/false]- 戻り値:
- [プロパティ]
- 関連項目:
getProparty( String )
- 変更履歴:
- 6.4.5.1 (2016/04/28) FileStringのコンストラクター変更, 6.4.5.2 (2016/05/06) fukurou.util.FileString から、fukurou.util.FileUtil に移動。
-
getEntrys
public HybsEntry[] getEntrys(java.lang.String startsKey)
内部で使用する[プロパティ]を、キーを先頭に含む値を取得します。 [プロパティ]のキー部の大文字・小文字は、厳格に判定しています。 値が設定されていない場合は、String[0] を返します。 HybsEntry のキーに設定される値は、引数の先頭キーを除いた文字列です。 例えば、"const_" のような値を与えて、const_AA, const_BB, const_CC の 3つのキーが選定された場合、キーは、AA, BB, CC のみ返します。- パラメータ:
startsKey
- 引数の先頭のキー- 戻り値:
- 引数に対する[プロパティ]のHybsEntry
- このメソッドは、nullを返しません
-
changeParam
public java.lang.String changeParam(java.lang.String inMsg)
入力文字列に、{@XXXX}関係の文字列変換を行います。 引数に含まれる {@XXXX}=YYYY という入力に対して、inMsg に 含まれる{@XXXX} 文字列を、YYYY という文字列に変換します。 それ以外に、予約文字変換として、 {@ARG.XXX} 引数に使用された値を再利用(割り当て)します。 {@DATE.XXX} SimpleDateFormat 形式の文字を変換します。(日付、時刻等) {@ENV.XXX} システムプロパティーの文字を変換します。(java -Dkey=value オプション)- パラメータ:
inMsg
- 入力文字列- 戻り値:
- 変換後文字列
-
toString
public java.lang.String toString()
このオブジェクトの内部表現を、文字列にして返します。 クラス名 + 起動時の引数リストを表示します。- オーバーライド:
toString
クラス内java.lang.Object
- 戻り値:
- 引数に対する値
- このメソッドは、nullを返しません
-
usage
public java.lang.String usage()
このクラスの使用方法を返します。- 戻り値:
- このクラスの使用方法
- このメソッドは、nullを返しません
-
-