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.PrintWriter;
019    import java.util.List;
020    import java.util.Locale;
021    import java.util.Map;
022    import java.util.Map.Entry;
023    
024    import org.opengion.hayabusa.common.HybsSystem;
025    import org.opengion.hayabusa.common.HybsSystemException;
026    import org.opengion.hayabusa.db.DBTableModel;
027    import org.opengion.hayabusa.db.DBColumn;
028    import org.opengion.fukurou.util.StringUtil;
029    import org.opengion.fukurou.util.HybsEntry;
030    
031    /**
032     * 区åˆ?‚Šæ–?­—指å®?åˆæœŸå€¤:ã‚¿ãƒ?ã‚¼ãƒ­ã‚«ãƒ³ãƒžãƒ•ã‚¡ã‚¤ãƒ«ã®æ›¸ãå?ã—クラスã§ã™ã?
033     *
034     * ラベル?Œåå‰ï¼Œãƒ‡ãƒ¼ã‚¿ã®å‡ºåŠ›éƒ¨ã®ã¿ã‚ªãƒ¼ãƒã?ライドã™ã‚Œã??Œå„種出力フォーマットã«åˆã‚ã›ãŸ
035     * サブクラスを実ç¾ã™ã‚‹äº‹ãŒå¯èƒ½ã§ã™ã?
036     * ゼロカンマファイルã¨ã¯ã€EXCELã®ã‚¼ãƒ­ã‚µãƒ—レス対策ã¨ã—ã¦ã€??ã‚¼ãƒ­ã®æ–?­—åž‹ãƒ??ã‚¿ã‚’å?力ã™ã‚?
037     * 時ã«ã€å?é ­ã«ã‚«ãƒ³ãƒ?')を付ã‘ã¦ã€ã‚¼ãƒ­ãŒå‰Šé™¤(見ãˆãªããªã‚?ç¾è±¡ã‚’抑止ã—ã¦ã?‚‹ãƒ•ァイルã§ã™ã?
038     *
039     * ã“ã?クラスã¯,å¯å¤‰é•·ã‚¿ãƒ–区åˆ?‚Šæ–?­—ファイルã®å‡ºåŠ›æ©Ÿè?を実ç¾ã—ã¦ã?¾ã™ã?
040     *
041     * @og.group ファイル出�
042     *
043     * @version  4.0
044     * @author       Kazuhiko Hasegawa
045     * @since    JDK5.0,
046     */
047    public abstract class AbstractTableWriter implements TableWriter {
048            /** ã“ã?プログラãƒ??VERSIONæ–?­—å?を設定ã—ã¾ã™ã?       {@value} */
049            private static final String VERSION = "5.7.9.0 (2014/08/08)" ;
050    
051            // 5.1.6.0 (2010/05/01) dbType ã®ç°¡æ˜“çš„ãªè¨­å®?
052            /** dbType ã®ç°¡æ˜“çš„ãªè¨­å®?{@value} */
053            public static final int STRING  = 0;
054            /** dbType ã®ç°¡æ˜“çš„ãªè¨­å®?{@value} */
055            public static final int NVAR    = 1;
056            /** dbType ã®ç°¡æ˜“çš„ãªè¨­å®?{@value} */
057            public static final int NUMBER  = 2;
058    
059            protected DBTableModel    table         = null;
060            protected DBColumn[]      dbColumn      = null;                 // table ã«å¯¾ã™ã‚‹ã‚«ãƒ©ãƒ?‚ªãƒ–ジェクãƒ?キャãƒ?‚·ãƒ¥)
061            protected int   numberOfColumns         = -1;                   // 4.0.0 (2005/01/31) 出力対象ã®ã‚«ãƒ©ãƒ?•°
062            protected int[]                   clmNo         = null;                 // 出力対象ã®ã‚«ãƒ©ãƒ?•ªå·é…å?
063            protected int[]                   dbType        = null;
064    
065            private String  separator               = TAB_SEPARATOR;        // é ?›®åŒºåˆ?‚Šæ–?­?
066            private String  headerSequence  = HybsSystem.sys( "WRITER_HEADER_SEQUENCE" ) ;
067            private boolean append                  = false;                        // 3.5.4.2 (2003/12/15)
068            private String  lang                    = null;
069            private String  columns                 = null;                         // 4.0.0 (2005/11/30) 外部æŒ?®šã?カラãƒ?
070            private String  encode                  = null;                         // 3.5.4.5 (2004/01/23) エンコード文字å?æŒ?®?
071    
072            private boolean useNumber               = true;                         // 3.7.0.2 (2005/02/14) è¡Œç•ªå·æƒ??ã‚’ã?出力ã™ã‚?true)/ã—ãªã?false)を指å®?
073            private boolean useRenderer             = false;                        // 5.2.1.0 (2010/10/01)
074    
075            /**
076             * DBTableModel ã‹ã‚‰ å?½¢å¼ã?ãƒ??タを作æ?ã—ã¦,PrintWriter ã«æ›¸ãå?ã—ã¾ã™ã?
077             * ã“ã?メソãƒ?ƒ‰ã¯ã€EXCEL 書ãå?ã—æ™‚ã«ä½¿ç”¨ã—ã¾ã™ã?
078             *
079             * @see #isExcel()
080             */
081            abstract public void writeDBTable();
082    
083            /**
084             * DBTableModel ã‹ã‚‰ ãƒ??タを作æ?ã—ã¦,PrintWriter ã«æ›¸ãå?ã—ã¾ã™ã?
085             *
086             * @param       writer PrintWriterオブジェク�
087             */
088            abstract public void writeDBTable( final PrintWriter writer );
089    
090            /**
091             * numberOfColumns 㨠DBColumn ã‚’å?期化ã—ã¾ã™ã?
092             * å†?ƒ¨çš?«ã€DBTableModelã€lang , columns を使用ã—ã¦ã€?
093             * numberOfColumns ã€dbColumnã€clmNoã€dbType ã®å€¤ã‚’å?期化ã—ã¾ã™ã?
094             * カラãƒ?Œ?‘é?目もãªã??åˆã?è¨?ª?lnag)ãŒæœªæŒ?®šã?DBTableModelãŒæœªæŒ?®?null)
095             * ã®å ´åˆã?ã€false ã‚’è¿”ã—ã¾ã™ã?ãã?å ´åˆã?ã€ä»¥ä¸‹ã?処ç??正常ã«è¡Œãˆã¾ã›ã‚“ã€?
096             * ãƒ??ã‚¿ãŒï¼ä»¶ã®å ´åˆã?ã€å?ç?‚’行ã„ã¾ã™ã?通常ã€ã?ãƒ?ƒ€ãƒ¼ã®ã¿ã®ãƒ•ァイルã‚?
097             * 作æ?ã™ã‚‹ã“ã¨ã«ãªã‚Šã¾ã™ã?(ã“れを雛形ã¨ã—ã¦ã€å–è¾¼ãƒ??タを登録ã™ã‚‹äº‹ãŒå¯èƒ½)
098             *
099             * @og.rev 4.0.0.0 (2005/12/31) 外部æŒ?®šã?カラãƒ?を使用
100             * @og.rev 5.1.6.0 (2010/05/01) DbType ã®åˆæœŸå€¤ã‚’設定ã™ã‚‹ã?
101             *
102             * @return      åˆæœŸåŒ–æ?功:true / 失敗:false
103             */
104            protected boolean createDBColumn() {
105    
106                    boolean rtnFlag = false;
107                    if( lang != null && table != null ) {
108                            if( columns != null ) {
109                                    String[] clms = StringUtil.csv2Array( columns );
110                                    numberOfColumns = clms.length;
111                                    clmNo = new int[numberOfColumns];
112                                    for( int i=0; i<numberOfColumns; i++ ) {
113                                            int no = table.getColumnNo( clms[i] );
114                                            clmNo[i] = no;
115                                    }
116                            }
117                            else {
118                                    numberOfColumns = table.getColumnCount();
119                                    clmNo = new int[numberOfColumns];
120                                    for( int i=0; i<numberOfColumns; i++ ) {
121                                            clmNo[i] = i;
122                                    }
123                            }
124    
125                            dbColumn = table.getDBColumns();
126                            rtnFlag = (numberOfColumns > 0);     // カラãƒ?Œ?‘é?目以上ã‚れã?æˆåŠŸ
127    
128                            // 5.1.6.0 (2010/05/01) DbType ã®åˆæœŸå€¤ã‚’設定ã™ã‚‹ã?
129                            dbType = new int[numberOfColumns];
130                            for( int i=0; i<numberOfColumns; i++ ) {
131                                    String type = dbColumn[clmNo[i]].getDbType();
132    
133                                    if( "NVAR".equals( type ) ) {
134                                            dbType[i] = NVAR;
135                                    }
136                                    else if( "S9".equals( type ) || "R".equals( type )  ) {
137                                            dbType[i] = NUMBER;
138                                    }
139                                    else {
140                                            dbType[i] = STRING;
141                                    }
142                            }
143                    }
144                    return rtnFlag;
145            }
146    
147            /**
148             * PrintWriter ã« DBTableModelã®ãƒ˜ãƒƒãƒ??æƒ??を書ãè¾¼ã¿ã¾ã™ã?
149             *
150             * @og.rev 3.1.1.0 (2003/03/28) åŒæœŸãƒ¡ã‚½ãƒ?ƒ‰(synchronized付ã)ã‚’éžåŒæœŸã«å¤‰æ›´ã™ã‚‹ã€?
151             *
152             * @param       writer PrintWriterオブジェク�
153             */
154            protected void writeHeader( final PrintWriter writer ) {
155                    // ã“ã“ã§ã¯å‡¦ç?‚’行ã„ã¾ã›ã‚“ã€?
156            }
157    
158            /**
159             * PrintWriter ã« DBTableModelã®ãƒ©ãƒ™ãƒ«æƒ??を書ãè¾¼ã¿ã¾ã™ã?
160             * 第ä¸?‚«ãƒ©ãƒ?›®ã¯ã€ãƒ©ãƒ™ãƒ«æƒ??を示ã?"#Label" を書ãè¾¼ã¿ã¾ã™ã?
161             * ã“ã?行ã?ã€å?力形å¼ã«ç„¡é–¢ä¿‚ã«ã€TableWriter.TAB_SEPARATOR ã§åŒºåˆ?‚‰ã‚Œã¾ã™ã?
162             *
163             * @og.rev 3.1.1.0 (2003/03/28) åŒæœŸãƒ¡ã‚½ãƒ?ƒ‰(synchronized付ã)ã‚’éžåŒæœŸã«å¤‰æ›´ã™ã‚‹ã€?
164             * @og.rev 3.7.0.2 (2005/02/14) è¡Œç•ªå·æƒ??ã‚’ã?出力ã™ã‚?true)/ã—ãªã?false)を指å®?
165             * @og.rev 4.0.0.0 (2005/12/31) 外部æŒ?®šã?カラãƒ?を使用
166             *
167             * @param       table DBTableModelオブジェク�
168             * @param       writer PrintWriterオブジェク�
169             */
170            protected void writeLabel( final DBTableModel table,final PrintWriter writer ) {
171                    if( useNumber ) {
172                            writer.print( "#Label" );
173                            writer.print( separator );
174                    }
175                    else {
176                            writer.print( "#" );
177                    }
178    
179                    for( int i=0; i<numberOfColumns; i++ ) {
180                            if( i != 0 ) { writer.print( separator ); }
181                            int clm = clmNo[i];
182                            writer.print( dbColumn[clm].getLabel() );
183                    }
184                    writer.println();
185            }
186    
187            /**
188             * PrintWriter ã« DBTableModelã®é ?›®å情報を書ãè¾¼ã¿ã¾ã™ã?
189             * 第ä¸?‚«ãƒ©ãƒ?›®ã¯ã€??ç›®åæƒ…報を示ã?"#Name" を書ãè¾¼ã¿ã¾ã™ã?
190             * ã“ã?行ã?ã€å?力形å¼ã«ç„¡é–¢ä¿‚ã«ã€TableWriter.TAB_SEPARATOR ã§åŒºåˆ?‚‰ã‚Œã¾ã™ã?
191             *
192             * @og.rev 3.1.1.0 (2003/03/28) åŒæœŸãƒ¡ã‚½ãƒ?ƒ‰(synchronized付ã)ã‚’éžåŒæœŸã«å¤‰æ›´ã™ã‚‹ã€?
193             * @og.rev 3.7.0.2 (2005/02/14) è¡Œç•ªå·æƒ??ã‚’ã?出力ã™ã‚?true)/ã—ãªã?false)を指å®?
194             *
195             * @param       table DBTableModelオブジェク�
196             * @param       writer PrintWriterオブジェク�
197             */
198            protected void writeName( final DBTableModel table,final PrintWriter writer ) {
199                    if( useNumber ) {
200                            writer.print( "#Name" );
201                            writer.print( separator );
202                    }
203                    else {
204                            writer.print( "#" );
205                    }
206    
207                    for( int i=0; i<numberOfColumns; i++ ) {
208                            if( i != 0 ) { writer.print( separator ); }
209                            int clm = clmNo[i];
210                            writer.print( table.getColumnName(clm) );
211                    }
212                    writer.println();
213            }
214    
215            /**
216             * PrintWriter ã« DBTableModelã®ã‚µã‚¤ã‚ºæƒ??を書ãè¾¼ã¿ã¾ã™ã?
217             * 第ä¸?‚«ãƒ©ãƒ?›®ã¯ã€ã‚µã‚¤ã‚ºæƒ??を示ã?"#Size" を書ãè¾¼ã¿ã¾ã™ã?
218             * ã“ã?行ã?ã€å?力形å¼ã«ç„¡é–¢ä¿‚ã«ã€TableWriter.TAB_SEPARATOR ã§åŒºåˆ?‚‰ã‚Œã¾ã™ã?
219             *
220             * @og.rev 3.1.1.0 (2003/03/28) åŒæœŸãƒ¡ã‚½ãƒ?ƒ‰(synchronized付ã)ã‚’éžåŒæœŸã«å¤‰æ›´ã™ã‚‹ã€?
221             * @og.rev 3.5.5.5 (2004/04/23) DBColumn ã® size 㨠maxlength ã® æ„味を変更
222             * @og.rev 3.7.0.2 (2005/02/14) è¡Œç•ªå·æƒ??ã‚’ã?出力ã™ã‚?true)/ã—ãªã?false)を指å®?
223             *
224             * @param       table DBTableModelオブジェク�
225             * @param       writer PrintWriterオブジェク�
226             */
227            protected void writeSize( final DBTableModel table,final PrintWriter writer ) {
228                    if( useNumber ) {
229                            writer.print( "#Size" );
230                            writer.print( separator );
231                    }
232                    else {
233                            writer.print( "#" );
234                    }
235    
236                    for( int i=0; i<numberOfColumns; i++ ) {
237                            if( i != 0 ) { writer.print( separator ); }
238                            int clm = clmNo[i];
239                            writer.print( dbColumn[clm].getTotalSize() );   // 4.0.0 (2005/01/31) メソãƒ?ƒ‰å変更
240                    }
241                    writer.println();
242            }
243    
244            /**
245             * PrintWriter ã« DBTableModelã®ã‚¯ãƒ©ã‚¹å情報を書ãè¾¼ã¿ã¾ã™ã?
246             * 第ä¸?‚«ãƒ©ãƒ?›®ã¯ã€ã‚µã‚¤ã‚ºæƒ??を示ã?"#Class" を書ãè¾¼ã¿ã¾ã™ã?
247             * ã“ã?行ã?ã€å?力形å¼ã«ç„¡é–¢ä¿‚ã«ã€TableWriter.TAB_SEPARATOR ã§åŒºåˆ?‚‰ã‚Œã¾ã™ã?
248             *
249             * @og.rev 3.1.1.0 (2003/03/28) åŒæœŸãƒ¡ã‚½ãƒ?ƒ‰(synchronized付ã)ã‚’éžåŒæœŸã«å¤‰æ›´ã™ã‚‹ã€?
250             *
251             * @param       table DBTableModelオブジェク�
252             * @param       writer PrintWriterオブジェク�
253             */
254            protected void writeClass( final DBTableModel table,final PrintWriter writer ) {
255                    if( useNumber ) {
256                            writer.print( "#Class" );
257                            writer.print( separator );
258                    }
259                    else {
260                            writer.print( "#" );
261                    }
262    
263                    for( int i=0; i<numberOfColumns; i++ ) {
264                            if( i != 0 ) { writer.print( separator ); }
265                            int clm = clmNo[i];
266                            writer.print( dbColumn[clm].getClassName() );
267                    }
268                    writer.println();
269            }
270    
271            /**
272             * PrintWriter 㫠セパレーターを書ãè¾¼ã¿ã¾ã™ã?
273             * 第ä¸?‚«ãƒ©ãƒ?›®ã¯ã€ã‚µã‚¤ã‚ºæƒ??を示ã?"#----" を書ãè¾¼ã¿ã¾ã™ã?
274             * ã“ã?行ã?ã€å?力形å¼ã«ç„¡é–¢ä¿‚ã«ã€TableWriter.TAB_SEPARATOR ã§åŒºåˆ?‚‰ã‚Œã¾ã™ã?
275             *
276             * @og.rev 3.1.1.0 (2003/03/28) åŒæœŸãƒ¡ã‚½ãƒ?ƒ‰(synchronized付ã)ã‚’éžåŒæœŸã«å¤‰æ›´ã™ã‚‹ã€?
277             * @og.rev 3.7.0.2 (2005/02/14) è¡Œç•ªå·æƒ??ã‚’ã?出力ã™ã‚?true)/ã—ãªã?false)を指å®?
278             *
279             * @param       table DBTableModelオブジェク�
280             * @param       writer PrintWriterオブジェク�
281             */
282            protected void writeSeparator( final DBTableModel table,final PrintWriter writer ) {
283                    String sep = "----" ;
284                    if( useNumber ) {
285                            writer.print( "#----" );
286                            writer.print( separator );
287                    }
288                    else {
289                            writer.print( "#" );
290                    }
291    
292                    for( int i=0; i<numberOfColumns; i++ ) {
293                            if( i != 0 ) { writer.print( separator ); }
294                            writer.print( sep );
295                    }
296                    writer.println();
297            }
298    
299            /**
300             * PrintWriter ã« DBTableModelã®ãƒ??ブルæƒ??を書ãè¾¼ã¿ã¾ã™ã?
301             * ã“ã?クラスã§ã¯?Œãƒ‡ãƒ¼ã‚¿ã‚?ãƒ?ƒ–ルコーãƒ??ション(")ã§å›²ã¿ã¾ã™ã?
302             * PrintWriter ã« DBTableModelã®ãƒ??ブルæƒ??を書ãè¾¼ã¿ã¾ã™ã?
303             *
304             * @og.rev 2.0.0.5 (2002/09/30) å…ˆé?ã? ã§ã‹ã¤æ•°å­—タイãƒ?S9 or R)ã§ãªã??åˆã« ' ã‚’å?力ã™ã‚‹ã‚ˆã?«ä¿®æ­£ã€?
305             * @og.rev 2.3.1.2 (2003/01/28) ãƒ??タ出力時ã«ã€æ”¹è¡ŒãŒä½™å?ã«å‡ºã•れるç®?‰€ã‚’修正ã€?
306             * @og.rev 3.1.0.0 (2003/03/20) DBColumn ã‹ã‚‰ã€getDbType() キーを直接å–り出ã?
307             * @og.rev 3.1.1.0 (2003/03/28) åŒæœŸãƒ¡ã‚½ãƒ?ƒ‰(synchronized付ã)ã‚’éžåŒæœŸã«å¤‰æ›´ã™ã‚‹ã€?
308             * @og.rev 3.3.3.1 (2003/07/18) ファイルリーãƒ?ライト時ã«å¾Œã‚スペã?スã®é™¤åŽ»ã‚’è¡Œã„ã¾ã™ã?
309             * @og.rev 3.7.0.2 (2005/02/14) è¡Œç•ªå·æƒ??ã‚’ã?出力ã™ã‚?true)/ã—ãªã?false)を指å®?
310             * @og.rev 3.8.0.1 (2005/06/17) DBTypeã?NVAR ã®å ´åˆã?ã€å?ã®Unicodeã«æˆ»ã—ã¾ã™ã?
311             * @og.rev 5.1.6.0 (2010/05/01) DbType ã®åˆæœŸå€¤(dbType)を利用ã™ã‚‹ã€?
312             * @og.rev 5.2.1.0 (2010/10/01) ã“ã?メソãƒ?ƒ‰ã¯ã€abstract 化ã—ã¾ã™ã?
313             *
314             * @param       table DBTableModelオブジェク�
315             * @param       writer PrintWriterオブジェク�
316             */
317            abstract protected void writeData( final DBTableModel table,final PrintWriter writer ) ;
318    //      protected void writeData( final DBTableModel table,final PrintWriter writer ) {
319    //              int numberOfRows =      table.getRowCount();
320    //
321    //              for( int row=0; row<numberOfRows; row++ ) {
322    //                      if( useNumber ) {
323    //                              writer.print( row+1 );
324    //                              writer.print( separator );
325    //                      }
326    //
327    //                      for( int i=0; i<numberOfColumns; i++ ) {
328    //                              if( i != 0 ) { writer.print( separator ); }
329    //
330    //                              int clm = clmNo[i];
331    //                              String val = table.getValue(row,clm);
332    ////                            if( "NVAR".equals( dbColumn[clm].getDbType()) ) {
333    //                              if( dbType[i] == NVAR ) {
334    //                                      val = StringUtil.getReplaceEscape( val );
335    //                              }
336    //
337    //                              if( val != null && val.length() > 0 && val.charAt(0) == '0' &&
338    ////                                    NUMBER_TYPE_LIST.indexOf( dbColumn[clm].getDbType() ) < 0 ) {
339    //                                      dbType[i] == NUMBER ) {
340    //                                              writer.print( "'" );            // é–‹å§‹æ—¥ãªã©ã® 00000000 を文字å?ã‚¿ã‚¤ãƒ—ã§æ¸¡ã?
341    //                              }
342    //                              writer.print( StringUtil.rTrim( val ) );
343    //                      }
344    //                      writer.println();
345    //              }
346    //      }
347    
348            /**
349             * DBTableModel ã‚’ã‚»ãƒ?ƒˆã—ã¾ã™ã?
350             *
351             * @og.rev 3.1.1.0 (2003/03/28) åŒæœŸãƒ¡ã‚½ãƒ?ƒ‰(synchronized付ã)ã‚’éžåŒæœŸã«å¤‰æ›´ã™ã‚‹ã€?
352             * @og.rev 3.5.4.2 (2003/12/15) lang å¼•æ•°ã‚‚åŒæ™‚ã«è¨­å®šã—ã¾ã™ã?
353             *
354             * @param       table DBTableModelオブジェク�
355             * @param       lang è¨?ªžã‚³ãƒ¼ãƒ?
356             */
357            public void setDBTableModel( final DBTableModel table, final String lang ) {
358                    this.table = table;
359                    this.lang = lang;
360            }
361    
362            /**
363             * å†?ƒ¨ã® DBTableModel ã‚’è¿”ã—ã¾ã™ã?
364             *
365             * @return      DBTableModelオブジェク�
366             */
367            public DBTableModel getDBTableModel() {
368                    return table;
369            }
370    
371            /**
372             * DBTableModelã®å‡ºåŠ›é?ã‚’ã‚»ãƒ?ƒˆã—ã¾ã™ã?
373             * Label,Name,Size,Class,Data ã®å?ƒ•ィールドã?é ­æ–?­—ã?アルファベットã§
374             * 出力é?を設定ã—ã¾ã™ã?
375             *
376             * ãªãŠï¼Œå?力é?ã«æŒ?®šã—ãªã??ç›®ã¯å‡ºåŠ›ã•れã¾ã›ã‚“
377             *
378             * @og.rev 3.1.1.0 (2003/03/28) åŒæœŸãƒ¡ã‚½ãƒ?ƒ‰(synchronized付ã)ã‚’éžåŒæœŸã«å¤‰æ›´ã™ã‚‹ã€?
379             *
380             * @param       hs 出力é? (LNSCD ãªã©)
381             */
382            public void setHeaderSequence( final String hs ) {
383                    if( hs != null ) { headerSequence = hs ; }
384            }
385    
386            /**
387             * DBTableModelã®å‡ºåŠ›é?ã‚’è¿”ã—ã¾ã™ã?
388             * Label,Name,Size,Class,Data ã®å?ƒ•ィールドã?é ­æ–?­—ã?アルファベットã§
389             * 出力é?を設定ã—ã¾ã™ã?
390             *
391             * ãªãŠï¼Œå?力é?ã«æŒ?®šã—ãªã??ç›®ã¯å‡ºåŠ›ã•れã¾ã›ã‚“
392             *
393             * @return      出力é? (LNSCD ãªã©)
394             */
395            public String getHeaderSequence() {
396                    return headerSequence ;
397            }
398    
399            /**
400             * ãƒ??タを書ãè¾¼ã‚??åˆã?,区åˆ?‚Šæ–?­—ã‚’ã‚»ãƒ?ƒˆã—ã¾ã™ã?
401             *
402             * @og.rev 3.1.1.0 (2003/03/28) åŒæœŸãƒ¡ã‚½ãƒ?ƒ‰(synchronized付ã)ã‚’éžåŒæœŸã«å¤‰æ›´ã™ã‚‹ã€?
403             *
404             * @param       sep 区åˆ?‚Šæ–?­?
405             */
406            public void setSeparator( final String sep ) {
407                    if( sep != null ) { this.separator = sep; }
408            }
409    
410            /**
411             * ãƒ??タを書ãè¾¼ã‚??åˆã?,区åˆ?‚Šæ–?­—ã‚’è¿”ã—ã¾ã™ã?
412             *
413             * @return      区åˆ?‚Šæ–?­?
414             */
415            public String getSeparator() {
416                    return separator;
417            }
418    
419            /**
420             * DBTableModelã®ãƒ??ã‚¿ã¨ã—ã¦æ›¸ãè¾¼ã‚?¨ãã«ã€è¿½åŠ?ƒ¢ãƒ¼ãƒ‰ã§æ›¸ãè¾¼ã‚?‹ã©ã?‹ã‚’設定ã—ã¾ã™ã?
421             * åˆæœŸå€¤ã¯ã€false(æ–°è¦ãƒ¢ãƒ¼ãƒ?ã§ã™ã?
422             *
423             * @og.rev 3.5.4.2 (2003/12/15) æ–°è¦è¿½åŠ?
424             *
425             * @param       flag    [true:追åŠ?ƒ¢ãƒ¼ãƒ?false:æ–°è¦ãƒ¢ãƒ¼ãƒ‰]
426             */
427            public void setAppend( final boolean flag ) {
428                    append = flag;
429            }
430    
431            /**
432             * DBTableModelã®ãƒ??ã‚¿ã¨ã—ã¦æ›¸ãè¾¼ã‚?¨ãã«ã€è¿½åŠ?ƒ¢ãƒ¼ãƒ‰ã§æ›¸ãè¾¼ã‚?‹ã©ã?‹ã‚’å–å¾—ã—ã¾ã™ã?
433             * åˆæœŸå€¤ã¯ã€false(æ–°è¦ãƒ¢ãƒ¼ãƒ?ã§ã™ã?
434             *
435             * @og.rev 3.5.4.2 (2003/12/15) æ–°è¦è¿½åŠ?
436             *
437             * @return      true(追åŠ?ƒ¢ãƒ¼ãƒ?/false(æ–°è¦ãƒ¢ãƒ¼ãƒ?
438             */
439            public boolean isAppend() {
440                    return append ;
441            }
442    
443            /**
444             * DBTableModelã®ãƒ??ã‚¿ã¨ã—ã¦èª­ã¿è¾¼ã‚?¨ãã?シートåを設定ã—ã¾ã™ã?
445             * åˆæœŸå€¤ã¯ã€?Sheet1" ã§ã™ã?
446             * ã“れã¯ã€EXCEL追åŠ?©Ÿè?ã¨ã—ã¦å®Ÿè£?•れã¦ã?¾ã™ã?
447             * ※ ã“ã?クラスã§ã¯å®Ÿè£?•れã¦ã?¾ã›ã‚“ã€?
448             *
449             * @og.rev 3.5.4.2 (2003/12/15) æ–°è¦è¿½åŠ?
450             * @og.rev 3.5.4.3 (2004/01/05) 実è£?»?­¢(TableWriter_Excel ã¸ç§»å‹?
451             *
452             * @param   sheetName シートå
453             */
454            public void setSheetName( final String sheetName ) {
455                    String errMsg = "ã“ã?メソãƒ?ƒ‰ã¯ã€EXCEL追åŠ?©Ÿè?ã§ã™ã?ã§ã€ä½¿ç”¨ã§ãã¾ã›ã‚“ã€?;
456                    throw new UnsupportedOperationException( errMsg );
457            }
458    
459            /**
460             * EXCEL雛型å‚è?ファイルã®ã‚·ãƒ¼ãƒˆåを設定ã—ã¾ã™ã?
461             * ã“れã¯ã€EXCEL追åŠ?©Ÿè?ã¨ã—ã¦å®Ÿè£?•れã¦ã?¾ã™ã?
462             *
463             * EXCELファイルを書ãå?ã™æ™‚ã«ã€?››åž‹ã¨ã—ã¦å‚ç?ã™ã‚‹ã‚·ãƒ¼ãƒˆåを指定ã—ã¾ã™ã?
464             * ã“れã«ã‚ˆã‚Šã€è¤?•°ã®å½¢å¼ã?ç•°ãªã‚‹ãƒ‡ãƒ¼ã‚¿ã‚’é?次書ãå?ã—ãŸã‚?appendモードを併用)ã™ã‚‹
465             * ã“ã¨ã‚??シートをæŒ?®šã—ã¦æ–°è¦ã«EXCELを作æ?ã™ã‚‹å ´åˆã«ãƒ•ォーãƒ?‚’設定ã™ã‚‹äº‹ãŒå¯èƒ½ã«ãªã‚Šã¾ã™ã?
466             * åˆæœŸå€¤ã¯ã€null(第ä¸?‚·ãƒ¼ãƒ? ã§ã™ã?
467             * ※ ã“ã?クラスã§ã¯å®Ÿè£?•れã¦ã?¾ã›ã‚“ã€?
468             *
469             * @og.rev 3.5.4.3 (2004/01/05) æ–°è¦è¿½åŠ?
470             *
471             * @param   sheetName シートå
472             */
473            public void setRefSheetName( final String sheetName )  {
474                    String errMsg = "ã“ã?メソãƒ?ƒ‰ã¯ã€EXCEL追åŠ?©Ÿè?ã§ã™ã?ã§ã€ä½¿ç”¨ã§ãã¾ã›ã‚“ã€?;
475                    throw new UnsupportedOperationException( errMsg );
476            }
477    
478            /**
479             * ã“ã?クラスãŒã?EXCEL対応機è?ã‚’æŒã£ã¦ã?‚‹ã‹ã©ã?‹ã‚’è¿”ã—ã¾ã™ã?
480             *
481             * EXCEL対応機è?ã¨ã¯ã€ã‚·ãƒ¼ãƒˆåã®ã‚»ãƒ?ƒˆã€?››åž‹å‚照ファイルåã?ã‚»ãƒ?ƒˆã€?
482             * 書ãè¾¼ã¿å…?ƒ•ァイルã®Fileオブジェクトå–å¾—ãªã©ã®ã€ç‰¹æ®Šæ©Ÿè?ã§ã™ã?
483             * 本æ¥ã¯ã€ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェースをå?ã‘ã‚‹ã¹ãã¨è€?ˆã¾ã™ãŒã€taglib クラス等ã?
484             * 関係ãŒã‚りã€å•ã?ˆã‚ã›ã«ã‚ˆã‚‹æ¡ä»¶åˆ?²ã§å¯¾å¿œã—ã¾ã™ã?
485             *
486             * @og.rev 3.5.4.3 (2004/01/05) æ–°è¦è¿½åŠ?
487             *
488             * @return      EXCEL対応機è?ã‚’æŒã£ã¦ã?‚‹ã‹ã©ã?‹(ã“ã“ã§ã¯ã€false固定ã§ã?
489             */
490            public boolean isExcel() {
491                    return false;
492            }
493    
494            /**
495             * 出力å?ファイルåã‚’ã‚»ãƒ?ƒˆã—ã¾ã™ã?(DIR + Filename)
496             * ã“れã¯ã€EXCEL追åŠ?©Ÿè?ã¨ã—ã¦å®Ÿè£?•れã¦ã?¾ã™ã?
497             * ※ ã“ã?クラスã§ã¯å®Ÿè£?•れã¦ã?¾ã›ã‚“ã€?
498             * ã“ã?メソãƒ?ƒ‰ã§ã¯ã€å¿?šã€UnsupportedOperationException ãŒã?throw ã•れã¾ã™ã?
499             *
500             * @og.rev 3.5.4.3 (2004/01/05) æ–°è¦ä½œæ?
501             *
502             * @param   filename EXCEL雛型å‚è?ファイルå?
503             */
504            public void setFilename( final String filename ) {
505                    String errMsg = "ã“ã?メソãƒ?ƒ‰ã¯ã€EXCEL追åŠ?©Ÿè?ã§ã™ã?ã§ã€ä½¿ç”¨ã§ãã¾ã›ã‚“ã€?;
506                    throw new UnsupportedOperationException( errMsg );
507            }
508    
509            /**
510             * EXCEL雛型å‚è?ファイルåã‚’ã‚»ãƒ?ƒˆã—ã¾ã™ã?(DIR + Filename)
511             * ã“れã¯ã€EXCEL追åŠ?©Ÿè?ã¨ã—ã¦å®Ÿè£?•れã¦ã?¾ã™ã?
512             * ※ ã“ã?クラスã§ã¯å®Ÿè£?•れã¦ã?¾ã›ã‚“ã€?
513             * ã“ã?メソãƒ?ƒ‰ã§ã¯ã€å¿?šã€UnsupportedOperationException ãŒã?throw ã•れã¾ã™ã?
514             *
515             * @og.rev 3.5.4.3 (2004/01/05) æ–°è¦ä½œæ?
516             *
517             * @param   filename EXCEL雛型å‚è?ファイルå?
518             */
519            public void setRefFilename( final String filename ) {
520                    String errMsg = "ã“ã?メソãƒ?ƒ‰ã¯ã€EXCEL追åŠ?©Ÿè?ã§ã™ã?ã§ã€ä½¿ç”¨ã§ãã¾ã›ã‚“ã€?;
521                    throw new UnsupportedOperationException( errMsg );
522            }
523    
524            /**
525             * EXCEL出力時ã®ãƒ?ƒ•ォルトフォントåを設定ã—ã¾ã™ã?
526             * ã“れã¯ã€EXCEL追åŠ?©Ÿè?ã¨ã—ã¦å®Ÿè£?•れã¦ã?¾ã™ã?
527             *
528             * EXCELファイルを書ãå?ã™æ™‚ã«ã€ãƒ‡ãƒ•ォルトフォントåを指定ã—ã¾ã™ã?
529             * フォントåã¯ã€EXCELã®ãƒ•ォントåã‚’ãã®ã¾ã¾ä½¿ç”¨ã—ã¦ãã ã•ã„ã€?
530             * å†?ƒ¨çš?«ã€POI ã® org.apache.poi.hssf.usermodel.HSSFFont#setFontName( String )
531             * ã«è¨­å®šã•れã¾ã™ã?
532             * åˆæœŸå€¤ã¯ã€ã‚·ã‚¹ãƒ?ƒ ãƒªã‚½ãƒ¼ã‚¹ ã® TABLE_WRITER_DEFAULT_FONT_NAME ã§ã™ã?
533             *
534             * ※ ã“ã?クラスã§ã¯å®Ÿè£?•れã¦ã?¾ã›ã‚“ã€?
535             * ã“ã?メソãƒ?ƒ‰ã§ã¯ã€å¿?šã€UnsupportedOperationException ãŒã?throw ã•れã¾ã™ã?
536             *
537             * @og.rev 3.8.5.3 (2006/08/07) æ–°è¦è¿½åŠ?
538             *
539             * @param   fontName フォントå
540             */
541            public void setFontName( final String fontName ) {
542                    String errMsg = "ã“ã?メソãƒ?ƒ‰ã¯ã€EXCEL追åŠ?©Ÿè?ã§ã™ã?ã§ã€ä½¿ç”¨ã§ãã¾ã›ã‚“ã€?;
543                    throw new UnsupportedOperationException( errMsg );
544            }
545    
546            /**
547             * EXCEL出力時ã®ãƒ?ƒ•ォルトフォントã?イント数を設定ã—ã¾ã™ã?
548             * ã“れã¯ã€EXCEL追åŠ?©Ÿè?ã¨ã—ã¦å®Ÿè£?•れã¦ã?¾ã™ã?
549             *
550             * EXCELファイルを書ãå?ã™æ™‚ã«ã€ãƒ‡ãƒ•ォルトã?イント数を指定ã—ã¾ã™ã?
551             * å†?ƒ¨çš?«ã€POI ã® org.apache.poi.hssf.usermodel.HSSFFont#setFontHeightInPoints( short )
552             * ã«è¨­å®šã•れã¾ã™ã?
553             * åˆæœŸå€¤ã¯ã€ã‚·ã‚¹ãƒ?ƒ ãƒªã‚½ãƒ¼ã‚¹ ã® TABLE_WRITER_DEFAULT_FONT_POINTS ã§ã™ã?
554             *
555             * ※ ã“ã?クラスã§ã¯å®Ÿè£?•れã¦ã?¾ã›ã‚“ã€?
556             * ã“ã?メソãƒ?ƒ‰ã§ã¯ã€å¿?šã€UnsupportedOperationException ãŒã?throw ã•れã¾ã™ã?
557             *
558             * @og.rev 3.8.5.3 (2006/08/07) æ–°è¦è¿½åŠ?
559             *
560             * @param       point   フォントã?イント数
561             */
562            public void setFontPoint( final short point ) {
563                    String errMsg = "ã“ã?メソãƒ?ƒ‰ã¯ã€EXCEL追åŠ?©Ÿè?ã§ã™ã?ã§ã€ä½¿ç”¨ã§ãã¾ã›ã‚“ã€?;
564                    throw new UnsupportedOperationException( errMsg );
565            }
566    
567            /**
568             * 読ã¿å–りå…?ƒ•ァイルã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰æ–‡å­—å?を指定ã—ã¾ã™ã?
569             * ファイルã¯ã€BufferedReader ã§å—ã‘å–ã‚‹ç‚ºã€æœ¬æ¥ã¯ã€ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã?ä¸è¦ã§ã™ãŒã€?
570             * 固定長ファイルã®èª­ã¿å–り時ã?ãƒã‚¤ãƒˆã‚³ãƒ¼ãƒ‰å?割時ã«ã€æŒ‡å®šã?エンコードã§
571             * åˆ?‰²ã™ã‚‹å¿?¦ãŒã‚りã¾ã™ã?(例ãˆã°ã€åŠè§’文字ã?ã€Shift_JIS ã§ã¯ã€?¼‘ãƒã‚¤ãƒ?
572             *
573             * @og.rev 3.5.4.5 (2004/01/23) æ–°è¦ä½œæ?
574             *
575             * @param   enc ファイルã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰æ–‡å­—å?
576             */
577            public void setEncode( final String enc ) {
578                    encode = enc;
579            }
580    
581            /**
582             * 読ã¿å–りå…?ƒ•ァイルã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰æ–‡å­—å?ã‚’å–å¾—ã—ã¾ã™ã?
583             * ファイルã¯ã€BufferedReader ã§å—ã‘å–ã‚‹ç‚ºã€æœ¬æ¥ã¯ã€ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã?ä¸è¦ã§ã™ãŒã€?
584             * 固定長ファイルã®èª­ã¿å–り時ã?ãƒã‚¤ãƒˆã‚³ãƒ¼ãƒ‰å?割時ã«ã€æŒ‡å®šã?エンコードã§
585             * åˆ?‰²ã™ã‚‹å¿?¦ãŒã‚りã¾ã™ã?(例ãˆã°ã€åŠè§’文字ã?ã€Shift_JIS ã§ã¯ã€?¼‘ãƒã‚¤ãƒ?
586             *
587             * @og.rev 3.5.4.5 (2004/01/23) æ–°è¦ä½œæ?
588             *
589             * @return      ファイルã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰æ–‡å­—å?
590             */
591            protected String getEncode() {
592                    return encode;
593            }
594    
595            /**
596             * è¡Œç•ªå·æƒ??ã‚’ã?出力ã™ã‚?true)/ã—ãªã?false)を指定ã—ã¾ã™ã?
597             *
598             * 通常ã®ãƒ•ォーマットã§ã¯ã€å„行ã?å…ˆé?ã«è¡Œç•ªå·ã‚’å?力ã—ã¾ã™ã?
599             * ã“れã¯ã€?NAME 属æ?を使用ã™ã‚‹å ´åˆã«ã¯ã€å¿?šå‡ºåŠ›ã™ã‚‹å¿?¦ãŒã‚りã¾ã™ã?
600             * (#NAME 属æ?ã¯ã€èª­ã¿å–り時ã«ã¯ã€å¿??ã§ã™ã?)
601             * ã“ã?ã€å?é ­ã®è¡Œç•ªå·ãŒä¸è¦ãªå ´å?ã¤ã¾ã‚Šã?ä»–ã?シスãƒ?ƒ ã¸ã®ãƒ??タ出力ã?
602             * ã“ã?シスãƒ?ƒ ã§ã¯ã€?NAME 属æ?ãŒå?力ã•れãªã?Ÿã‚ã?読ã¿è¾¼ã¿ã§ãã¾ã›ã‚“ã€?
603             * ã“ã?行番å·ã‚’å?力ã—ãªã?‚ˆã?«ã§ãã¾ã™ã?
604             * åˆæœŸå€¤ã¯ã€true(出力ã™ã‚? ã§ã™ã?
605             *
606             * @og.rev 3.7.0.2 (2005/02/14) æ–°è¦è¿½åŠ?
607             *
608             * @param   useNumber è¡Œç•ªå·æƒ??ã‚?[true:出力ã™ã‚?false:ã—ãªã„]
609             */
610            public void setUseNumber( final boolean useNumber ) {
611                    this.useNumber = useNumber;
612            }
613    
614            /**
615             * è¡Œç•ªå·æƒ??ã‚’ã?出力ã™ã‚?true)/ã—ãªã?false)ã‚’è¿”ã—ã¾ã™ã?
616             *
617             * 通常ã®ãƒ•ォーマットã§ã¯ã€å„行ã?å…ˆé?ã«è¡Œç•ªå·ã‚’å?力ã—ã¾ã™ã?
618             * ã“れã¯ã€?NAME 属æ?を使用ã™ã‚‹å ´åˆã«ã¯ã€å¿?šå‡ºåŠ›ã™ã‚‹å¿?¦ãŒã‚りã¾ã™ã?
619             * (#NAME 属æ?ã¯ã€èª­ã¿å–り時ã«ã¯ã€å¿??ã§ã™ã?)
620             * ã“ã?ã€å?é ­ã®è¡Œç•ªå·ãŒä¸è¦ãªå ´å?ã¤ã¾ã‚Šã?ä»–ã?シスãƒ?ƒ ã¸ã®ãƒ??タ出力ã?
621             * ã“ã?シスãƒ?ƒ ã§ã¯ã€?NAME 属æ?ãŒå?力ã•れãªã?Ÿã‚ã?読ã¿è¾¼ã¿ã§ãã¾ã›ã‚“ã€?
622             * ã“ã?行番å·ã‚’å?力ã—ãªã?‚ˆã?«ã§ãã¾ã™ã?
623             * åˆæœŸå€¤ã¯ã€true(出力ã™ã‚? ã§ã™ã?
624             *
625             * @og.rev 3.7.0.2 (2005/02/14) æ–°è¦è¿½åŠ?
626             *
627             * @return   è¡Œç•ªå·æƒ??ã‚’ã?出力ã™ã‚?true)/ã—ãªã?false)
628             */
629            protected boolean isUseNumber() {
630                    return useNumber;
631            }
632    
633            /**
634             * パラメーターリストをセãƒ?ƒˆã—ã¾ã™ã?
635             * å†?ƒ¨ã¯ã€HybsEntry クラスをæŒã£ã¦ã?¾ã™ã?
636             * 引数ãŒã?null ã®å ´åˆã?ã€ä½•ã‚‚ã—ã¾ã›ã‚“ã€?
637             * ※ ã“ã?クラスã§ã¯å®Ÿè£?•れã¦ã?¾ã›ã‚“ã€?
638             *
639             * @og.rev 4.0.0.0 (2005/01/31) æ–°è¦è¿½åŠ?
640             *
641             * @param   listParam   パラメーターリス�
642             */
643            public void setParam( final List<HybsEntry> listParam ) {
644                    String errMsg = "ã“ã?メソãƒ?ƒ‰ã¯ã€XML追åŠ?©Ÿè?ã§ã™ã?ã§ã€ä½¿ç”¨ã§ãã¾ã›ã‚“ã€?;
645                    throw new UnsupportedOperationException( errMsg );
646            }
647    
648            /**
649             * 出力å?ファイルã®ã‚«ãƒ©ãƒ??ã‚’ã?外部(ã‚¿ã‚°)よりCSVå½¢å¼ã?æ–?­—å?ã§æŒ?®šã—ã¾ã™ã?
650             * ãŸã ã—ã?æŒ?®šã?カラãƒ?ã¯ã€DBTableModel上ã«å­˜åœ¨ã—ã¦ã?‚‹å¿?¦ãŒã‚りã¾ã™ã?
651             *
652             * @og.rev 4.0.0.0 (2005/11/30) æ–°è¦è¿½åŠ?
653             *
654             * @param   clms 出力å?ファイルã®ã‚«ãƒ©ãƒ??(カンマ区åˆ?‚Šæ–?­?
655             */
656            public void setColumns( final String clms ) {
657                    columns = clms ;
658            }
659    
660            /**
661             * ãƒ??ã‚¿ã®æ›¸ãè¾¼ã¿é–‹å§‹è¡Œç•ªå·ã‚’設定ã—ã¾ã?åˆæœŸå€¤:0)ã€?
662             *
663             * TAB区åˆ?‚Šãƒ?‚­ã‚¹ãƒˆã‚„EXCELç­‰ã?ãƒ??ã‚¿ã®æ›¸ãè¾¼ã¿ã®é–‹å§‹è¡Œç•ªå·ã‚’指定ã—ã¾ã™ã?
664             * 属æ?åã?ã€è¡Œã‚’飛ã?ã™å?ç?¨ã?†ã“ã¨ã§ã€readTable ã‚¿ã‚°ã¨åŒã˜åç§°ã§ã™ã?
665             * ファイルã®å…ˆé?行ãŒã€?¼è¡Œã¨ã—ã¦ã‚«ã‚¦ãƒ³ãƒˆã—ã¾ã™ã?ã§ã€è¨­å®šå?ã¯ã€èª­ã¿é£›ã?ã?
666             * ä»¶æ•°ã«ãªã‚Šã¾ã™ã?(?‘ã¨æŒ?®šã™ã‚‹ã¨ã€?¼‘件読ã¿é£›ã?ã—ã??’行目ã‹ã‚‰èª­ã¿è¾¼ã¿ã¾ã™ã?)
667             * 行ã?読ã¿é£›ã?ã—ã¨ã€ã‚«ãƒ©ãƒ??読ã¿é£›ã?ã?columns)ã€refFileURLã€refFilenameã€?
668             * refSheetName ã¨ã¨ã‚‚ã«ä½¿ç”¨ã™ã‚Œã°ã€ã‚る程度ã®ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆè¨­å®šãŒå¯èƒ½ã§ã™ã?
669             * ãªãŠã?ã“ã?機è?ã¯ã€TableWriter_Excel ã®ã¿ã«å®Ÿè£?—ã¾ã™ã?
670             *
671             * @og.rev 5.7.9.0 (2014/08/08) æ–°è¦ä½œæ?
672             *
673             * @param       skipRowCount 書ãè¾¼ã¿é–‹å§‹è¡Œç•ªå·
674             */
675            public void setSkipRowCount( final int skipRowCount ) {
676                    if( skipRowCount != 0 ) {
677                            String errMsg = "ã“ã?メソãƒ?ƒ‰ã¯ã€TableWriter_Excel ã®ã¿ã®æ©Ÿè?ã§ã™ã?ã§ã€ä½¿ç”¨ã§ãã¾ã›ã‚“ã€?;
678                            throw new UnsupportedOperationException( errMsg );
679                    }
680            }
681    
682            /**
683             * 書込処ç?§ã‚³ãƒ¼ãƒ‰ãƒªã‚½ãƒ¼ã‚¹ã®ãƒ©ãƒ™ãƒ«å¤‰æ›ã‚’行ã†ã‹ã©ã?‹[true/false]を指定ã—ã¾ã™ã?
684             *
685             * コードリソースをãã®ã¾ã¾ã®å€¤ã§å‡ºåŠ›ã™ã‚‹ã¨ã€æ•°å­—や記å·ã«ãªã‚Šä½•ãŒæ›¸ã‹ã‚Œã¦ã?‚‹ã®ã?
686             * 䏿?ã«ãªã‚Šã¾ã™ã?
687             * ã“れã¯ã€ã‚³ãƒ¼ãƒ‰ãƒªã‚½ãƒ¼ã‚¹ã‚’ラベルã«å¤‰æ›ã—ã¦å‡ºåŠ›ã™ã‚‹ã‹ã©ã?‹ã‚’指定ã—ã¾ã™ã?
688             * 当然ã€ã‚³ãƒ¼ãƒ‰ã?ユニã?クã§ã™ãŒã€ãƒ©ãƒ™ãƒ«ã¯ãƒ¦ãƒ‹ã?クã«ãªã‚‹ã‹ã©ã?‹ä¿éšœã¯ã•れã¦ã?¾ã›ã‚“ã®ã§
689             * TableReader ç³»ã§èª­ã¿è¾¼ã‚??åˆã«ã¯ã€ãƒªã‚¹ã‚¯ãŒç™ºç”Ÿã—ã¾ã™ã?
690             * ã¾ãŸã?TableReader ç³»ã§èª­ã¿è¾¼ã‚??åˆã«ã‚‚ã?ラベルã‹ã‚‰ã‚³ãƒ¼ãƒ‰ã‚’求ã‚ã‚‹é?変æ›ã‚’行ã†ã‚ˆã†ã«ã€?
691             * setUseRenderer メソãƒ?ƒ‰ã§æŒ?®šã™ã‚‹å¿?¦ãŒã‚りã¾ã™ã?
692             *
693             * 従æ¥ã¯ã€TableWriter ç³»ã«ã€TableWriter_Renderer ç³»ã®ã‚¯ãƒ©ã‚¹ã‚’作ã£ã¦å¯¾å¿œã—ã¦ã?¾ã—ãŸãŒã?
694             * ã“ã?メソãƒ?ƒ‰ã®å±žæ?値ã®ãƒ•ラグã§ã€åˆ¶å¾¡ã—ã¾ã™ã?
695             *
696             * @og.rev 5.2.1.0 (2010/10/01) æ–°è¦ä½œæ?
697             *
698             * @param       useRenderer     コードリソースã®ãƒ©ãƒ™ãƒ«å¤‰æ›ã‚’行ã†ã‹ã©ã?‹ [true:行ã†/false:行ã‚ãªã„]
699             */
700            public void setUseRenderer( final boolean useRenderer ) {
701                    this.useRenderer = useRenderer;
702            }
703    
704            /**
705             * 書ãå?ã—å?ç?§ã‚³ãƒ¼ãƒ‰ãƒªã‚½ãƒ¼ã‚¹ã®ãƒ©ãƒ™ãƒ«å¤‰æ›ã‚’行ã†ã‹ã©ã?‹ã‚’è¿”ã—ã¾ã™ã?
706             * åˆæœŸå€¤ã¯ã€false(行ã‚ãªã? ã§ã™ã?
707             *
708             * @og.rev 5.2.1.0 (2010/10/01) æ–°è¦ä½œæ?
709             *
710             * @return      ラベル変æ›ã‚’行ã†ã‹ã©ã?‹(true:行ã†/false:行ã‚ãªã?
711             */
712            protected boolean isUseRenderer() {
713                    return useRenderer ;
714            }
715    
716            /**
717             * ãƒ??ã‚¿ã‚?ãƒ?ƒ–ルコーãƒ??ション(")ã§å›²ã¿ã¾ã™ã?
718             *
719             * ã“ã?処ç?§ã¯ã€å‰å¾Œã‚’ãƒ?ƒ–ルクオートã§å›²ã?Ÿã‚ã?改行ã?有無ã¯åˆ¤å®šã™ã‚?
720             * å¿?¦ã?ã‚りã¾ã›ã‚“ã€?
721             * ãƒ?ƒ–ルクオートをå«ã‚??åˆã?ã€ãã®ç›´å‰ã«ãƒ?ƒ–ルクオートを強制çš?«è¿½åŠ?—ã¾ã™ã?
722             *
723             * @param        data å…??Stringæ–?­—å?
724             *
725             * @return       ãƒ?ƒ–ルコーãƒ??ションã§å›²ã¾ã‚ŒãŸæ–?­—å?
726             */
727            protected String quotation( final String data ) {
728                    return "\"" + StringUtil.replace( data,"\"","\"\"" ) + "\"" ;
729            }
730    
731            /**
732             * ãƒ??ã‚¿ã«å¯¾ã—㦠改行ã?ãƒ?ƒ–ルクオート等ã?処ç?‚’行ã„ã¾ã™ã?
733             *
734             * ã“れã¯ã€ãƒ‡ãƒ¼ã‚¿ã®å‰å¾Œã‚’ãƒ?ƒ–ãƒ«ã‚¯ã‚ªãƒ¼ãƒˆã§æ‹¬ã‚?quotation(String)ã¨ç•°ãªã‚?
735             * å‰å¾Œã«ã¯ã€ãƒ€ãƒ–ルクオーãƒ?を追åŠ?—ã¾ã›ã‚“ã€?
736             * ãŸã ã—ã?以下ã??’ã¤ã®æ¡ä»¶ã§å‡¦ç?‚’行ã„ã¾ã™ã?
737             * ?‘.改行をå«ã‚??åˆã?ã€ãƒ€ãƒ–ルクオートを強制çš?«å‰å¾Œã«è¿½åŠ?™ã‚‹ã?
738             * ?’.ダブルクオートをå«ã‚??åˆã?ã€ãã®ç›´å‰ã«ãƒ?ƒ–ルクオートを強制çš?«è¿½åŠ?™ã‚‹ã?
739             *
740             * @og.rev 5.2.2.0 (2010/11/01) æ–°è¦è¿½åŠ?
741             *
742             * @param        data å…??Stringæ–?­—å?
743             *
744             * @return       改行ã?ãƒ?ƒ–ルクオート等ã?処ç?
745             */
746            protected String quotation2( final String data ) {
747                    String rtn = StringUtil.replace( data,"\"","\"\"" );
748                    if( rtn != null && rtn.indexOf( HybsSystem.CR ) >= 0 ) {
749                            rtn = "\"" + rtn + "\"" ;
750                    }
751    
752                    return rtn ;
753            }
754    
755            /**
756             * keys ã®æ•´åˆæ?ãƒã‚§ãƒ?‚¯ã‚’行ã„ã¾ã™ã?
757             *
758             * キーã‹keysMapã®ã©ã¡ã‚‰ã‹ã?null ã®å ´åˆã?ã€ä½•ã‚‚ã—ã¾ã›ã‚“ã€?
759             * ãƒã‚§ãƒ?‚¯ã™ã‚‹ã‚­ãƒ¼ã¯ã€å?部ã§å¤§æ–?­—ã«å¤‰æ›ã—ã¦ãŠãã¾ã™ã?
760             * keysMap ã«ç™»éŒ²ã™ã‚‹ã‚­ãƒ¼ã¯ã€å¤§æ–?­—ã§ç™»éŒ²ã—ã¦ãŠã„ã¦ãã ã•ã„ã€?
761             * ã“ã“ã®ãƒã‚§ãƒ?‚¯ã§ã¯ã€ã‚­ãƒ¼ãƒžãƒƒãƒ—ã«å­˜åœ¨ã—ãªã‘れã°ã€ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã™ã?
762             *
763             * @og.rev 5.6.6.1 (2013/07/12) keys ã®æ•´åˆæ?ãƒã‚§ãƒ?‚¯ã‚’行ã„ã¾ã™ã?
764             *
765             * @param   key ãƒã‚§ãƒ?‚¯ã™ã‚‹ã‚­ãƒ¼æ–?­—å?(null ã®å ´åˆã?ã€å?ç?—ãªã?
766             * @param   keysMap 利用å¯èƒ½ãªã‚­ãƒ¼ã®ãƒžãƒƒãƒ?大æ–?­—ã«çµ±ä¸?
767             */
768            protected void checkParam( final String key,final Map<String,String> keysMap ) {
769                    // key ã?keysMap ã‹ã©ã¡ã‚‰ã‹ã?null ã®å ´åˆã?ã€å?ç?‚’行ã‚ãªã??
770                    if( key == null || keysMap == null ) { return; }
771    
772                    String upKey = key.toUpperCase(Locale.JAPAN);
773    
774                    if( ! keysMap.containsKey( upKey ) ) {
775                            String BR = "<br />" + HybsSystem.CR ;
776                            StringBuilder errMsg = new StringBuilder();
777                            errMsg.append( BR )
778                                      .append( "æŒ?®šã?キーã¯ã€ã“ã® tableWriter ã§ã¯ã€ä½¿ç”¨ã§ãã¾ã›ã‚“ã€? ).append( BR )
779                                      .append( "  class=[" ).append( getClass().getName() ).append( "]" ).append( BR )
780                                      .append( "  key  =[" ).append( key                              ).append( "]" ).append( BR )
781                                      .append( "  ======== usage keys ======== " ).append( BR ) ;
782                            for( Map.Entry<String, String> entry : keysMap.entrySet() ) {
783                                    errMsg.append( "  " ).append( entry.getKey() ).append( " : " )
784                                                                             .append( entry.getValue() ).append( BR ) ;
785                            }
786                            errMsg.append( "  ============================ " ).append( BR );
787    
788                            throw new HybsSystemException( errMsg.toString() );
789                    }
790            }
791    }