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 * 書込処?コードリソースのラベル変換を行うかど?を指定します?
269 *
270 * コードリソースをそのままの値で出力すると、数字や記号になり何が書かれて?の?
271 * 不?になります?
272 * これは、コードリソースをラベルに変換して出力するかど?を指定します?
273 * 当然、コード?ユニ?クですが、ラベルはユニ?クになるかど?保障はされて?せんので
274 * TableReader 系で読み込??合には、リスクが発生します?
275 * また?TableReader 系で読み込??合にも?ラベルからコードを求める?変換を行うように?
276 * setUseRenderer メソ?で?する?があります?
277 *
278 * 従来は、TableWriter 系に、TableWriter_Renderer 系のクラスを作って対応して?したが?
279 * こ?メソ?の属?値のフラグで、制御します?
280 *
281 * @og.rev 5.2.1.0 (2010/10/01) 新規作?
282 *
283 * @param useRenderer コードリソースのラベル変換を行うかど?を指?
284 */
285 void setUseRenderer( final boolean useRenderer ) ;
286 }