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.hayabusa.resource.ResourceManager; 020 021 import java.io.BufferedReader; 022 023 /** 024 * DBTableModel インターフェース のオブジェクトをReader を用?入力する為の??通インターフェースです? 025 * 026 * @og.group ファイル入? 027 * 028 * @version 4.0 029 * @author Kazuhiko Hasegawa 030 * @since JDK5.0, 031 */ 032 public interface TableReader { 033 034 /** 035 * ヘッ????の入力時の区??? 036 */ 037 String TAB_SEPARATOR = "\t"; // ?区??? 038 039 /** 040 * DBTableModel から ?式???タを作?して,Reader より読み取ります? 041 * こ?メソ?は、EXCEL 読み込み時に使用します? 042 * 043 * @og.rev 4.0.0.0 (2006/09/31) 新規追? 044 * 045 * @see #isExcel() 046 */ 047 void readDBTable() ; 048 049 /** 050 * DBTableModel から ?式???タを作?して,Reader より読み取ります? 051 * 052 * @og.rev 3.5.4.3 (2004/01/05) 引数に、BufferedReader を受け取ル要に変更します? 053 * 054 * @param reader BufferedReaderオブジェク? 055 */ 056 void readDBTable( final BufferedReader reader ) ; 057 058 /** 059 * リソースマネージャーをセ?します? 060 * これは、??ロケール)に応じ?DBColumn をあらかじめ設定しておく為に 061 * ?です? 062 * リソースマネージャーが設定されて???また?、所定?キーの DBColumn ? 063 * リソースに存在しな??合?、?部で DBColumn オブジェクトを作?します? 064 * 065 * @og.rev 4.0.0.0 (2005/01/31) lang ?ResourceManager へ変更 066 * 067 * @param resource リソースマネージャー 068 */ 069 void setResourceManager( final ResourceManager resource ) ; 070 071 /** 072 * ?の DBTableModel を返します? 073 * 074 * @return DBTableModelオブジェク? 075 */ 076 DBTableModel getDBTableModel() ; 077 078 /** 079 * ??タを読み込??合?,区??をセ?します? 080 * 081 * なお,このメソ?は,サブクラスによっては,使用しな??合があります? 082 * もし?使用しな?ブクラスを作?する場合?, UnsupportedOperationException 083 * ?throw するように,サブクラスで実?て下さ?? 084 * 085 * @param separator 区??? 086 */ 087 void setSeparator( final String separator ) ; 088 089 /** 090 * DBTableModelの??タとして登録する?件数をこの値に設定します? 091 * サーバ?のメモリ?と応答時間?確保?為です? 092 * 093 * @return ?検索件数 094 */ 095 int getMaxRowCount() ; 096 097 /** 098 * DBTableModelの??タとして登録する?件数をこの値に設定します? 099 * サーバ?のメモリ?と応答時間?確保?為です? 100 * 101 * @param maxRowCount ?検索件数 102 */ 103 void setMaxRowCount( final int maxRowCount ) ; 104 105 /** 106 * DBTableModelの??タとしてEXCELファイルを読み込?き?シート名を設定します? 107 * これにより、?の形式?異なるデータを?次読み込?と??シートを?して 108 * 読み取ることが可能になります? 109 * sheetNos と sheetName が同時に?された場合?、sheetNos が優先されます?エラーにはならな??でご注意く??? 110 * のでご注意く??? 111 * こ?メソ?は、isExcel() == true の場合?み利用されます? 112 * 113 * @og.rev 3.5.4.2 (2003/12/15) 新規追? 114 * 115 * @param sheetName シート名 116 * @see #setSheetNos( String ) 117 */ 118 void setSheetName( final String sheetName ) ; 119 120 /** 121 * EXCELファイルを読み込?き?シート番号を指定しま?初期値:0)? 122 * 123 * EXCEL読み込み時に?シートをマ?ジして取り込みます? 124 * シート番号は? から始まる数字で表します? 125 * ヘッ??は、最初?シート?カラ?置に合わせます????ータイトルの自動認識?ありません。? 126 * よって、指定するシート?、すべて同?イアウトでな?取り込み時にカラ??ずれが発生します? 127 * 128 * シート番号の??、カンマ区?で、??できます?また?N-M の様にハイフンで繋げることで? 129 * N 番から、M 番のシート?を??可能です?また?"*" による、?シート指定が可能です? 130 * これら??合わせも可能です???0,1,3,5-8,10-* ?? 131 * ただし?"*" に関しては例外的に、?字だけで、すべてのシートを表すか、N-* を最後に?するかの 132 * どちらかです?途中には?*" は、現れません? 133 * シート番号は??1,1,2,2)??転(3,2,1) での?が可能です?これは、その??で、読み込まれます? 134 * sheetNos と sheetName が同時に?された場合?、sheetNos が優先されます?エラーにはならな??でご注意く??? 135 * こ?メソ?は、isExcel() == true の場合?み利用されます? 136 * 137 * 初期値は??第?ート?です? 138 * 139 * @og.rev 5.5.7.2 (2012/10/09) 新規追? 140 * 141 * @param sheetNos EXCELファイルのシート番号??から始まる? 142 * @see #setSheetName( String ) 143 */ 144 void setSheetNos( final String sheetNos ) ; 145 146 /** 147 * EXCELファイルを読み込?き?シート単位?固定?を設定するため?カラ?とアドレスを指定します? 148 * カラ?は、カンマ区?で?します? 149 * 対応するアドレスを?EXCEL上??列を?から始まる整数でカンマ区?で?します? 150 * これにより、シート???書かれて???を?DBTableModel のカラ?固定?として 151 * 設定することができます? 152 * 例として、DB定義書で、テーブル名をシート?全レコードに設定したい場合などに使?す? 153 * こ?メソ?は、isExcel() == true の場合?み利用されます? 154 * 155 * @og.rev 5.5.8.2 (2012/11/09) 新規追? 156 * 157 * @param constKeys 固定?となるカラ?(CSV形? 158 * @param constAdrs 固定?となるアドレス(????・・・) 159 */ 160 void setSheetConstData( final String constKeys,final String constAdrs ) ; 161 162 /** 163 * ここに?されたカラ??に NULL が現れた時点で読み取りを中止します? 164 * 165 * これは、指定?カラ????と?事を条件に、そのレコードだけを読み取る処?行います? 166 * ?Sheetの場合?、次のSheetを読みます? 167 * 現時点では、Excel の場合?み有効です? 168 * 169 * @og.rev 5.5.8.2 (2012/11/09) 新規追? 170 * 171 * @param clm カラ?? 172 */ 173 void setNullBreakClm( final String clm ) ; 174 175 /** 176 * こ?クラスが?EXCEL対応機?を持って?かど?を返します? 177 * 178 * EXCEL対応機?とは、シート名のセ?、読み込み?ァイルの 179 * Fileオブジェクト取得などの、特殊機?です? 180 * 本来は、インターフェースを?けるべきと?ますが、taglib クラス等? 181 * 関係があり、問?わせによる条件?で対応します? 182 * 183 * @og.rev 3.5.4.3 (2004/01/05) 新規追? 184 * 185 * @return EXCEL対応機?を持って?かど? 186 */ 187 boolean isExcel() ; 188 189 /** 190 * 読み取り?ァイル名をセ?します?(DIR + Filename) 191 * これは、EXCEL追??として実?れて?す? 192 * 193 * @og.rev 3.5.4.3 (2004/01/05) 新規作? 194 * 195 * @param filename 読み取り?ァイル? 196 */ 197 void setFilename( final String filename ) ; 198 199 /** 200 * 読み取り?ァイルのカラ??を?外部(タグ)より?します? 201 * ファイルに記述され?#NAME より優先して使用されます? 202 * 203 * @og.rev 3.5.4.5 (2004/01/23) 新規作? 204 * 205 * @param clms 読み取り?ァイルのカラ??(カンマ区??? 206 */ 207 void setColumns( final String clms ) ; 208 209 /** 210 * 読み取り?ァイルのエンコード文字?を指定します? 211 * ファイルは、BufferedReader で受け取る為、本来は、エンコード?不要ですが? 212 * 固定長ファイルの読み取り時?バイトコード?割時に、指定?エンコードで 213 * ?する?があります?(例えば、半角文字?、Shift_JIS では?バイ? 214 * 215 * @og.rev 3.5.4.5 (2004/01/23) 新規作? 216 * 217 * @param enc ファイルのエンコード文字? 218 */ 219 void setEncode( final String enc ) ; 220 221 /** 222 * 行番号??を?使用して?(true)/して??false)を指定します? 223 * 224 * 通常のフォーマットでは、各行?先?に行番号が?力されて?す? 225 * 読み取り時に?NAME 属?を使用する場合?、この行番号を無視して?す? 226 * #NAME 属?を使用せず、columns 属?でカラ?を指定する??他シス?の 227 * 出力ファイルを読み取るケース?では、行番号も存在しな?ースがあり? 228 * そ?様な場合に、useNumber="false" を指定すれ?、データの??から読み取り始めます? 229 * こ?場合?出力データのカラ??並び?変更された?合?columns 属?? 230 * ?しなおす?があります?で、できる??NAME 属?を使用するように 231 * してください? 232 * なお?EXCEL 入力には、この設定?適用されません?暫定対? 233 * 初期値は、true(使用する) です? 234 * 235 * @og.rev 3.7.0.5 (2005/04/11) 新規追? 236 * 237 * @param useNumber 行番号?? [true:使用して?/false:して?い] 238 */ 239 void setUseNumber( final boolean useNumber ) ; 240 241 /** 242 * ??タの読み飛?し件数を設定します? 243 * 244 * TAB区??ストやEXCEL等???タの読み始めの初期値を指定します? 245 * ファイルの先?行が?行としてカウントします?で、設定?は、読み飛?? 246 * 件数になります?(?と?すると?件読み飛?し??行目から読み込みます?) 247 * 読み飛?し?、コメント行などは、無視します?で、実際の行数?み飛?します? 248 * ?NAME属???columns 属?は、有効です? 249 * 250 * @og.rev 5.1.6.0 (2010/05/01) 新規作? 251 * 252 * @param count 読み始めの初期値 253 */ 254 void setSkipRowCount( final int count ) ; 255 256 /** 257 * 読取??ラベルをコードリソースに?換を行うかど?を指定します? 258 * 259 * TableWriter_Renderer 系のクラスで出力した?合?、コードリソースがラベルで出力されます? 260 * そ?ファイルを読み取ると、当然、エラーになります? 261 * ここでは、コードリソースのカラ?対して、ラベルからコードを求める?変換を行うことで? 262 * Renderer 系で出力したファイルを取り込?とができるようにします? 263 * 264 * ここでは、TableWriter 系と同様に、TableReader_Renderer 系のクラスを作るのではなく? 265 * 属?値のフラグで、制御します? 266 * ??は、TableWriter 系も?して、同様?フラグで制御するように変更する予定です? 267 * 268 * @og.rev 5.2.1.0 (2010/10/01) 新規作? 269 * 270 * @param useRenderer コードリソースのラベル?換を行うかど?を指? 271 */ 272 void setUseRenderer( final boolean useRenderer ) ; 273 274 /** 275 * ????を?力するかど?を指定します? 276 * 277 * EXCELなどを読み取る場合?シート?ージで読み取ると、エラー時?行番号が?連番になるため? 278 * どのシートなのか?判らなくなります? 279 * そこで、ど?てもわからなくなった?合に備えて、デバッグ??を?力できるようにします? 280 * 通常は使用しませんので、設定を無視します? 281 * 初期値は、false:????を?力しな?です? 282 * 283 * @og.rev 5.5.7.2 (2012/10/09) 新規作? 284 * 285 * @param useDebug ????を?力するかど?を指? 286 */ 287 void setDebug( final boolean useDebug ) ; 288 }