001/* 002 * Copyright (c) 2009 The openGion Project. 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 013 * either express or implied. See the License for the specific language 014 * governing permissions and limitations under the License. 015 */ 016package org.opengion.fukurou.process; 017 018/** 019 * HybsProcess は、バッチ処理サブクラスの共通インターフェースです。 020 * HybsProcess を用いて、順次、バッチプロセスを実行することができます。 021 * 022 * @version 4.0 023 * @author Kazuhiko Hasegawa 024 * @since JDK5.0, 025 */ 026public interface HybsProcess { 027 028 /** 029 * 引数形式を解析する Argument オブジェクトに、引数を設定します。 030 * Argument の文字列から、引数かプロパティをセットします。 031 * [プロパティ]のキー部の大文字・小文字は、厳格に判定しています。 032 * Argument の文字列には、タイプがあります。 033 * 034 * [コメント] : # で始まる引数で、使用されません。(登録もされません。) 035 * [引数] : #,-,= 以外で始まる通常の文字列。登録の順番が指定されます。 036 * [プロパティ]: - で始まり、キーと値を=で区切っているパラメータです。順序は無関係。 037 * 038 * @param arg 引数 039 */ 040 void putArgument( String arg ) ; 041 042 /** 043 * Argument の文字列から、プロパティをセットします。 044 * [プロパティ]のキー部の大文字・小文字は、厳格に判定しています。 045 * このメソッドは、引数 や コメントの判断を行いません。プロパティ のみ 046 * 設定されるものとして、処理します。 047 * プロパティの key=val が初めから分割されている場合の簡易メソッドです。 048 * 049 * @param key キー 050 * @param val 値 051 */ 052 void putArgument( String key,String val ); 053 054 /** 055 * プロセスの初期化を行います。初めに一度だけ、呼び出されます。 056 * 初期処理(ファイルオープン、DBオープン等)に使用します。 057 * 引数の ParamProcess は、データベース接続、ログファイル、 058 * エラー時メール送信などの基本設定を管理しているインターフェース 059 * です。 060 * 061 * @param paramProcess データベースの接続先情報などを持っているオブジェクト 062 */ 063 void init( ParamProcess paramProcess ) ; 064 065 /** 066 * プロセスの終了を行います。最後に一度だけ、呼び出されます。 067 * 終了処理(ファイルクローズ、DBクローズ等)に使用します。 068 * 069 * @param isOK トータルで、OKだったかどうか [true:成功/false:失敗] 070 */ 071 void end( boolean isOK ) ; 072 073 /** 074 * ディスプレイにメッセージを表示します。 075 * 076 * @param msg 表示するメッセージ 077 */ 078 void println( final String msg ) ; 079 080 /** 081 * ログファイルにメッセージを表示します。 082 * 083 * @param msg 表示するメッセージ 084 */ 085 void logging( final String msg ) ; 086 087 /** 088 * ディスプレイ出力する LoggerProcess オブジェクトをセットします。 089 * 090 * @param logger LoggerProcessオブジェクト 091 */ 092 void setLoggerProcess( final LoggerProcess logger ); 093 094 /** 095 * プロセスの処理結果のレポート表現を返します。 096 * 処理プログラム名、入力件数、出力件数などの情報です。 097 * この文字列をそのまま、標準出力に出すことで、結果レポートと出来るような 098 * 形式で出してください。 099 * 100 * @return 処理結果のレポート 101 */ 102 String report() ; 103 104 /** 105 * このクラスの使用方法を返します。 106 * 107 * @return このクラスの使用方法 108 */ 109 String usage() ; 110 111}