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[={@og.value org.opengion.hayabusa.common.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="../../../../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 * @throws IOException 入出力エラーãŒç™ºç”Ÿã—ãŸå?å?
475 */
476 private void writeObject( final ObjectOutputStream strm ) throws IOException {
477 strm.defaultWriteObject();
478 }
479
480 /**
481 * シリアライズ用ã®ã‚«ã‚¹ã‚¿ãƒ?‚·ãƒªã‚¢ãƒ©ã‚¤ã‚ºèªã¿è¾¼ã¿ãƒ¡ã‚½ãƒ?ƒ‰
482 *
483 * ã“ã“ã§ã¯ã€transient 宣è¨?•れãŸå†?ƒ¨å¤‰æ•°ã®å†??åˆæœŸåŒ–ãŒå¿?¦ãªãƒ•ィールドã?ã¿è¨å®šã—ã¾ã™ã?
484 *
485 * @og.rev 4.0.0.0 (2006/09/31) æ–°è¦è¿½åŠ?
486 * @serialData ä¸?ƒ¨ã®ã‚ªãƒ–ジェクトã?ã€ã‚·ãƒªã‚¢ãƒ©ã‚¤ã‚ºã•れã¾ã›ã‚“ã€?
487 *
488 * @param strm ObjectInputStreamオブジェク�
489 * @see #release2()
490 * @throws IOException シリアライズã«é–¢ã™ã‚‹å…¥å‡ºåŠ›ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸå?å?
491 * @throws ClassNotFoundException クラスを見ã¤ã‘ã‚‹ã“ã¨ãŒã§ããªã‹ã£ãŸå?å?
492 */
493 private void readObject( final ObjectInputStream strm ) throws IOException , ClassNotFoundException {
494 strm.defaultReadObject();
495 }
496
497 /**
498 * ã“ã?オブジェクトã?æ–?—å?表ç¾ã‚’è¿”ã—ã¾ã™ã?
499 * 基本çš?«ãƒ?ƒãƒ?‚°ç›®çš?«ä½¿ç”¨ã—ã¾ã™ã?
500 *
501 * @return ã“ã?ã‚¯ãƒ©ã‚¹ã®æ–?—å?表ç¾
502 */
503 @Override
504 public String toString() {
505 return org.opengion.fukurou.util.ToString.title( this.getClass().getName() )
506 .println( "VERSION" ,VERSION )
507 .println( "tableId" ,tableId )
508 .println( "dbid" ,dbid )
509 .println( "command" ,command )
510 .println( "sql" ,sql )
511 .println( "names" ,names )
512 .println( "from" ,from )
513 .println( "where" ,where )
514 .println( "exist" ,exist )
515 .println( "CMD_ENTRY" ,CMD_ENTRY )
516 .println( "Other..." ,getAttributes().getAttribute() )
517 .fixForm().toString() ;
518 }
519 }