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