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.taglib;
017    
018    import org.opengion.hayabusa.common.HybsSystem;
019    import org.opengion.hayabusa.common.HybsSystemException;
020    import org.opengion.hayabusa.db.DBTableModel;
021    import org.opengion.fukurou.db.DBUtil;
022    
023    import org.opengion.fukurou.util.ErrorMessage;
024    import org.opengion.fukurou.util.StringUtil ;
025    import static org.opengion.fukurou.util.StringUtil.nval ;
026    import org.opengion.fukurou.model.Formatter;
027    
028    import java.util.Locale ;
029    import java.util.List ;
030    import java.util.ArrayList ;
031    
032    import java.io.ObjectOutputStream;
033    import java.io.ObjectInputStream;
034    import java.io.IOException;
035    
036    /**
037     * ã€å»?­¢ã€‘登録ã™ã¹ãデータã®ãƒžã‚¹ã‚¿å­˜åœ¨ãƒã‚§ãƒ?‚¯ã‚’行ã†ãŸã‚ã®ã‚¿ã‚°ã§ã?通常ã¯entry.jspã§updateã‚¿ã‚°ã®ç›´å‰ã§ä½¿ç”¨ã—ã¾ã?ã€?
038     *
039     * ã“ã?è¦ç´??å†?®¹ã«ã€SQLæ–?‚’記述ã—ã¾ã™ã?
040     * names ã«å¯¾å¿œã™ã‚‹ã‚«ãƒ©ãƒ?ã‚’ã?カンマ区åˆ?‚Šã§è¤?•°ä¸Žãˆã¾ã™ã?ãã?値をã?DBTableModel
041     * よりã€å–å¾—ã—ã€å?ã®SQLæ–?? ? ã«å€¤ã‚’設定ã—ã¾ã™ã?
042     * ã¾ãŸã?ã€å¼•数部ã«ã€[カラãƒ?]を用ã?ŸHybsæ‹¡å¼µSQLæ–?‚’æŒ?®šã™ã‚‹ã“ã¨ã‚‚å¯èƒ½ã§ã™ã?
043     *
044     * 値ã®å–å¾—ã?ã€å?ã«é¸æŠžã•れãŸè¡Œã?ã¿ã«ã¤ã?¦ã€å®Ÿè¡Œã•れã¾ã™ã?
045     * exist 属æ?ã«æŒ?®šã•れ㟠ã€?½¢true:存在ã™ã‚‹?£ã€?½¢false:存在ã—ãªã?½£ã€?½¢one:ã²ã¨ã¤ä»¥ä¸‹ï½£ã€?
046     * ã®å€¤ã¯ã€ãƒã‚§ãƒ?‚¯æ–¹æ³•を設定ã—ã¦ã?¾ã™ã?
047     * ã?šã‚Œã?å ´åˆã‚‚ã€æ?立時ã¯ã€æ­£å¸¸ã¨ã¿ãªã—ã¾ã™ã?
048     * (?¢true:存在ã™ã‚‹?£ ã«ã¯ã€ãƒ‡ãƒ¼ã‚¿ãŒå­˜åœ¨ã—ãŸå ´åˆã«ã€?¼¯?«ã§ã€ãªã‘れã°ã‚¨ãƒ©ãƒ¼ã§ã™ã?)
049     *
050     * @og.formSample
051     * â—å½¢å¼ï¼?
052     *       ・<og:tableExist
053     *                    command   = "{@command}"
054     *                    names     = "[…]"
055     *                    from      = "…"                           �?
056     *                    where     = "…"                           �?
057     *                    exist     = "[auto|true|false|one|notuse]" å¿??
058     *                    errRemove = "[true|false]"
059     *         />
060     *
061     * â—body?šãªã?
062     *
063     * â—Tag定義??
064     *   <og:tableExist
065     *       command            ã€å»?­¢ã€‘コマンãƒ?ENTRY)ã‚’ã‚»ãƒ?ƒˆã—ã¾ã?
066     *       scope              ã€TAG】キャãƒ?‚·ãƒ¥ã™ã‚‹å ´åˆã?スコープ[request/page/session/applicaton]を指定ã—ã¾ã?åˆæœŸå€¤:session)
067     *       names              ã€å»?­¢ã€‘引数ã«ã‚»ãƒ?ƒˆã™ã¹ã?ãƒ??ã‚¿ã®åç§°(カラãƒ?)ã‚’CSVå½¢å¼ã§è¤?•°æŒ?®šã—ã¾ã?
068     *       from             â—‹ã?å»?­¢ã€‘ãƒã‚§ãƒ?‚¯ã™ã‚‹ãƒ??タベã?スå?from å¥)を指定ã—ã¾ã?å¿??)ã€?
069     *       where            â—‹ã?å»?­¢ã€‘ãƒã‚§ãƒ?‚¯ã™ã‚‹æ¤œç´¢æ¡ä»¶(whereå¥)を指定ã—ã¾ã?å¿??)ã€?
070     *       exist              ã€å»?­¢ã€‘データベã?スã®ãƒã‚§ãƒ?‚¯æ–¹æ³?auto/true/false/one/notuse)を指定ã—ã¾ã?åˆæœŸå€¤:?¢auto:自動」)
071     *       tableId            ã€å»?­¢ã€?通常ã¯ä½¿ã?¾ã›ã‚“)çµæžœã‚’DBTableModelã«æ›¸ã込んã§ã€sessionã«ç™»éŒ²ã™ã‚‹ã¨ãã?キーを指定ã—ã¾ã?
072     *       dbid               ã€å»?­¢ã€?通常ã¯ä½¿ã?¾ã›ã‚“)Queryオブジェクトを作æ?ã™ã‚‹æ™‚ã?DB接続IDを指定ã—ã¾ã?
073     *       errRemove          ã€å»?­¢ã€‘エラー時ã?é¸æŠžè¡Œã‚’å–り除ã?¦ç¶™ç¶šå?ç?‚’行ã†ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:false)
074     *       debug              ã€TAG】デãƒãƒƒã‚°æƒ??ã‚’å?力ã™ã‚‹ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:false)
075     *   />
076     *
077     * â—使用ä¾?
078     *       ・<og:tableExist
079     *                    command = "{@command}"
080     *                    names   = "USERID,SYSTEM_ID"
081     *                    from    = "GE10"
082     *                    where   = "USERID=? AND SYSTEM_ID=?"
083     *                    exist   = "true"         />
084     *
085     *          ・where æ¡ä»¶ã® ? æ–?­—ã«ã€names ã§æŒ?®šã—ãŸã‚«ãƒ©ãƒ?ã®å€¤ãŒã?DBTableModelより
086     *            å–å¾—ã•れã¾ã™ã?
087     *            値ã®å–å¾—ã?ã€å?ã«é¸æŠžã•れãŸè¡Œã?ã¿ã«ã¤ã?¦ã€å®Ÿè¡Œã•れã¾ã™ã?
088     *          ・exist 属æ?ã®å€¤ã«å¿œã˜ã¦ã€ãƒã‚§ãƒ?‚¯æ–¹æ³•ãŒç•°ãªã‚Šã¾ã™ã?
089     *            auto , true , false , one , notuse ãŒæŒ‡å®šã§ãã¾ã™ã?
090     *          ・ãƒ??ブルã¯ã€?¼‘ã¤ã®ã¿æŒ?®šã§ãã¾ã™ã?è¤?•°æŒ?®šã‚„ã€UNIONã§çµåˆã™ã‚‹å ´åˆã?ã€?
091     *            ビュー等を作æ?ã—ã¦å¯¾å¿œã—ã¦ãã ã•ã„ã€?
092     *
093     *       ・<og:tableExist
094     *                    command = "{@command}"
095     *                    from    = "GE10"
096     *                    where   = "USERID=[USERID] AND SYSTEM_ID=[SYSTEM_ID]"  />
097     *
098     *          ・where æ¡ä»¶ã® [カラãƒ?] æ–?­—ã«ã€DBTableModelより値ãŒã‚»ãƒ?ƒˆã•れã¾ã™ã?
099     *          ・exist ã¯ã€å?期å?(auto)ã«ãªã‚Šã¾ã™ã?å†?ƒ¨ã®A,C,Dã«å¿œã˜ã¦è‡ªå‹•判別ã—ã¾ã™ã?
100     *
101     * @og.rev 3.5.0.0 (2003/09/17) æ–°è¦ä½œæ?
102     * @og.group (å»?­¢)?¤?¢ç™»éŒ²
103     *
104     * @version  4.0
105     * @author       Kazuhiko Hasegawa
106     * @since    JDK5.0,
107     * @deprecated 代ã‚り㫠dataCheckタグを使用ã—ã¦ãã ã•ã„
108     */
109    @Deprecated public class TableExistTag extends CommonTagSupport {
110            //* ã“ã?プログラãƒ??VERSIONæ–?­—å?を設定ã—ã¾ã™ã?       {@value} */
111            private static final String VERSION = "4.0.0.0 (2007/11/28)" ;
112    
113            private static final long serialVersionUID = 400020071128L ;
114    
115            /** command å¼•æ•°ã«æ¸¡ã™äº‹ã?出æ¥ã‚?コマンãƒ? エントリー {@value} */
116            public static final String CMD_ENTRY   = "ENTRY" ;
117    
118            /** command å¼•æ•°ã«æ¸¡ã™äº‹ã?出æ¥ã‚?コマンãƒ?リスãƒ? */
119            private static final String COMMAND_LIST = CMD_ENTRY;
120    
121            // 3.5.6.0 (2004/06/18) ã™ã¹ã¦ã‚?protected ã‹ã‚‰ private ã«å¤‰æ›´ã—ã¾ã™ã?
122            private transient DBTableModel  table           = null;
123            private transient ErrorMessage  errMessage      = null;
124            private String                  tableId         = HybsSystem.TBL_MDL_KEY;
125            // 4.0.0.0 (2007/10/10) dbid ã®åˆæœŸå€¤ã‚’ã?"DEFAULT" ã‹ã‚‰ null ã«å¤‰æ›´
126    //      private String                  dbid            = "DEFAULT";
127            private String                  dbid            = null;
128            private String                  command         = CMD_ENTRY;
129            private String                  sql                     = null;
130            private String                  names           = null;
131            private String                  from            = null;
132            private String                  where           = null;
133            private String                  exist           = "auto";
134            private boolean                 errRemove       = false;
135    
136            /**
137             * Taglibã®é–‹å§‹ã‚¿ã‚°ãŒè¦‹ã¤ã‹ã£ãŸã¨ãã«å‡¦ç?™ã‚?doStartTag() ã‚?オーãƒã?ライドã—ã¾ã™ã?
138             *
139             * @og.rev 3.7.1.0 (2005/04/15) notuse 値を追�
140             *
141             * @return      後続å?ç??æŒ?¤º(SKIP_BODY)
142             */
143            @Override
144            public int doStartTag() {
145                    if( !exist.equalsIgnoreCase( "notuse" ) ) {
146                            table = (DBTableModel)getObject( tableId );
147                            if( table != null && table.getRowCount() > 0 && check( command, COMMAND_LIST ) ) {
148                                    sql = makeSQLString();
149                                    execute( sql );
150                            }
151                    }
152    
153                    return(SKIP_BODY);                              // Body を評価ã—ãªã?
154            }
155    
156            /**
157             * Taglibã®çµ‚äº?‚¿ã‚°ãŒè¦‹ã¤ã‹ã£ãŸã¨ãã«å‡¦ç?™ã‚?doEndTag() ã‚?オーãƒã?ライドã—ã¾ã™ã?
158             *
159             * @og.rev 3.5.4.2 (2003/12/15) HTMLTableViewForm クラスå変更(â‡?ViewForm_HTMLTable)
160             * @og.rev 3.5.4.4 (2004/01/16) ã‚¨ãƒ©ãƒ¼çµæžœã‚’表示ã™ã‚‹ãƒ??ブル形å¼ã?フォーãƒ?¿®æ­£
161             * @og.rev 3.5.5.2 (2004/04/02) TaglibUtil.makeHTMLErrorTable メソãƒ?ƒ‰ã‚’利用
162             *
163             * @return      後続å?ç??æŒ?¤º
164             */
165            @Override
166            public int doEndTag() {
167                    debugPrint();           // 4.0.0 (2005/02/28)
168    
169                    int rtnCode = EVAL_PAGE;
170    
171                    if( CMD_ENTRY.equals( command ) && errMessage != null && ! errMessage.isOK() ) {
172                    // 3.5.5.2 (2004/04/02) TaglibUtil.makeHTMLErrorTable メソãƒ?ƒ‰ã‚’利用
173                            if( !errRemove ) {
174                                    rtnCode = SKIP_PAGE ;
175                                    jspPrint( TaglibUtil.makeHTMLErrorTable( errMessage,getResource() ) );
176                            }
177                    }
178    
179                    return( rtnCode );
180            }
181    
182            /**
183             * タグリブオブジェクトをリリースã—ã¾ã™ã?
184             * キャãƒ?‚·ãƒ¥ã•れã¦å†åˆ©ç”¨ã•れるã?ã§ã€ãƒ•ィールドã?åˆæœŸè¨­å®šã‚’行ã„ã¾ã™ã?
185             *
186             * @og.rev 4.0.0.0 (2007/10/10) dbid ã®åˆæœŸå€¤ã‚’ã?"DEFAULT" ã‹ã‚‰ null ã«å¤‰æ›´
187             */
188            @Override
189            protected void release2() {
190                    super.release2();
191                    tableId                 = HybsSystem.TBL_MDL_KEY;
192    //              dbid                    = "DEFAULT";
193                    dbid                    = null;
194                    command                 = CMD_ENTRY;
195                    table                   = null;
196                    sql                             = null;
197                    names                   = null;
198                    errMessage              = null;
199                    exist                   = "auto";
200                    errRemove               = false;
201            }
202    
203            /**
204             * SQLæ–?‚’構築ã—ã¾ã™ã?
205             *
206             * @return 構築ã•れãŸã€SQLæ–?
207             */
208            private String makeSQLString() {
209                    StringBuilder rtn = new StringBuilder( HybsSystem.BUFFER_MIDDLE );
210                    rtn.append( "select count(*) from " );
211                    rtn.append( from );
212                    rtn.append( " where " );
213                    rtn.append( where );
214    
215                    return rtn.toString();
216            }
217    
218            /**
219             * Query を実行ã—ã¾ã™ã?
220             *
221             * @param   sql 検索æ–?­—å?
222             *
223             * @og.rev 3.8.6.0 (2006/09/29) exist 属æ?ã® one ã‚??¢one:ã²ã¨ã¤ã®ã¿?£ã‹ã‚‰?¢one:ã²ã¨ã¤ä»¥ä¸‹ï½£ã«å¤‰æ›´
224             * @og.rev 3.8.7.0 (2006/12/15) アクセスログå–å¾—ã?為,ApplicationInfoオブジェクトを設å®?
225             * @og.rev 4.0.0.0 (2005/01/31) getParameterRows() を使用ã™ã‚‹ã‚ˆã†ã«å¤‰æ›´
226             * @og.rev 4.0.0.0 (2007/11/28) è«–ç†å‡¦ç??ä¸å?åˆä¿®æ­£(ã‚«ãƒ?‚³ã®ä»˜ã‘ã‚‹ä½ç½®é–“é•ã?
227             */
228            private void execute( final String sql ) {
229                    errMessage = new ErrorMessage( "Database Exist Data Error!" );
230    
231                    final String query ;
232                    final int[]  clmNo ;
233    
234                    int[] rowNo = getParameterRows();               // 4.0.0 (2005/01/31)
235                    if( rowNo.length == 0 ) { return; }
236    
237                    // names ãªã—ã?å ´åˆã?ã€Query よりå–å¾—ã™ã‚‹ã?  4.0.0 (2005/01/31)
238                    if( names == null ) {
239    //                      QueryForm form = new QueryForm( sql,table );
240    //                      clmNo = form.getColumnNos();
241    //                      query = form.getStatement();
242    //                      names = StringUtil.array2csv( form.getColumnNames() );
243    
244                            Formatter format = new Formatter( table );
245                            format.setFormat( sql );
246                            query = format.getQueryFormatString();
247                            clmNo = format.getClmNos();
248                            names = StringUtil.array2csv( table.getNames() );
249                    }
250                    else {
251                            clmNo = getTableColumnNo( StringUtil.csv2Array( names ) );
252                            query = sql;
253                    }
254    
255                    int row;
256                    boolean okFlag ;
257                    List<Integer> list = new ArrayList<Integer>();
258                    String[] values ;
259                    for( int j=0; j<rowNo.length; j++ ) {
260                            okFlag = true;
261                            row = rowNo[j];
262                            values = getTableModelData( clmNo,row );
263                            int cnt = DBUtil.dbExist( query,values,getApplicationInfo(),dbid );
264    
265                            String modifyType = table.getModifyType( row );
266                            if( ( exist.equalsIgnoreCase( "true" ) ||
267                                    ( exist.equalsIgnoreCase( "auto" ) && (
268                                                    DBTableModel.UPDATE_TYPE.equals( modifyType ) ||
269                                                    DBTableModel.DELETE_TYPE.equals( modifyType ) ) ) ) && cnt <= 0 ) {
270                                    // ERR0025=ãƒ??タ未登録エラー。キー={0}ã€å?={1} ã®ãƒ??ã‚¿ã¯ã€å­˜åœ¨ã—ã¦ã?¾ã›ã‚“ã€?
271                                    String vals = StringUtil.array2csv( values );
272                                    errMessage.addMessage( row,ErrorMessage.NG,"ERR0025",names,vals );
273                                    okFlag = false;
274                            }
275                            // 4.0.0.0 (2007/11/28) è«–ç†å‡¦ç??ä¸å?åˆä¿®æ­£(ã‚«ãƒ?‚³ã®ä»˜ã‘ã‚‹ä½ç½®é–“é•ã?
276                            else if( ( exist.equalsIgnoreCase( "false" ) ||
277                                             ( exist.equalsIgnoreCase( "auto" ) &&
278                                                            DBTableModel.INSERT_TYPE.equals( modifyType ) ) ) && cnt > 0 ) {
279                                    // ERR0026=ãƒ??タ登録済ã¿ã‚¨ãƒ©ãƒ¼ã€‚キー={0}ã€å?={1} ã®ãƒ??ã‚¿ã¯ã€ã™ã§ã«å­˜åœ¨ã—ã¦ã?¾ã™ã?
280                                    String vals = StringUtil.array2csv( values );
281                                    errMessage.addMessage( row,ErrorMessage.NG,"ERR0026",names,vals );
282                                    okFlag = false;
283                            }
284                            else if( exist.equalsIgnoreCase( "one" ) && cnt > 1 ) {
285                                    // ERR0027=ãƒ??ã‚¿?’é‡ç™»éŒ²ã‚¨ãƒ©ãƒ¼ã€‚キー={0}ã€å?={1} ã®ãƒ??ã‚¿ã¯ã€?‡è¤?—ã¦å­˜åœ¨ã—ã¦ã?¾ã™ã?
286                                    String vals = StringUtil.array2csv( values );
287                                    errMessage.addMessage( row,ErrorMessage.NG,"ERR0027",names,vals );
288                                    okFlag = false;
289                            }
290                            if( errRemove && okFlag ) { list.add( row ); }
291                    }
292                    if( errRemove ) {
293                            Integer[] in = list.toArray( new Integer[list.size()] );
294                            int[] newRowNo = new int[in.length];
295                            for( int i=0; i<in.length; i++ ) {
296                                    newRowNo[i] = in[i].intValue();
297                            }
298                            setParameterRows( newRowNo );
299                    }
300            }
301    
302            /**
303             * ã€å»?­¢ã€?通常ã¯ä½¿ã?¾ã›ã‚“)çµæžœã‚’DBTableModelã«æ›¸ã込んã§ã€sessionã«ç™»éŒ²ã™ã‚‹ã¨ãã?キーを指定ã—ã¾ã™ã?
304             *
305             * @og.tag
306             * åˆæœŸå€¤ã¯ã€HybsSystem.TBL_MDL_KEY ã§ã™ã?
307             *
308             * @param       id sessionã«ç™»éŒ²ã™ã‚‹æ™‚ã? ID
309             * @deprecated クラスãŒå»?­¢ã•れã¾ã—ãŸã€?
310             */
311            @Deprecated public void setTableId( final String id ) {
312                    tableId   = nval( getRequestParameter( id ),tableId );  // 3.8.0.9 (2005/10/17)
313            }
314    
315            /**
316             * ã€å»?­¢ã€?通常ã¯ä½¿ã?¾ã›ã‚“)Queryオブジェクトを作æ?ã™ã‚‹æ™‚ã?DB接続IDを指定ã—ã¾ã™ã?
317             *
318             * @og.tag Queryオブジェクトを作æ?ã™ã‚‹æ™‚ã?DB接続IDを指定ã—ã¾ã™ã?
319             *
320             * @param       id ãƒ??タベã?ス接続ID
321             * @deprecated クラスãŒå»?­¢ã•れã¾ã—ãŸã€?
322             */
323            @Deprecated public void setDbid( final String id ) {
324                    dbid = nval( getRequestParameter( id ),dbid );
325            }
326    
327            /**
328             * ã€å»?­¢ã€‘コマンãƒ?ENTRY)ã‚’ã‚»ãƒ?ƒˆã—ã¾ã™ã?
329             *
330             * @og.tag
331             * コマンドã?,HTMLã‹ã‚‰(get/post)æŒ?®šã•れã¾ã™ã?ã§,CMD_xxx ã§è¨­å®šã•れる
332             * フィールド定数値ã®ã?¥ã‚Œã‹ã‚’ã?æŒ?®šã§ãã¾ã™ã?
333             *
334             * @param       cmd コマンãƒ?public static final 宣è¨?•れã¦ã?‚‹æ–?­—å?)
335             * @see         <a href="{&#064;docRoot}/constant-values.html#org.opengion.hayabusa.taglib.TableExistTag.CMD_NEW">コマンド定数</a>
336             * @deprecated クラスãŒå»?­¢ã•れã¾ã—ãŸã€?
337             */
338            @Deprecated public void setCommand( final String cmd ) {
339                    String cmd2 = getRequestParameter( cmd );
340                    if( cmd2 != null && cmd2.length() > 0 ) { command = cmd2.toUpperCase(Locale.JAPAN); }
341            }
342    
343            /**
344             * ã€å»?­¢ã€‘引数ã«ã‚»ãƒ?ƒˆã™ã¹ã?ãƒ??ã‚¿ã®åç§°(カラãƒ?)ã‚’CSVå½¢å¼ã§è¤?•°æŒ?®šã—ã¾ã™ã?
345             *
346             * @og.tag
347             * è¤?•°ã‚ã‚‹å ´åˆã?ã€ã‚«ãƒ³ãƒžåŒºåˆ?‚Šæ–?­—ã§æ¸¡ã—ã¾ã™ã?
348             * 引数をnames ã§ã¯ãªãã?[カラãƒ?]å½¢å¼ã§ç›´æŽ¥æŒ?®šã™ã‚‹ã»ã?Œã€SQLæ–?Œåˆ¤ã‚Šã‚„ã™ããªã‚Šã¾ã™ã?
349             *
350             * @param       nm 引数ã®åç§°(è¤?•°ã‚ã‚‹å ´åˆã?ã€ã‚«ãƒ³ãƒžåŒºåˆ?‚Šæ–?­?
351             * @deprecated クラスãŒå»?­¢ã•れã¾ã—ãŸã€?
352             */
353            @Deprecated public void setNames( final String nm ) {
354                    names = nval( getRequestParameter( nm ),names );
355            }
356    
357            /**
358             * ã€å»?­¢ã€‘ãƒã‚§ãƒ?‚¯ã™ã‚‹ãƒ??タベã?スå?from å¥)を指定ã—ã¾ã™ã?
359             *
360             * @og.tag
361             * from å¥ ã«æŒ?®šã™ã‚‹ãƒ‡ãƒ¼ã‚¿ãƒ™ã?スåã§ã™ã?
362             *
363             * @param       fm ãƒ??タベã?スID
364             * @deprecated クラスãŒå»?­¢ã•れã¾ã—ãŸã€?
365             */
366            @Deprecated public void setFrom( final String fm ) {
367                    from = nval( getRequestParameter( fm ),from );
368            }
369    
370            /**
371             * ã€å»?­¢ã€‘ãƒã‚§ãƒ?‚¯ã™ã‚‹æ¤œç´¢æ¡ä»¶(whereå¥)を指定ã—ã¾ã™ã?
372             *
373             * @og.tag
374             * where 区 ã«æŒ?®šã™ã‚‹æ¤œç´¢æ¡ä»¶ã§ã™ã?? ã®éƒ¨åˆ?«ã€names 属æ?ã§æŒ?®šã—ã?
375             * カラãƒ??ãƒ??ã‚¿ãŒã?DBTableModelよりå–り出ã•れã¦é©ç”¨ã•れã¾ã™ã?
376             * ã¾ãŸã?ã€[カラãƒ?]å½¢å¼ã§ã€ç›´æŽ¥æŒ?®šã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã?ãã?å ´åˆã?ã€?
377             * name 属æ?ã¯æŒ?®šã™ã‚‹å¿?¦ãŒã‚りã¾ã›ã‚“ã€?
378             * [カラãƒ?]ã®å‰å¾Œã«ã€?')シングルコーãƒ??ションã¯ã€ä¸è¦ã§ã™ã?
379             *
380             * @param       wr 検索æ¡ä»¶(whereå¥)
381             * @deprecated クラスãŒå»?­¢ã•れã¾ã—ãŸã€?
382             */
383            @Deprecated public void setWhere( final String wr ) {
384                    where = nval( getRequestParameter( wr ),where );
385            }
386    
387            /**
388             * ã€å»?­¢ã€‘データベã?スã®ãƒã‚§ãƒ?‚¯æ–¹æ³?auto/true/false/one/notuse)を指定ã—ã¾ã?åˆæœŸå€¤:?¢auto:自動」)ã€?
389             *
390             * @og.tag
391             * exist 属æ?ã«æŒ?®šã•れ㟠ã€?½¢true:存在ã™ã‚‹?£ã€?½¢false:存在ã—ãªã?½£ã€?½¢one:ã²ã¨ã¤ä»¥ä¸‹ï½£ã€?
392             * ã®å€¤ã¯ã€ã„ãšã‚Œã®å ´åˆã‚‚ã€æ?立時ã¯ã€æ­£å¸¸ã¨ã¿ãªã—ã¾ã™ã?
393             * ?¢auto:自動」ã¯ã€DBTableModeleã®modifyType(A,C,D)ã«å¿œã˜ã¦ã€ãƒã‚§ãƒ?‚¯ã—ã¾ã™ã?
394             * A,C,D ã¯ã€entryã‚¿ã‚°ã«ã‚³ãƒžãƒ³ãƒ‰ã‚’渡ã—ã¦ãƒ??タを作æ?ã—ãŸã¨ãã«ã€å?部ã§ä½œæ?ã•れã¾ã™ã?
395             * notuse ã¯ã€ãƒã‚§ãƒ?‚¯ã‚’行ã„ã¾ã›ã‚“。ã“れã?ã€ã“ã®ã‚¿ã‚°ã‚’å?有使用ã™ã‚‹å ´åˆã«ã€å¤–部ã§
396             * ãƒã‚§ãƒ?‚¯ã‚’行ã†ã‹ã©ã?‹ã‚’指定ã§ãるよã†ã«ã™ã‚‹ãŸã‚ã«ä½¿ç”¨ã—ã¾ã™ã?
397             * (?¢true:存在ã™ã‚‹?£ ã«ã¯ã€ãƒ‡ãƒ¼ã‚¿ãŒå­˜åœ¨ã—ãŸå ´åˆã«ã€?¼¯?«ã§ã€ãªã‘れã°ã‚¨ãƒ©ãƒ¼ã§ã™ã?)
398             * åˆæœŸå€¤ã¯ã€?½¢auto:自動」ã§ã™ã?
399             *
400             * @param       ext ãƒã‚§ãƒ?‚¯æ–¹æ³??¢auto:自動」ã€?½¢true:存在ã™ã‚‹?£ã€?½¢false:存在ã—ãªã?½£ã€?½¢one:ã²ã¨ã¤ä»¥ä¸‹ï½£ã€?½¢notuse:ãƒã‚§ãƒ?‚¯ã—ãªã?½£)
401             * @deprecated クラスãŒå»?­¢ã•れã¾ã—ãŸã€?
402             */
403            @Deprecated public void setExist( final String ext ) {
404                    exist = nval( getRequestParameter( ext ),exist );
405                    if( !"auto".equalsIgnoreCase( exist ) &&
406                            !"true".equalsIgnoreCase( exist ) &&
407                            !"false".equalsIgnoreCase( exist ) &&
408                            !"one".equalsIgnoreCase( exist ) &&
409                            !"notuse".equalsIgnoreCase( exist ) ) {
410                                    String errMsg = "exist 属æ?ã¯ã€?auto,true,false,one,notuse)を指定ã—ã¦ãã ã•ã„ã€?[" + exist + "]" + HybsSystem.CR ;
411                                    throw new HybsSystemException( errMsg );
412                    }
413            }
414    
415            /**
416             * ã€å»?­¢ã€‘エラー時ã?é¸æŠžè¡Œã‚’å–り除ã?¦ç¶™ç¶šå?ç?‚’行ã†ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:false)ã€?
417             *
418             * @og.tag
419             * exist 属æ?ã«æŒ?®šã•れ㟠ã€?½¢true:存在ã™ã‚‹?£ã€?½¢false:存在ã—ãªã?½£ã€?½¢one:ã²ã¨ã¤ä»¥ä¸‹ï½£ã€?
420             * ã«å¯¾ã—ã¦ã€ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸé¸æŠžè¡Œç•ªå·ã‚’ã?å–り除ã?¦ä»¥ä¸‹ã?処ç?‚’継続ã™ã‚‹ã‹ã©ã?‹ã‚?
421             * æŒ?®šã—ã¾ã™ã?
422             * true ã«è¨­å®šã—ãŸå?åˆã?ã€ã‚¨ãƒ©ãƒ¼ãƒ??タを削除ã—ã?継続å?ç?‚’行ã†ã“ã¨ãŒã§ãã¾ã™ã?
423             * flase ã®å ´åˆã?ã€ã‚¨ãƒ©ãƒ¼ãƒ??タを表示ã—ã¦ã€ç¶™ç¶šå?ç?‚’åœæ­¢ã—ã¾ã™ã?
424             * åˆæœŸå€¤ã¯ã€?½¢false:ã‚¨ãƒ©ãƒ¼æ™‚åœæ­¢?£ã§ã™ã?
425             *
426             * @param       flag エラー時ã?継続å?ç?[true:エラー行番å·ã‚’å–り除ã継続å?ç?false:ã‚¨ãƒ©ãƒ¼æ™‚åœæ­¢]
427             * @deprecated クラスãŒå»?­¢ã•れã¾ã—ãŸã€?
428             */
429            @Deprecated public void setErrRemove( final String flag ) {
430                    errRemove = nval( getRequestParameter( flag ),errRemove );
431            }
432    
433            /**
434             *  カラãƒ?é…å?(String[])よりã€å¯¾å¿œã™ã‚‹ã‚«ãƒ©ãƒ?oé…å?(int[])を作æ?ã—ã¾ã™ã?
435             *
436             * @param       nameArray カラãƒ?é…å?
437             *
438             * @return      カラãƒ?oé…å?
439             */
440            private int[] getTableColumnNo( final String[] nameArray ) {
441                    int[] clmNo = new int[ nameArray.length ];
442                    for( int i=0; i<clmNo.length; i++ ) {
443                            clmNo[i] = table.getColumnNo( nameArray[i] );
444                    }
445                    return clmNo;
446            }
447    
448            /**
449             *  æŒ?®šã?行番å·ã®ã€ã‚«ãƒ©ãƒ?oé…å?(int[])ã«å¯¾å¿œã—ãŸå?ã®é…å?ã‚’è¿”ã—ã¾ã™ã?
450             *
451             * 表示ãƒ??ã‚¿ã® HybsSystem.ROW_SEL_KEY ã‚’å?ã«ã€?¸ã°ã‚ŒãŸ 行を
452             * 処ç??対象ã¨ã—ã¾ã™ã?
453             *
454             * @param       clmNo   カラãƒ?oé…å?
455             * @param       row             行番å·
456             *
457             * @return      行番å·ã¨ã‚«ãƒ©ãƒ?oé…å?ã«å¯¾å¿œã—ãŸã?値ã®é…å?
458             */
459            private String[] getTableModelData( final int[] clmNo,final int row ) {
460                    String[] values = new String[ clmNo.length ];
461                    for( int i=0; i<values.length; i++ ) {
462                            values[i] = table.getValue( row,clmNo[i] ) ;
463                    }
464                    return values;
465            }
466    
467            /**
468             * シリアライズ用ã®ã‚«ã‚¹ã‚¿ãƒ?‚·ãƒªã‚¢ãƒ©ã‚¤ã‚ºæ›¸ãè¾¼ã¿ãƒ¡ã‚½ãƒ?ƒ‰
469             *
470             * @og.rev 4.0.0.0 (2006/09/31) æ–°è¦è¿½åŠ?
471             * @serialData
472             *
473             * @param       strm    ObjectOutputStreamオブジェク�
474             */
475            private void writeObject( final ObjectOutputStream strm ) throws IOException {
476                    strm.defaultWriteObject();
477            }
478    
479            /**
480             * シリアライズ用ã®ã‚«ã‚¹ã‚¿ãƒ?‚·ãƒªã‚¢ãƒ©ã‚¤ã‚ºèª­ã¿è¾¼ã¿ãƒ¡ã‚½ãƒ?ƒ‰
481             *
482             * ã“ã“ã§ã¯ã€transient 宣è¨?•れãŸå†?ƒ¨å¤‰æ•°ã®å†??åˆæœŸåŒ–ãŒå¿?¦ãªãƒ•ィールドã?ã¿è¨­å®šã—ã¾ã™ã?
483             *
484             * @og.rev 4.0.0.0 (2006/09/31) æ–°è¦è¿½åŠ?
485             * @serialData
486             *
487             * @param       strm    ObjectInputStreamオブジェク�
488             * @see #release2()
489             */
490            private void readObject( final ObjectInputStream strm ) throws IOException , ClassNotFoundException {
491                    strm.defaultReadObject();
492            }
493    
494            /**
495             * ã“ã?オブジェクトã?æ–?­—å?表ç¾ã‚’è¿”ã—ã¾ã™ã?
496             * 基本çš?«ãƒ?ƒãƒ?‚°ç›®çš?«ä½¿ç”¨ã—ã¾ã™ã?
497             *
498             * @return ã“ã?ã‚¯ãƒ©ã‚¹ã®æ–?­—å?表ç¾
499             */
500            @Override
501            public String toString() {
502                    return org.opengion.fukurou.util.ToString.title( this.getClass().getName() )
503                                    .println( "VERSION"             ,VERSION        )
504                                    .println( "tableId"             ,tableId        )
505                                    .println( "dbid"                ,dbid           )
506                                    .println( "command"             ,command        )
507                                    .println( "sql"                 ,sql            )
508                                    .println( "names"               ,names          )
509                                    .println( "from"                ,from           )
510                                    .println( "where"               ,where          )
511                                    .println( "exist"               ,exist          )
512                                    .println( "CMD_ENTRY"   ,CMD_ENTRY      )
513                                    .println( "Other..."    ,getAttributes().getAttribute() )
514                                    .fixForm().toString() ;
515            }
516    }