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 }