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 }