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 */
016 package org.opengion.hayabusa.io;
017
018 import org.opengion.hayabusa.db.DBTableModel;
019 import org.opengion.fukurou.util.HybsEntry;
020
021 import java.io.PrintWriter;
022 import java.util.List;
023
024 /**
025 * DBTableModel インターフェース のオブジェクトをPrintWriter を用ã�?�¦出力する為の?Œå?通インターフェースですã?
026 *
027 * @og.group ファイル出åŠ?
028 *
029 * @version 4.0
030 * @author Kazuhiko Hasegawa
031 * @since JDK5.0,
032 */
033 public interface TableWriter {
034
035 /** タブé?目区åˆ?‚Šæ–?? */
036 String TAB_SEPARATOR = "\t"; // タブé?目区åˆ?‚Šæ–??
037
038 /** カンマé?目区åˆ?‚Šæ–?? */
039 String CSV_SEPARATOR = ","; // カンマé?目区åˆ?‚Šæ–?? 3.5.6.0 (2004/06/18)
040
041 /**
042 * 数字タイプã?タイプ判定用リスãƒ?
043 */
044 // String NUMBER_TYPE_LIST = "|S9|R|"; // 3.5.6.0 (2004/06/18)
045
046 /**
047 * DBTableModel から å�?½¢式ã?ãƒ??タを作æ?して,PrintWriter に書きå?しますã?
048 * こã?メソãƒ?ƒ‰は、EXCEL 書きå?し時に使用しますã?
049 *
050 * @og.rev 4.0.0.0 (2006/09/31) 新規追åŠ?
051 * @see #isExcel()
052 */
053 void writeDBTable() ;
054
055 /**
056 * DBTableModel から å�?½¢式ã?ãƒ??タを作æ?して,PrintWriter に書きå?しますã?
057 *
058 * @og.rev 3.5.4.3 (2004/01/05) 引数に PrintWriter を受け取るよã�?�«変更しますã?
059 *
060 * @param writer PrintWriterオブジェクãƒ?
061 */
062 void writeDBTable( final PrintWriter writer ) ;
063
064 /**
065 * DBTableModel をセãƒ?ƒˆしますã?
066 *
067 * @og.rev 3.5.4.2 (2003/12/15) lang 引数も同時に設定しますã?
068 *
069 * @param table DBTableModelオブジェクãƒ?
070 * @param lang è¨?ª?
071 */
072 void setDBTableModel( final DBTableModel table, final String lang ) ;
073
074 /**
075 * å†?ƒ¨の DBTableModel を返しますã?
076 *
077 * @return DBTableModelオブジェクãƒ?
078 */
079 DBTableModel getDBTableModel() ;
080
081 /**
082 * DBTableModelの出力é?をセãƒ?ƒˆしますã?
083 * Label,Name,Size,Class,Data のå�?ƒ•ィールドã?頭æ–?—ã?アルファベットで
084 * 出力é?を設定しますã?
085 *
086 * @param headerSequence 出力é? (LNSCD など)
087 */
088 void setHeaderSequence( final String headerSequence ) ;
089
090 /**
091 * DBTableModelの出力é?を返しますã?
092 * Label,Name,Size,Class,Data のå�?ƒ•ィールドã?頭æ–?—ã?アルファベットで
093 * 出力é?を設定しますã?
094 *
095 * @return 出力é? (LNSCD など)
096 */
097 String getHeaderSequence() ;
098
099 /**
100 * ãƒ??タを書き込ã‚??合ã?,区åˆ?‚Šæ–?—をセãƒ?ƒˆしますã?
101 * なお,このメソãƒ?ƒ‰は,サブクラスによっては,使用しなã�??合がありますã?
102 * もし?Œ使用しなã�?‚µブクラスを作æ?する場合ã?, UnsupportedOperationException
103 * ã‚?throw するように,サブクラスで実è£?�—て下さã�??
104 *
105 * @param separator 区åˆ?‚Šæ–??
106 */
107 void setSeparator( final String separator ) ;
108
109 /**
110 * DBTableModelのãƒ??タとして書き込ã‚?�¨きに、追åŠ?ƒ¢ードで書き込ã‚?�‹どã�?�‹[true/false]を設定しますã?
111 *
112 * @og.rev 3.5.4.2 (2003/12/15) 新規追åŠ?
113 *
114 * @param flag 追åŠ?ƒ¢ードで書き込ã‚?�‹どã�?�‹[true:追åŠ?ƒ¢ーãƒ?false:通常モード]
115 */
116 void setAppend( final boolean flag ) ;
117
118 /**
119 * DBTableModelのãƒ??タとして書き込ã‚?�¨きに、追åŠ?ƒ¢ードで書き込ã‚?�‹どã�?�‹を取得しますã?
120 *
121 * @og.rev 3.5.4.2 (2003/12/15) 新規追åŠ?
122 *
123 * @return 追åŠ?ƒ¢ードで書き込ã‚?�‹どã�?�‹[true:追åŠ?ƒ¢ーãƒ?false:通常モード]
124 */
125 boolean isAppend() ;
126
127 /**
128 * DBTableModelのãƒ??タとして書き込ã‚?�¨きã?シート名を設定しますã?
129 * これは、EXCEL追åŠ?©Ÿè?として実è£?�•れてã�?�¾すã?
130 *
131 * @og.rev 3.5.4.2 (2003/12/15) 新規追åŠ?
132 *
133 * @param sheetName シート名
134 */
135 void setSheetName( final String sheetName ) ;
136
137 /**
138 * EXCEL雛型参è?ファイルのシート名を設定しますã?
139 * これは、EXCEL追åŠ?©Ÿè?として実è£?�•れてã�?�¾すã?
140 *
141 * EXCELファイルを書きå?す時にã€?››型として参ç?するシート名を指定しますã?
142 * これにより、è¤?•°の形式ã?異なるデータをé?次書きå?したã‚?appendモードを併用)する
143 * ことã‚??シートをæŒ?®šして新規にEXCELを作æ?する場合にフォーãƒ?‚’設定する事が可能になりますã?
144 * 初期値は、null(第ä¸?‚·ーãƒ? ですã?
145 *
146 * @og.rev 3.5.4.3 (2004/01/05) 新規追åŠ?
147 *
148 * @param sheetName シート名
149 */
150 void setRefSheetName( final String sheetName ) ;
151
152 /**
153 * こã?クラスがã?EXCEL対応機è?を持ってã�?‚‹かどã�?�‹を返しますã?
154 *
155 * EXCEL対応機è?とは、シート名のセãƒ?ƒˆã€?››型参照ファイル名ã?セãƒ?ƒˆã€?
156 * 書き込みå…?ƒ•ァイルのFileオブジェクト取得などの、特殊機è?ですã?
157 * 本来は、インターフェースをå?けるべきとè€?�ˆますが、taglib クラス等ã?
158 * 関係があり、問ã�?�ˆわせによる条件åˆ?²�で対応しますã?
159 *
160 * @og.rev 3.5.4.3 (2004/01/05) 新規追åŠ?
161 *
162 * @return EXCEL対応機è?を持ってã�?‚‹かどã�?�‹
163 */
164 boolean isExcel() ;
165
166 /**
167 * 出力å?ファイル名をセãƒ?ƒˆしますã?(DIR + Filename)
168 * これは、EXCEL追åŠ?©Ÿè?として実è£?�•れてã�?�¾すã?
169 *
170 * @og.rev 3.5.4.3 (2004/01/05) 新規作æ?
171 *
172 * @param filename 出力å?ファイルå�?
173 */
174 void setFilename( final String filename ) ;
175
176 /**
177 * EXCEL雛型参è?ファイル名をセãƒ?ƒˆしますã?(DIR + Filename)
178 * これは、EXCEL追åŠ?©Ÿè?として実è£?�•れてã�?�¾すã?
179 *
180 * @og.rev 3.5.4.3 (2004/01/05) 新規作æ?
181 *
182 * @param filename EXCEL雛型参è?ファイルå�?
183 */
184 void setRefFilename( final String filename ) ;
185
186 /**
187 * 読み取りå…?ƒ•ァイルのエンコード文字å?を指定しますã?
188 * ファイルは、BufferedReader で受け取る為、本来は、エンコードã?不要ですがã€?
189 * 固定長ファイルの読み取り時ã?バイトコードå?割時に、指定ã?エンコードで
190 * åˆ?‰²するå¿?¦�がありますã?(例えば、半角文字ã?、Shift_JIS ではã€?¼‘バイãƒ?
191 *
192 * @og.rev 3.5.4.5 (2004/01/23) 新規作æ?
193 *
194 * @param enc ファイルのエンコード文字å?
195 */
196 void setEncode( final String enc ) ;
197
198 /**
199 * 行番号æƒ??をã?出力すã‚?true)/しなã�?false)を指定しますã?
200 *
201 * 通常のフォーマットでは、各行ã?先é?に行番号をå?力しますã?
202 * これはã€?NAME 属æ?を使用する場合には、å¿?�š出力するå¿?¦�がありますã?
203 * (#NAME 属æ?は、読み取り時には、å¿??ですã?)
204 * こã?、å?頭の行番号が不要な場å�?つまりã?他ã?シスãƒ?ƒ へのãƒ??タ出力ã?
205 * こã?シスãƒ?ƒ ではã€?NAME 属æ?がå?力されなã�?�Ÿめã?読み込みできませんã€?
206 * こã?行番号をå?力しなã�?‚ˆã�?�«できますã?
207 * 初期値は、true(出力すã‚? ですã?
208 *
209 * @og.rev 3.7.0.2 (2005/02/14) 新規追åŠ?
210 *
211 * @param useNumber 行番号æƒ?? [true:出力すã‚?false:しない]
212 */
213 void setUseNumber( final boolean useNumber ) ;
214
215 /**
216 * パラメーターリストをセãƒ?ƒˆしますã?
217 * å†?ƒ¨は、HybsEntry クラスを持ってã�?�¾すã?
218 * 引数がã?null の場合ã?、何もしませんã€?
219 *
220 * @og.rev 4.0.0.0 (2005/01/31) 新規追åŠ?
221 *
222 * @param listParam パラメーターリスãƒ?
223 */
224 void setParam( final List<HybsEntry> listParam ) ;
225
226 /**
227 * 出力å?ファイルのカラãƒ??をã?外部(タグ)よりæŒ?®šしますã?
228 * ただしã?æŒ?®šã?カラãƒ?��は、DBTableModel上に存在してã�?‚‹å¿?¦�がありますã?
229 *
230 * @og.rev 4.0.0.0 (2005/11/30) 新規追åŠ?
231 *
232 * @param clms 出力å?ファイルのカラãƒ??(カンマ区åˆ?‚Šæ–??
233 */
234 void setColumns( final String clms ) ;
235
236 /**
237 * EXCEL出力時のãƒ?ƒ•ォルトフォント名を設定しますã?
238 * これは、EXCEL追åŠ?©Ÿè?として実è£?�•れてã�?�¾すã?
239 *
240 * EXCELファイルを書きå?す時に、デフォルトフォント名を指定しますã?
241 * フォント名は、EXCELのフォント名をそのまま使用してくださいã€?
242 * å†?ƒ¨çš?�«、POI の org.apache.poi.hssf.usermodel.HSSFFont#setFontName( String )
243 * に設定されますã?
244 * 初期値は、シスãƒ?ƒ リソース の TABLE_WRITER_DEFAULT_FONT_NAME ですã?
245 *
246 * @og.rev 3.8.5.3 (2006/08/07) 新規追åŠ?
247 *
248 * @param fontName ãƒ?ƒ•ォルトフォント名
249 */
250 void setFontName( String fontName ) ;
251
252 /**
253 * EXCEL出力時のãƒ?ƒ•ォルトフォントã?イント数を設定しますã?
254 * これは、EXCEL追åŠ?©Ÿè?として実è£?�•れてã�?�¾すã?
255 *
256 * EXCELファイルを書きå?す時に、デフォルトã?イント数を指定しますã?
257 * å†?ƒ¨çš?�«、POI の org.apache.poi.hssf.usermodel.HSSFFont#setFontHeightInPoints( short )
258 * に設定されますã?
259 * 初期値は、シスãƒ?ƒ リソース の TABLE_WRITER_DEFAULT_FONT_POINTS ですã?
260 *
261 * @og.rev 3.8.5.3 (2006/08/07) 新規追åŠ?
262 *
263 * @param point フォントã?イント数
264 */
265 void setFontPoint( short point ) ;
266
267 /**
268 * ãƒ??タの書き込み開始位置を設定しまã�?初期値:0)ã€?
269 *
270 * TAB区åˆ?‚Šãƒ?‚ストやEXCEL等ã?ãƒ??タの書き込みの開始位置を指定しますã?
271 * 属æ?名ã?、行を飛ã?すå?ç�?�¨ã�?�†ことで、readTable タグと同じ名称ですã?
272 * ファイルの先é?行がã€?¼�行としてカウントしますã?で、設定å?は、読み飛ã?ã�?
273 * 件数になりますã?(?‘とæŒ?®šするとã€?¼‘件読み飛ã?しã??’行目から読み込みますã?)
274 * 行ã?読み飛ã?しと、カラãƒ??読み飛ã?ã�?columns)、refFileURL、refFilenameã€?
275 * refSheetName とともに使用すれば、ある程度のレイアウト設定が可能ですã?
276 * なおã?こã?機è?は、TableWriter_Excel のみに実è£?�—ますã?
277 *
278 * @og.rev 5.7.9.0 (2014/08/08) 新規作æ?
279 *
280 * @param skipRowCount 書き込み開始位置
281 */
282 void setSkipRowCount( int skipRowCount );
283
284 /**
285 * 書込処ç�?�§コードリソースのラベル変換を行うかどã�?�‹を指定しますã?
286 *
287 * コードリソースをそのままの値で出力すると、数字や記号になり何が書かれてã�?‚‹のã�?
288 * 不æ?になりますã?
289 * これは、コードリソースをラベルに変換して出力するかどã�?�‹を指定しますã?
290 * 当然、コードã?ユニã?クですが、ラベルはユニã?クになるかどã�?�‹保障はされてã�?�¾せんので
291 * TableReader 系で読み込ã‚??合には、リスクが発生しますã?
292 * またã?TableReader 系で読み込ã‚??合にもã?ラベルからコードを求めるé?変換を行うようにã€?
293 * setUseRenderer メソãƒ?ƒ‰でæŒ?®šするå¿?¦�がありますã?
294 *
295 * 従来は、TableWriter 系に、TableWriter_Renderer 系のクラスを作って対応してã�?�¾したがã?
296 * こã?メソãƒ?ƒ‰の属æ?値のフラグで、制御しますã?
297 *
298 * @og.rev 5.2.1.0 (2010/10/01) 新規作æ?
299 *
300 * @param useRenderer コードリソースのラベル変換を行うかどã�?�‹を指å®?
301 */
302 void setUseRenderer( final boolean useRenderer ) ;
303 }