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 java.io.BufferedReader;
019 import java.util.Map;
020
021 import org.opengion.fukurou.util.CSVTokenizer;
022 import org.opengion.fukurou.util.StringUtil;
023 import org.opengion.hayabusa.common.HybsSystem;
024 import org.opengion.hayabusa.db.DBColumn;
025 import org.opengion.hayabusa.db.DBTableModel;
026 import org.opengion.hayabusa.resource.ResourceManager;
027 import org.opengion.hayabusa.resource.CodeData;
028
029 /**
030 * æŒ?®šã?区åˆ?‚Š記号(初期値:タブ区åˆ?‚Š)ファイルの読み取りクラスですã?
031 *
032 * 名前?Œデータの入力部のみオーバã?ライドすれã??Œ各種入力フォーマットに合わせた
033 * サブクラスを実現する事が可能ですã?
034 *
035 * @og.group ファイル入åŠ?
036 *
037 * @version 4.0
038 * @author Kazuhiko Hasegawa
039 * @since JDK5.0,
040 */
041 public abstract class AbstractTableReader implements TableReader {
042 //* こã?プログラãƒ??VERSIONæ–?—å?を設定しますã? {@value} */
043 private static final String VERSION = "5.5.8.5 (2012/11/27)" ;
044
045 private String separator = TAB_SEPARATOR; // é ?›®区åˆ?‚Šæ–??
046 private ResourceManager resource = null; // 4.0.0 (2005/01/31)
047 private int maxRowCount = HybsSystem.sysInt( "DB_MAX_ROW_COUNT" ) ;
048
049 protected DBTableModel table = null;
050 protected DBColumn[] dbColumn = null;
051
052 // 3.5.4.5 (2004/01/23) カラãƒ?��の外部æŒ?®šを出来る様にするã€?
053 // private String columns = null; // 外部æŒ?®šã?カラãƒ?��
054 protected String columns = null; // 外部æŒ?®šã?カラãƒ?�� ( 4.3.4.7 (2009/01/22) protectedに変更 )
055 private String encode = null;
056 private boolean useNumber = true; // 3.7.0.5 (2005/04/11)
057
058 private int skipRowCount = 0; // 5.1.6.0 (2010/05/01) ãƒ??タの読み飛ã?し設å®?
059 private boolean useRenderer = false; // 5.2.1.0 (2010/10/01)
060
061 // 5.2.1.0 (2010/10/01) コードリソース毎ã?ラベルé€?¼•きマッãƒ?
062 private Map<?,?>[] maps = null; // 5.5.1.7 (2012/04/16) ワイルドカードをæŒ?®?
063
064 private boolean useDebug = false; // 5.5.7.2 (2012/10/09) ãƒ?ƒ�ãƒ?‚°æƒ??の出力するかどã�?�‹
065
066 /**
067 * DBTableModel から å�?½¢式ã?ãƒ??タを作æ?して,BufferedReader より読み取りますã?
068 * コメンãƒ?空行を除きã?æœ??の行ã?、å¿?�šé ?›®名がå¿?¦�ですã?
069 * それ以降ã?、コメンãƒ?空行を除きã?ãƒ??タとして読み込んでã�?��ますã?
070 * こã?メソãƒ?ƒ‰は、EXCEL 読み込み時に使用しますã?
071 *
072 * @see #isExcel()
073 */
074 abstract public void readDBTable();
075
076 /**
077 * DBTableModel から å�?½¢式ã?ãƒ??タを作æ?して,BufferedReader より読み取りますã?
078 * コメンãƒ?空行を除きã?æœ??の行ã?、å¿?�šé ?›®名がå¿?¦�ですã?
079 * それ以降ã?、コメンãƒ?空行を除きã?ãƒ??タとして読み込んでã�?��ますã?
080 *
081 * @param reader BufferedReaderオブジェクãƒ?
082 */
083 abstract public void readDBTable( final BufferedReader reader );
084
085 /**
086 * リソースマネージャーをセãƒ?ƒˆしますã?
087 * これは、è¨?ª?ロケール)に応じã�?DBColumn をあらかじめ設定しておく為に
088 * å¿?¦�ですã?
089 * リソースマネージャーが設定されてã�?�ªã�??またã?、所定ã?キーの DBColumn ã�?
090 * リソースに存在しなã�??合ã?、å?部で DBColumn オブジェクトを作æ?しますã?
091 *
092 * @og.rev 4.0.0.0 (2005/01/31) lang â‡?ResourceManager へ変更
093 *
094 * @param resource リソースマネージャー
095 */
096 public void setResourceManager( final ResourceManager resource ) {
097 this.resource = resource;
098 }
099
100 /**
101 * DBColumn オブジェクトをDBTable に設定しますã?
102 *
103 * @og.rev 3.5.4.2 (2003/12/15) private ã‚?protected に変更ã€?
104 * @og.rev 3.5.4.5 (2004/01/23) DBColumn 配å?に値をセãƒ?ƒˆしますã?
105 * @og.rev 5.2.1.0 (2010/10/01) useRenderer対å¿?コードリソース毎ã?ラベルé€?¼•き)
106 *
107 * @param names カラãƒ?��配å?
108 */
109 protected void setTableDBColumn( final String[] names ) {
110 dbColumn = new DBColumn[names.length] ; // 3.5.4.5 追åŠ?
111 for( int i=0; i<names.length; i++ ) {
112 DBColumn clm = resource.makeDBColumn( names[i] );
113 table.setDBColumn( i,clm );
114 dbColumn[i] = clm; // 3.5.4.5 追åŠ?
115 }
116
117 if( useRenderer ) {
118 maps = new Map<?,?>[names.length]; // 5.5.1.7 (2012/04/16) ワイルドカードをæŒ?®?
119 for( int i=0; i<names.length; i++ ) {
120 CodeData cd = dbColumn[i].getCodeData();
121 if( cd != null ) { maps[i] = cd.makeLabelMap(); }
122 else { maps[i] = null; }
123 }
124 }
125 }
126
127 /**
128 * DBTableModelオブジェクトにã€?¼‘行å?のãƒ??タを追åŠ?�—ますã?
129 * これ自体ã?、メソãƒ?ƒ‰の共通化による 拡張をしã‚?�™くするために用意しましたã€?
130 *
131 * @og.rev 5.2.1.0 (2010/10/01) 新規作æ?
132 *
133 * @param values ?‘行å?のãƒ??タ配å?
134 */
135 protected void setTableColumnValues( final String[] values ) {
136 if( useRenderer ) {
137 int clmSize = values.length;
138 for( int clmNo=0; clmNo<clmSize; clmNo++ ) {
139 if( maps[clmNo] != null ) {
140 String val = values[clmNo];
141 if( val == null ) { val = ""; }
142 else {
143 String tmp = (String)maps[clmNo].get( val );
144 if( tmp != null ) { values[clmNo] = tmp; }
145 else {
146 int sp = val.indexOf( ':' );
147 if( sp >= 0 ) {
148 values[clmNo] = val.substring( 0,sp );
149 }
150 }
151 }
152 }
153 }
154 }
155
156 table.addColumnValues( values );
157 }
158
159 /**
160 * ?‘行ã?ãƒ??タã‚?ãƒ??ブルモãƒ?ƒ«にセãƒ?ƒˆするようにåˆ?‰²しますã?
161 *
162 * なおã?読込みは?ŒNAMEé ?›®åˆ?‚’読み込みますã?ãƒ??タ件数が少なã�??合ã?ã€?
163 * "" をセãƒ?ƒˆしておきますã?
164 * ãƒ??タのåˆ?‰²は、separatoræ–?—を使用しますã?
165 *
166 * @og.rev 3.3.3.1 (2003/07/18) ファイルリーãƒ?ライト時に後ろスペã?スの除去を行いますã?
167 * @og.rev 3.7.0.5 (2005/04/11) useNumber 属æ?をè?慮しますã?
168 *
169 * @param data ?‘行ã?ãƒ??タ
170 * @param clmSize カラãƒ?•°
171 *
172 * @return åˆ?‰²された文字å?配å?
173 */
174 protected String[] readData( final String data,final int clmSize ) {
175 String[] rtnData = new String[ clmSize ];
176 CSVTokenizer token = new CSVTokenizer( data,separator.charAt(0) );
177 // è¶?‚¤レギュラー処ç�?æœ??の separator 以前ã?æ–?—ã?無視するã?
178 // 3.7.0.5 (2005/04/11)
179 if( useNumber ) { token.nextToken(); } // 先é?は行番号のため無視するã?
180
181 int clmNo = 0;
182 while( token.hasMoreTokens() ) {
183 String val = StringUtil.csvOutQuote( token.nextToken() );
184 if( val != null && val.startsWith( "'0" ) ) {
185 rtnData[clmNo++] = StringUtil.rTrim( val.substring( 1 ) );
186 }
187 else {
188 rtnData[clmNo++] = StringUtil.rTrim( val );
189 }
190 if( clmNo >= clmSize ) { break; } // 3.7.0.5 (2005/04/11) 多い場合ã?、以降を無視するã?
191 }
192 // EXCEL がã?終端TABを削除してしまã�?�Ÿめã?少なã�??合ã?埋めるã?
193 for( int i=clmNo; i<clmSize; i++ ) {
194 rtnData[i] = "";
195 }
196
197 return rtnData;
198 }
199
200 /**
201 * å†?ƒ¨の DBTableModel を返しますã?
202 *
203 * @return ãƒ??ブルモãƒ?ƒ«
204 */
205 public DBTableModel getDBTableModel() {
206 return table;
207 }
208
209 /**
210 * ãƒ??タを読み込ã‚??合ã?,区åˆ?‚Šæ–?—をセãƒ?ƒˆしますã?
211 *
212 * なお,このメソãƒ?ƒ‰は,サブクラスによっては,使用しなã�??合がありますã?
213 * もし?Œ使用しなã�?‚µブクラスを作æ?する場合ã?, UnsupportedOperationException
214 * ã‚?throw するように,サブクラスで実è£?�—て下さã�??
215 *
216 * @og.rev 3.1.1.0 (2003/03/28) 同期メソãƒ?ƒ‰(synchronized付き)を非同期に変更するã€?
217 *
218 * @param sep 区åˆ?‚Šæ–??
219 */
220 public void setSeparator( final String sep ) {
221 if( sep != null ) { this.separator = sep; }
222 }
223
224 /**
225 * ãƒ??タを書き込ã‚??合ã?,区åˆ?‚Šæ–?—を返しますã?
226 *
227 * @return 区åˆ?‚Šæ–??
228 */
229 public String getSeparator() {
230 return separator;
231 }
232
233 /**
234 * DBTableModelのãƒ??タとして登録するæœ?¤§件数をこの値に設定しまã�?
235 * (初期値:DB_MAX_ROW_COUNT[={@og.value org.opengion.hayabusa.common.SystemData#DB_MAX_ROW_COUNT}])ã€?
236 * サーバã?のメモリè³?º�と応答時間ã?確保ã?為ですã?
237 *
238 * @return æœ?¤§検索件数
239 */
240 public int getMaxRowCount() {
241 return maxRowCount;
242 }
243
244 /**
245 * DBTableModelのãƒ??タとして登録するæœ?¤§件数をこの値に設定しまã�?
246 * (初期値:DB_MAX_ROW_COUNT[={@og.value org.opengion.hayabusa.common.SystemData#DB_MAX_ROW_COUNT}])ã€?
247 * サーバã?のメモリè³?º�と応答時間ã?確保ã?為ですã?
248 *
249 * @og.rev 3.1.1.0 (2003/03/28) 同期メソãƒ?ƒ‰(synchronized付き)を非同期に変更するã€?
250 * @og.rev 5.5.8.5 (2012/11/27) 0を無制限として処ç�?�—ますã?
251 *
252 * @param maxRowCount æœ?¤§検索件数
253 */
254 public void setMaxRowCount( final int maxRowCount ) {
255 // this.maxRowCount = maxRowCount;
256 this.maxRowCount = ( maxRowCount > 0 ) ? maxRowCount : Integer.MAX_VALUE ;
257 }
258
259 /**
260 * DBTableModelのãƒ??タとしてEXCELファイルを読み込ã‚?�¨きã?シート名を設定しますã?
261 * これにより、è¤?•°の形式ã?異なるデータをé?次読み込ã‚?�“とã‚??シートをæŒ?®šして
262 * 読み取ることが可能になりますã?
263 * sheetNos と sheetName が同時にæŒ?®šされた場合ã?、sheetNos が優先されますã?エラーにはならなã�??でご注意くã�?�•ã�??
264 * のでご注意くã�?�•ã�??
265 * こã?メソãƒ?ƒ‰は、isExcel() == true の場合ã?み利用されますã?
266 *
267 * ※ こã?クラスでは実è£?�•れてã�?�¾せんã€?
268 *
269 * @og.rev 3.5.4.2 (2003/12/15) 新規追åŠ?
270 *
271 * @param sheetName シート名
272 */
273 public void setSheetName( final String sheetName ) {
274 String errMsg = "こã?メソãƒ?ƒ‰は、EXCEL追åŠ?©Ÿè?ですã?で、使用できませんã€?;
275 throw new UnsupportedOperationException( errMsg );
276 }
277
278 /**
279 * EXCELファイルを読み込ã‚?�¨きã?シート番号を指定しまã�?初期値:0)ã€?
280 *
281 * EXCEL読み込み時にè¤?•°シートをマã?ジして取り込みますã?
282 * シート番号はã€? から始まる数字で表しますã?
283 * ヘッãƒ??は、最初ã?シートã?カラãƒ?½�置に合わせますã??ˆã?ãƒ?ƒ€ータイトルの自動認識ã?ありません。ï¼?
284 * よって、指定するシートã?、すべて同ä¸?ƒ¬イアウトでなã�?�¨取り込み時にカラãƒ??ずれが発生しますã?
285 *
286 * シート番号のæŒ?®šã?、カンマ区åˆ?‚Šで、è¤?•°æŒ?®šできますã?またã?N-M の様にハイフンで繋げることでã€?
287 * N 番から、M 番のシートç¯?›²をä¸?‹¬æŒ?®š可能ですã?またã?"*" による、å?シート指定が可能ですã?
288 * これらã?çµ?�¿合わせも可能ですã???0,1,3,5-8,10-* ??
289 * ただしã?"*" に関しては例外的に、ä¸?–‡字だけで、すべてのシートを表すか、N-* を最後にæŒ?®šするかの
290 * どちらかですã?途中にはã€?*" は、現れませんã€?
291 * シート番号はã€?‡�è¤?1,1,2,2)ã€??転(3,2,1) でのæŒ?®šが可能ですã?これは、そのæŒ?®šé?で、読み込まれますã?
292 * sheetNos と sheetName が同時にæŒ?®šされた場合ã?、sheetNos が優先されますã?エラーにはならなã�??でご注意くã�?�•ã�??
293 * こã?メソãƒ?ƒ‰は、isExcel() == true の場合ã?み利用されますã?
294 *
295 * 初期値はã€??ˆ第ä¸?‚·ートï¼?ですã?
296 *
297 * ※ こã?クラスでは実è£?�•れてã�?�¾せんã€?
298 *
299 * @og.rev 5.5.7.2 (2012/10/09) 新規追åŠ?
300 *
301 * @param sheetNos EXCELファイルのシート番号??から始まるï¼?
302 * @see #setSheetName( String )
303 */
304 public void setSheetNos( final String sheetNos ) {
305 String errMsg = "こã?メソãƒ?ƒ‰は、EXCEL追åŠ?©Ÿè?ですã?で、使用できませんã€?;
306 throw new UnsupportedOperationException( errMsg );
307 }
308
309 /**
310 * EXCELファイルを読み込ã‚?�¨きã?シート単位ã?固定å?を設定するためã?カラãƒ?��とアドレスを指定しますã?
311 * カラãƒ?��は、カンマ区åˆ?‚ŠでæŒ?®šしますã?
312 * 対応するアドレスをã?EXCEL上ã?è¡?列を?�から始まる整数でカンマ区åˆ?‚ŠでæŒ?®šしますã?
313 * これにより、シートã?ä¸?�‹æ‰?�«書かれてã�?‚‹æƒ??をã?DBTableModel のカラãƒ?�«固定å?として
314 * 設定することができますã?
315 * 例として、DB定義書で、テーブル名をシートã?全レコードに設定したい場合などに使ã�?�¾すã?
316 * こã?メソãƒ?ƒ‰は、isExcel() == true の場合ã?み利用されますã?
317 *
318 * @og.rev 5.5.8.2 (2012/11/09) 新規追åŠ?
319 *
320 * @param constKeys 固定å?となるカラãƒ?��(CSV形å¼?
321 * @param constAdrs 固定å?となるアドレス(è¡?åˆ?è¡?åˆ?・・・)
322 */
323 public void setSheetConstData( final String constKeys,final String constAdrs ) {
324 String errMsg = "こã?メソãƒ?ƒ‰は、EXCEL追åŠ?©Ÿè?ですã?で、使用できませんã€?;
325 throw new UnsupportedOperationException( errMsg );
326 }
327
328 /**
329 * ここにæŒ?®šされたカラãƒ??に NULL が現れた時点で読み取りを中止しますã?
330 *
331 * これは、指定ã?カラãƒ??å¿??とã�?�†事を条件に、そのレコードだけを読み取る処ç�?‚’行いますã?
332 * è¤?•°Sheetの場合ã?、次のSheetを読みますã?
333 * 現時点では、Excel の場合ã?み有効ですã?
334 *
335 * @og.rev 5.5.8.2 (2012/11/09) 新規追åŠ?
336 *
337 * @param clm カラãƒ??
338 */
339 public void setNullBreakClm( final String clm ) {
340 String errMsg = "こã?メソãƒ?ƒ‰は、EXCEL追åŠ?©Ÿè?ですã?で、使用できませんã€?;
341 throw new UnsupportedOperationException( errMsg );
342 }
343
344 /**
345 * こã?クラスがã?EXCEL対応機è?を持ってã�?‚‹かどã�?�‹を返しますã?
346 *
347 * EXCEL対応機è?とは、シート名のセãƒ?ƒˆ、読み込みå…?ƒ•ァイルの
348 * Fileオブジェクト取得などの、特殊機è?ですã?
349 * 本来は、インターフェースをå?けるべきとè€?�ˆますが、taglib クラス等ã?
350 * 関係があり、問ã�?�ˆわせによる条件åˆ?²�で対応しますã?
351 *
352 * @og.rev 3.5.4.3 (2004/01/05) 新規追åŠ?
353 *
354 * @return EXCEL対応機è?を持ってã�?‚‹かどã�?�‹
355 */
356 public boolean isExcel() {
357 return false;
358 }
359
360 /**
361 * 読み取りå…?ƒ•ァイル名をセãƒ?ƒˆしますã?(DIR + Filename)
362 * これは、EXCEL追åŠ?©Ÿè?として実è£?�•れてã�?�¾すã?
363 * ※ こã?クラスでは実è£?�•れてã�?�¾せんã€?
364 *
365 * @og.rev 3.5.4.3 (2004/01/05) 新規作æ?
366 *
367 * @param filename 読み取りå…?ƒ•ァイルå�?
368 */
369 public void setFilename( final String filename ) {
370 String errMsg = "こã?メソãƒ?ƒ‰は、EXCEL追åŠ?©Ÿè?ですã?で、使用できませんã€?;
371 throw new UnsupportedOperationException( errMsg );
372 }
373
374 /**
375 * 読み取りå…?ƒ•ァイルのカラãƒ??をã?外部(タグ)よりæŒ?®šしますã?
376 * ファイルに記述されã�?#NAME より優先して使用されますã?
377 *
378 * @og.rev 3.5.4.5 (2004/01/23) 新規作æ?
379 *
380 * @param clms 読み取りå…?ƒ•ァイルのカラãƒ??(カンマ区åˆ?‚Šæ–??
381 */
382 public void setColumns( final String clms ) {
383 columns = clms ;
384 }
385
386 /**
387 * 読み取りå…?ƒ•ァイルのエンコード文字å?を指定しますã?
388 * ファイルは、BufferedReader で受け取る為、本来は、エンコードã?不要ですがã€?
389 * 固定長ファイルの読み取り時ã?バイトコードå?割時に、指定ã?エンコードで
390 * åˆ?‰²するå¿?¦�がありますã?(例えば、半角文字ã?、Shift_JIS ではã€?¼‘バイãƒ?
391 *
392 * @og.rev 3.5.4.5 (2004/01/23) 新規作æ?
393 *
394 * @param enc ファイルのエンコード文字å?
395 */
396 public void setEncode( final String enc ) {
397 encode = enc;
398 }
399
400 /**
401 * 読み取りå…?ƒ•ァイルのエンコード文字å?を取得しますã?
402 * ファイルは、BufferedReader で受け取る為、本来は、エンコードã?不要ですがã€?
403 * 固定長ファイルの読み取り時ã?バイトコードå?割時に、指定ã?エンコードで
404 * åˆ?‰²するå¿?¦�がありますã?(例えば、半角文字ã?、Shift_JIS ではã€?¼‘バイãƒ?
405 *
406 * @og.rev 3.5.4.5 (2004/01/23) 新規作æ?
407 *
408 * @return ファイルのエンコード文字å?
409 */
410 protected String getEncode() {
411 return encode;
412 }
413
414 /**
415 * 行番号æƒ??を指定[true:使用してã�?‚‹/false:してã�?�ªい]しまã�?初期値:true)ã€?
416 *
417 * 通常のフォーマットでは、各行ã?先é?に行番号がå?力されてã�?�¾すã?
418 * 読み取り時にã€?NAME 属æ?を使用する場合ã?、この行番号を無視してã�?�¾すã?
419 * #NAME 属æ?を使用せず、columns 属æ?でカラãƒ?��を指定するå?å�?他シスãƒ?ƒ の
420 * 出力ファイルを読み取るケースç?では、行番号も存在しなã�?‚±ースがありã?
421 * そã?様な場合に、useNumber="false" を指定すれã?、データのæœ??から読み取り始めますã?
422 * こã?場合ã?出力データのカラãƒ??並びé ?�Œ変更されたå?合ã?columns 属æ?ã‚?
423 * æŒ?®šしなおすå¿?¦�がありますã?で、できるã�?�‘ã€?NAME 属æ?を使用するように
424 * してくださいã€?
425 * なおã?EXCEL 入力には、この設定ã?適用されませんã€?暫定対å¿?
426 * 初期値は、true(使用する) ですã?
427 *
428 * @og.rev 3.7.0.5 (2005/04/11) 新規追åŠ?
429 *
430 * @param useNumber 行番号æƒ?? [true:使用する/false:使用しない]
431 */
432 public void setUseNumber( final boolean useNumber ) {
433 this.useNumber = useNumber ;
434 }
435
436 /**
437 * ãƒ??タの読み始めの初期値を取得しますã?
438 *
439 * TAB区åˆ?‚Šãƒ?‚ストやEXCEL等ã?ãƒ??タの読み始めの初期値を指定しますã?
440 * ファイルの先é?行がã€?¼�行としてカウントしますã?で、設定å?は、読み飛ã?ã�?
441 * 件数になりますã?(?‘とæŒ?®šするとã€?¼‘件読み飛ã?しã??’行目から読み込みますã?)
442 * 読み飛ã?しã?、コメント行などは、無視しますã?で、実際の行数åˆ?ªみ飛ã?しますã?
443 * ?ƒNAME属æ?ã‚??columns 属æ?は、有効ですã?
444 *
445 * @og.rev 5.1.6.0 (2010/05/01) 新規作æ?
446 *
447 * @return 読み始めの初期値
448 */
449 public int getSkipRowCount() {
450 return skipRowCount ;
451 }
452
453 /**
454 * ãƒ??タの読み飛ã?し件数を設定しますã?
455 *
456 * TAB区åˆ?‚Šãƒ?‚ストやEXCEL等ã?ãƒ??タの読み始めの初期値を指定しますã?
457 * ファイルの先é?行がã€?¼�行としてカウントしますã?で、設定å?は、読み飛ã?ã�?
458 * 件数になりますã?(?‘とæŒ?®šするとã€?¼‘件読み飛ã?しã??’行目から読み込みますã?)
459 * 読み飛ã?しã?、コメント行などは、無視しますã?で、実際の行数åˆ?ªみ飛ã?しますã?
460 * ?ƒNAME属æ?ã‚??columns 属æ?は、有効ですã?
461 *
462 * @og.rev 5.1.6.0 (2010/05/01) 新規作æ?
463 *
464 * @param count 読み始めの初期値
465 */
466 public void setSkipRowCount( final int count ) {
467 skipRowCount = count;
468 }
469
470 /**
471 * 読取å?ç�?�§ラベルをコードリソースにé€?¤‰換を行うかどã�?�‹を指定しますã?
472 *
473 * TableWriter_Renderer 系のクラスで出力したå?合ã?、コードリソースがラベルで出力されますã?
474 * そã?ファイルを読み取ると、当然、エラーになりますã?
475 * ここでは、コードリソースのカラãƒ?�«対して、ラベルからコードを求めるé?変換を行うことでã€?
476 * Renderer 系で出力したファイルを取り込ã‚?�“とができるようにしますã?
477 *
478 * ここでは、TableWriter 系と同様に、TableReader_Renderer 系のクラスを作るのではなくã?
479 * 属æ?値のフラグで、制御しますã?
480 * å°?�¥çš?�«は、TableWriter 系もå»?¢して、同様ã?フラグで制御するように変更する予定ですã?
481 *
482 * @og.rev 5.2.1.0 (2010/10/01) 新規作æ?
483 *
484 * @param useRenderer コードリソースのラベル変換を行うかどã�?�‹を指å®?
485 */
486 public void setUseRenderer( final boolean useRenderer ) {
487 this.useRenderer = useRenderer;
488 }
489
490 /**
491 * 行番号æƒ??をã?使用してã�?‚‹(true)/してã�?�ªã�?false)を返しますã?
492 *
493 * 通常のフォーマットでは、各行ã?先é?に行番号がå?力されてã�?�¾すã?
494 * 読み取り時にã€?NAME 属æ?を使用する場合ã?、この行番号を無視してã�?�¾すã?
495 * #NAME 属æ?を使用せず、columns 属æ?でカラãƒ?��を指定するå?å�?他シスãƒ?ƒ の
496 * 出力ファイルを読み取るケースç?では、行番号も存在しなã�?‚±ースがありã?
497 * そã?様な場合に、useNumber="false" を指定すれã?、データのæœ??から読み取り始めますã?
498 * こã?場合ã?出力データのカラãƒ??並びé ?�Œ変更されたå?合ã?columns 属æ?ã‚?
499 * æŒ?®šしなおすå¿?¦�がありますã?で、できるã�?�‘ã€?NAME 属æ?を使用するように
500 * してくださいã€?
501 * なおã?EXCEL 入力には、この設定ã?適用されませんã€?暫定対å¿?
502 * 初期値は、true(使用する) ですã?
503 *
504 * @og.rev 3.7.0.5 (2005/04/11) 新規追åŠ?
505 * @og.rev 4.0.0.0 (2007/07/20) メソãƒ?ƒ‰名変更(getUseNumber() â‡? isUseNumber())
506 *
507 * @return 行番号æƒ??をã?使用してã�?‚‹(true)/してã�?�ªã�?false)を指å®?
508 */
509 protected boolean isUseNumber() {
510 return useNumber ;
511 }
512
513 /**
514 * ãƒ?ƒ�ãƒ?‚°æƒ??をå?力するかどã�?�‹を指定しますã?
515 *
516 * EXCELなどを読み取る場合ã?シートã?ージで読み取ると、エラー時ã?行番号がã?連番になるためã?
517 * どのシートなのかã?判らなくなりますã?
518 * そこで、どã�?�—てもわからなくなったå?合に備えて、デバッグæƒ??をå?力できるようにしますã?
519 * 通常は使用しませんので、設定を無視しますã?
520 * 初期値は、false:ãƒ?ƒ�ãƒ?‚°æƒ??をå?力しなã�?ですã?
521 *
522 * @og.rev 5.5.7.2 (2012/10/09) 新規作æ?
523 *
524 * @param useDebug ãƒ?ƒ�ãƒ?‚°æƒ??をå?力するかどã�?�‹を指å®?
525 */
526 public void setDebug( final boolean useDebug ) {
527 this.useDebug = useDebug;
528 }
529
530 /**
531 * ãƒ?ƒ�ãƒ?‚°æƒ??をå?力するかどã�?�‹を取得しますã?
532 *
533 * EXCELなどを読み取る場合ã?シートã?ージで読み取ると、エラー時ã?行番号がã?連番になるためã?
534 * どのシートなのかã?判らなくなりますã?
535 * そこで、どã�?�—てもわからなくなったå?合に備えて、デバッグæƒ??をå?力できるようにしますã?
536 *
537 * @og.rev 5.5.7.2 (2012/10/09) 新規作æ?
538 *
539 * @return ãƒ?ƒ�ãƒ?‚°æƒ??をå?力するかどã�?�‹(true:する/false:しなã�?
540 */
541 protected boolean isDebug() {
542 return useDebug ;
543 }
544 }