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.hayabusa.report;
017
018import org.opengion.hayabusa.db.DBTableModel;
019import org.opengion.hayabusa.resource.ResourceManager;
020
021import java.io.File;
022
023/**
024 * DBTableModel インターフェース のオブジェクトを雛型ファイルに適用して レポートを作成する為の,共通インターフェースです。
025 *
026 * @og.group 帳票システム
027 *
028 * @version  4.0
029 * @author   Kazuhiko Hasegawa
030 * @since    JDK5.0,
031 */
032public interface DBTableReport {
033
034        /**
035         * DBTableModel から 各形式のデータを作成して,PrintWriter に書き出します。
036         *
037         */
038        void writeReport() ;
039
040        /**
041         * 雛型ファイル名をセットします。
042         *
043         * @og.rev 3.6.0.0 (2004/09/17) メソッド名の変更。setInputFile ⇒ setTemplateFile
044         * @og.rev 3.8.0.0 (2005/06/07) 引数を String  ⇒ File に変更
045         *
046         * @param   inFile 雛型ファイル名
047         */
048        void setTemplateFile( File inFile ) ;
049
050        /**
051         * 最初のページのみに使用する雛型ファイル名をセットします。
052         *
053         * @og.rev 3.6.0.0 (2004/09/17) 新規追加
054         * @og.rev 3.8.0.0 (2005/06/07) 引数を String  ⇒ File に変更
055         *
056         * @param   inFile 最初のページの雛型ファイル名
057         */
058        void setFirstTemplateFile( File inFile ) ;
059
060        /**
061         * 変換後ファイルを出力するディレクトリ名をセットします。
062         *
063         * @param   outDir 出力ディレクトリ名
064         */
065        void setOutputDir( String outDir ) ;
066
067        /**
068         * 変換後ファイルキーをセットします。
069         * キーとは、拡張子の無い状態までのファイル名です。
070         * 変換後ファイルは、複数発生します。
071         * 実際に出力されるファイル名は、outFile + "_連番.html" となります。
072         *
073         * @param   outFile 出力ファイル名の共通部
074         */
075        void setOutputFileKey( String outFile ) ;
076
077        /**
078         * 帳票起動された要求番号をセットします。
079         *
080         * @og.rev 3.8.5.1 (2006/04/28) 新規追加
081         *
082         * @param   ykno 要求番号
083         */
084        void setYkno( String ykno ) ;
085
086        /**
087         * DBTableModel をセットします。
088         *
089         * @param       table   DBTableModelオブジェクト
090         */
091        void setDBTableModel( DBTableModel table ) ;
092
093        /**
094         * 固定部の key 部分を指定します。
095         * カンマで複数指定できます。
096         *
097         * @param   headerKeys 固定部のキー配列(可変長引数)
098         */
099        void setHeaderKeys( String... headerKeys ) ;
100
101        /**
102         * 固定部のkey に対応する値を指定します。
103         * カンマで複数指定で、リクエスト情報でも設定できます。
104         *
105         * @param   headerVals 固定部の値配列(可変長引数)
106         */
107        void setHeaderVals( String... headerVals ) ;
108
109        /**
110         * 繰り返し部の終了後に表示する key 部分を指定します。
111         * カンマで複数指定できます。
112         *
113         * @param   footerKeys 繰り返し部の終了後に表示するキー配列(可変長引数)
114         */
115        void setFooterKeys( String... footerKeys ) ;
116
117        /**
118         * 固定部のkey に対応する値を指定します。
119         * カンマで複数指定で、リクエスト情報でも設定できます。
120         *
121         * @param   footerVals 繰り返し部の終了後に表示する値配列(可変長引数)
122         */
123        void setFooterVals( String... footerVals ) ;
124
125        /**
126         * ボディー部(繰り返し部)がなくなったときに、それ以降を表示するかどうかを指定します。
127         * true では、それ以降を出力しません。
128         * デフォルト "true" (なくなった時点で、出力しない。)です。
129         *
130         * @param   pageEndCut 繰り返し部の終了後に継続処理するかどうか (true:処理しない/false:処理する)
131         */
132        void setPageEndCut( boolean pageEndCut ) ;
133
134        /**
135         * リソースマネージャーをセットします。
136         * これは、言語(ロケール)に応じた DBColumn をあらかじめ設定しておく為に
137         * 必要です。
138         * リソースマネージャーが設定されていない、または、所定のキーの DBColumn が
139         * リソースに存在しない場合は、内部で DBColumn オブジェクトを作成します。
140         *
141         * @og.rev 4.0.0.0 (2005/01/31) lang ⇒ ResourceManager へ変更
142         *
143         * @param  resource リソースマネージャー
144         */
145        void setResourceManager( final ResourceManager resource );
146
147        /**
148         * 帳票ID をセットします。
149         * この帳票IDを利用して、画像ファイル等のセーブディレクトリを求めます。
150         *
151         * @og.rev 3.6.1.0 (2005/01/05) 新規作成
152         *
153         * @param   listId 帳票ID
154         */
155        void setListId( String listId ) ;
156}