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 }