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.hayabusa.db.DBColumn; 022 import org.opengion.hayabusa.db.Query; 023 import org.opengion.hayabusa.db.QueryFactory; 024 import org.opengion.fukurou.util.XHTMLTag; 025 import org.opengion.fukurou.util.Attributes; 026 import org.opengion.fukurou.db.Transaction; 027 import org.opengion.fukurou.db.TransactionReal; 028 029 import static org.opengion.fukurou.util.StringUtil.nval ; 030 031 import java.io.ObjectOutputStream; 032 import java.io.ObjectInputStream; 033 import java.io.IOException; 034 035 /** 036 * プルãƒ?‚¦ãƒ³ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã®é¸æŠžé?目をSELECTæ–??çµæžœã‹ã‚‰ä½œæ?ã™ã‚‹ã‚¿ã‚°ã§ã™ã? 037 * 038 * 基本çš?«ã¯ã€?½‘ueryã‚¿ã‚°ã¨åŒã˜ä½¿ã?–¹ã‚’ã—ã¾ã™ã? 039 * ã“ã?オブジェクトã«ã€?queryId を与ãˆã‚‹ã“ã¨ã«ã‚ˆã‚Šã€queryId ã«å¯¾å¿œã—ã?Queryオブジェクãƒ? 040 * (ã®ã‚µãƒ–クラスã®ã‚ªãƒ–ジェクãƒ?ãŒä½œæ?ã•れã¾ã™ã? 041 * ã“ã“ã§æŒ?®šã™ã‚‹SELECTæ–??ã€ã?SELECT KEYã€LABEL1ã€LABEL2ã€?½¥?¥?¥ FROM TABLE ?¥?¥?¥ã€å½¢å¼?ã‚? 042 * ã—ã¦ã?‚‹å¿?¦ãŒã‚りã¾ã™ã?特別ãªã‚±ãƒ¼ã‚¹ã¨ã—ã¦ã€ã?SELECT KEY FROM TABLE ?¥?¥?¥ã€å½¢å¼ã?å ´åˆã?ã€? 043 * LABEL ã« KEY ã?使用ã•れã¾ã™ã? 044 * SystemData ã® USE_SQL_INJECTION_CHECK ã?true ã‹ã?quotCheck 属æ?ã?true ã®å ´åˆã?ã€? 045 * ?³?±?¬ã‚¤ãƒ³ã‚¸ã‚§ã‚¯ã‚·ãƒ§ãƒ³å¯¾ç–用ã®ã‚¯ã‚©ãƒ¼ãƒ?‚£ã‚·ãƒ§ãƒ³ãƒã‚§ãƒ?‚¯ã‚’行ã„ã¾ã™ã?リクエスト引数㫠046 * クォーãƒ?‚£ã‚·ãƒ§ãƒ³(')ãŒå«ã¾ã‚Œã‚‹ã¨ã€ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã™ã? 047 * åŒæ§˜ã«USE_XSS_CHECKãŒtrueã‹ã?xssCheck属æ?ãŒtrueã®å ´åˆã?ã€? 048 * クãƒã‚¹ã‚µã‚¤ãƒˆã‚¹ã‚¹ã‚¯ãƒªãƒ—ティング(XSS)対ç–ã?ãŸã‚less/greater than signã®ãƒã‚§ãƒ?‚¯ã‚’行ã„ã¾ã™ã? 049 * 050 * ※ ã“ã?ã‚¿ã‚°ã¯ã€Transaction ã‚¿ã‚°ã®å¯¾è±¡ã§ã™ã? 051 * 052 * @og.formSample 053 * â—å½¢å¼ï¼? 054 * <og:queryOption > 055 * SELECTæ–? 056 * </og:queryOption > 057 * â—body?šã‚ã‚? 058 * 059 * â—Tag定義?? 060 * <og:queryOption 061 * value ã€TAG】Optionã®åˆæœŸå€¤ã§é¸ã°ã‚Œã‚‹å€¤ã‚’指定ã—ã¾ã? 062 * separator ã€TAG】è¤?•°ã®ãƒ©ãƒ™ãƒ«ã‚’åˆæˆã™ã‚‹ã¨ãã«ä½¿ç”¨ã™ã‚‹é ?›®åŒºåˆ?‚Šæ–?—ã‚’ã‚»ãƒ?ƒˆã—ã¾ã?åˆæœŸå€¤:スペã?ス) 063 * defaultVal ã€TAG】value値ãŒNULLã®å ´åˆã«ä½¿ç”¨ã•れるå?期å?ã‚’è¨å®šã—ã¾ã? 064 * language ã€TAG】タグå†?ƒ¨ã§ä½¿ç”¨ã™ã‚‹è¨?ªžã‚³ãƒ¼ãƒ‰[ja/en/zh/…]を指定ã—ã¾ã? 065 * quotCheck ã€TAGã€‘ãƒªã‚¯ã‚¨ã‚¹ãƒˆæƒ…å ±ã® ã‚¯ã‚©ãƒ¼ãƒ?‚£ã‚·ãƒ§ãƒ³(') å˜åœ¨ãƒã‚§ãƒ?‚¯ã‚’実施ã™ã‚‹ã‹ã©ã?‹[true/false]ã‚’è¨å®šã—ã¾ã?(åˆæœŸå€¤:USE_SQL_INJECTION_CHECK[=true]) 066 * dbid ã€TAGã€?通常ã¯ä½¿ã?¾ã›ã‚“)Queryオブジェクトを作æ?ã™ã‚‹æ™‚ã?DB接続IDを指定ã—ã¾ã? 067 * addKey ã€TAG】é?ç›®ãŒä¸?¤ã?‘ã®å ´åˆã??—ï¾ï¾žï¾™ï¾˜ï½¿?°?½ã«ã€ã‚ーæƒ??を追åŠ?™ã‚‹ã‹ã©ã?‹ã‚’指定ã—ã¾ã?åˆæœŸå€¤:false) 068 * classUseNo ã€TAG】オプションã«è¿½åŠ?™ã‚?class 属æ?㮠カラãƒ?•ªå·ã‚’指定ã—ã¾ã? 069 * groupUseNo ã€TAG】オプションã®ã‚°ãƒ«ãƒ¼ãƒ—化を行ã†ã‚«ãƒ©ãƒ?•ªå·ã‚’指定ã—ã¾ã? 070 * titleUseNo ã€TAG】オプションã«è¿½åŠ?™ã‚?title 属æ?㮠カラãƒ?•ªå·ã‚’指定ã—ã¾ã? 071 * xssCheck ã€TAGã€‘ãƒªã‚¯ã‚¨ã‚¹ãƒˆæƒ…å ±ã® HTMLTagé–‹å§?終äº?–‡å?><) å˜åœ¨ãƒã‚§ãƒ?‚¯ã‚’実施ã™ã‚‹ã‹ã©ã?‹[true/false]ã‚’è¨å®šã—ã¾ã?(åˆæœŸå€¤:USE_XSS_CHECK[=true]) 072 * caseKey ã€TAG】ã“ã®ã‚¿ã‚°è‡ªä½“を利用ã™ã‚‹ã‹ã©ã?‹ã®æ¡ä»¶ã‚ーを指定ã—ã¾ã?åˆæœŸå€¤:null) 073 * caseVal ã€TAG】ã“ã®ã‚¿ã‚°è‡ªä½“を利用ã™ã‚‹ã‹ã©ã?‹ã®æ¡ä»¶å€¤ã‚’指定ã—ã¾ã?åˆæœŸå€¤:null) 074 * debug ã€TAG】デãƒãƒƒã‚°æƒ??ã‚’å?力ã™ã‚‹ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:false) 075 * > ... Body ... 076 * </og:queryOption> 077 * 078 * â—使用ä¾? 079 * <og:select name="CDC" > 080 * <og:queryOption> 081 * select NOSYN,NOSYN,NMSYN from DB01 ORDER BY 1 082 * </og:queryOption> 083 * </og:select> 084 * 085 * <og:select name="CDC" > é¸æŠžé?ç›®ã®ä¸?•ªä¸Šã«ç©ºç™½ã‚’ã‚»ãƒ?ƒˆã—ãŸã?¨ãoptionã‚¿ã‚°ã‚’çµ?ˆã›ã‚‹ã“ã¨ã‚‚å¯èƒ½ã§ã™ã? 086 * <og:option msg="" /> åˆæœŸå€¤ã‚’è¨å®šã—ãŸã„ã¨ãã?value属æ?を使ã?¾ã™ã? 087 * <og:queryOption value="61200" separator=":" > 088 * select CDBK,CDBK,NMBK from DB02 ORDER BY 1 089 * </og:queryOption> 090 * </og:select> 091 * 092 * @og.group é¸æŠžãƒ‡ãƒ¼ã‚¿åˆ¶å¾¡ 093 * 094 * @version 4.0 095 * @author Kazuhiko Hasegawa 096 * @since JDK5.0, 097 */ 098 public class QueryOptionTag extends CommonTagSupport { 099 //* ã“ã?プãƒã‚°ãƒ©ãƒ??VERSIONæ–?—å?ã‚’è¨å®šã—ã¾ã™ã? {@value} */ 100 private static final String VERSION = "5.3.8.0 (2011/08/01)" ; 101 102 private static final long serialVersionUID = 538020110801L ; 103 104 private transient DBTableModel table = null; 105 private String selValue = null; 106 private String defaultVal = null; 107 // 4.0.0.0 (2007/10/10) dbid ã®åˆæœŸå€¤ã‚’ã?"DEFAULT" ã‹ã‚‰ null ã«å¤‰æ›´ 108 // private String dbid = "DEFAULT"; 109 private String dbid = null; 110 private String sql = null; 111 private String separator = " "; // é ?›®åŒºåˆ?‚Šæ–?? 112 private boolean quotCheck = HybsSystem.sysBool( "USE_SQL_INJECTION_CHECK" ); // 4.0.0 (2005/08/31) 113 private int classUseNo = -1; // 3.8.5.2 (2006/06/09) オプションã«è¿½åŠ?™ã‚‹ã‚¯ãƒ©ã‚¹å±žæ? 114 private int groupUseNo = -1; // 3.8.5.2 (2006/06/09) ã‚ーブレイク時ã«è¿½åŠ?™ã‚‹ã‚°ãƒ«ãƒ¼ãƒ—æ–‡å? 115 private boolean addKey = false; // 4.0.0 (2006/11/15) é ?›®ä¸?¤ã®ã¨ãã«?—ï¾ï¾žï¾™ï¾˜ï½¿?°?½è¡¨ç¤ºæ™‚ã«ã‚ãƒ¼ã‚‚ä»˜åŠ ã™ã‚‹ã€? 116 private int titleUseNo = -1; // 4.3.8.0 (2009/08/01) オプションã®title属æ? 117 private boolean xssCheck = HybsSystem.sysBool( "USE_XSS_CHECK" ); // 5.0.0.2 (2009/09/15) 118 private String rawSql = null; // 5.1.7.0 (2010/06/01) 動的プルãƒ?‚¦ãƒ³å®Ÿè£?¦‹ç›´ã? 119 120 /** 121 * Taglibã®é–‹å§‹ã‚¿ã‚°ãŒè¦‹ã¤ã‹ã£ãŸã¨ãã«å‡¦ç?™ã‚?doStartTag() ã‚?オーãƒã?ライドã—ã¾ã™ã? 122 * 123 * @og.rev 5.2.2.0 (2010/11/01) caseKey ã€caseVal 属æ?対å¿? 124 * 125 * @return 後続å?ç??æŒ?¤º( EVAL_BODY_BUFFERED ) 126 */ 127 @Override 128 public int doStartTag() { 129 // 5.2.2.0 (2010/11/01) caseKey ã€caseVal 属æ?対å¿? 130 if( useTag() ) { 131 return( EVAL_BODY_BUFFERED ); // Body を評価ã™ã‚‹ã€? extends BodyTagSupport æ™? 132 } 133 return ( SKIP_BODY ); // Body を評価ã—ãªã? 134 } 135 136 /** 137 * Taglibã®ã‚¿ã‚°æœ¬ä½“を処ç?™ã‚?doAfterBody() ã‚?オーãƒã?ライドã—ã¾ã™ã? 138 * 139 * @og.rev 3.1.1.0 (2003/03/28) ボディã®å†?®¹ã‚’å–å¾—ã™ã‚‹å?ç?‚’ã€CommonTagSupport ã§è¡Œã†ã€? 140 * @og.rev 3.6.0.8 (2004/11/19) エラー発生時ã«ç¢ºå®Ÿã«ãƒªãƒªãƒ¼ã‚¹ã•れるよã?« try finally 追åŠ? 141 * @og.rev 3.7.1.0 (2005/04/26) DBTableModel ãŒã™ã§ã«ã‚»ãƒ?ƒˆã•れã¦ã?‚‹å ´åˆã?ã€SQL処ç?¸è¦ã? 142 * @og.rev 4.0.0.0 (2005/01/31) lang â‡?ResourceManager ã¸å¤‰æ›´ 143 * @og.rev 4.0.0.0 (2005/08/31) useQuotCheck() ã«ã‚ˆã‚‹?³?±?¬ã‚¤ãƒ³ã‚¸ã‚§ã‚¯ã‚·ãƒ§ãƒ³å¯¾ç? 144 * @og.rev 3.8.6.3 (2006/11/30) SQL æ–??å‰å¾Œã?スペã?スをå–り除ãã¾ã™ã? 145 * @og.rev 3.8.7.0 (2006/12/15) アクセスãƒã‚°å–å¾—ã?為,ApplicationInfoオブジェクトをè¨å®? 146 * @og.rev 4.3.6.0 (2009/04/01) EventColumn対å¿? 147 * @og.rev 5.0.0.5 (2009/08/28) XSS対ç? 148 * @og.rev 5.1.7.0 (2010/06/01) 動的プルãƒ?‚¦ãƒ³å®Ÿè£?¦‹ç›´ã? 149 * @og.rev 5.1.9.0 (2010/08/01) TransactionTag 対応ã?上ä½ã« TransactionTag ãŒã‚れã?ã€ãã“ã‹ã‚‰Connection をもらã†ã€? 150 * @og.rev 5.3.7.0 (2011/07/01) TransactionReal ã®å¼•数変更 151 * @og.rev 5.3.8.0 (2011/08/01) Transaction発生ç®?‰€ã§close() 152 * 153 * @return 後続å?ç??æŒ?¤º(SKIP_BODY) 154 */ 155 @Override 156 public int doAfterBody() { 157 // 3.7.1.0 (2005/04/26) DBTableModel ãŒã™ã§ã«ã‚»ãƒ?ƒˆã•れã¦ã?‚‹å ´åˆã?ã€SQL処ç?¸è¦ã? 158 if( table != null ) { return(SKIP_BODY); } 159 160 // 4.0.0 (2005/08/31) useQuotCheck() ã«ã‚ˆã‚‹?³?±?¬ã‚¤ãƒ³ã‚¸ã‚§ã‚¯ã‚·ãƒ§ãƒ³å¯¾ç? 161 useQuotCheck( quotCheck ); 162 // 5.0.0.2 (2009/09/15) XSS対ç? 163 useXssCheck( xssCheck ); 164 165 sql = getBodyString().trim(); 166 // String rawsql = getBodyRawString().trim(); // 4.3.6.0 生ã?SQLã‚’ä¿æŒ 167 rawSql = getBodyRawString().trim(); 168 169 // 4.3.6.0 (2009/04/01) ã‚»ãƒ?‚·ãƒ§ãƒ³ã¸ã®SQLæ–?™»éŒ² 170 // 5.1.7.0 (2010/06/01) 動的プルãƒ?‚¦ãƒ³å®Ÿè£?¦‹ç›´ã? 171 // String[] selectVals = getEventColumn(); // 親タグã‹ã‚‰ã‚¤ãƒ™ãƒ³ãƒˆã‚«ãƒ©ãƒ?¨å®šã‚’å–ã‚‹ 172 // if( selectVals[0] != null && selectVals[0].length() > 0 ){ 173 // addEventColumnSQL( selectVals[1], rawsql ); 174 // } 175 176 Query query = QueryFactory.newInstance(); // 4.0.0 (2005/01/31) 177 Transaction tran = null; 178 try { 179 // 5.1.9.0 (2010/08/01) TransactionTag 対å¿? 180 // final Transaction tran ; 181 TransactionTag tranTag = (TransactionTag)findAncestorWithClass( this,TransactionTag.class ); 182 if( tranTag == null ) { 183 // tran = new TransactionReal( dbid,getApplicationInfo() ); 184 tran = new TransactionReal( getApplicationInfo() ); // 5.3.7.0 (2011/07/01) 引数変更 185 } 186 else { 187 tran = tranTag.getTransaction(); 188 } 189 query.setTransaction( dbid,tran ); // 5.1.9.0 (2010/08/01) TransactionTag 対å¿? 190 191 // query.setConnectionID( dbid ); 192 query.setResourceManager( getResource() ); // 4.0.0 (2005/01/31) 193 194 query.setStatement( sql ); 195 // query.setApplicationInfo( getApplicationInfo() ); // 3.8.7.0 (2006/12/15) 196 query.execute(); 197 198 table = query.getDBTableModel(); 199 200 // 4.0.0 (2005/11/30) æ¤œç´¢çµæžœã®ä»¶æ•°ã‚’ã?"DB.COUNT" ã‚ーã§ãƒªã‚¯ã‚¨ã‚¹ãƒˆã«ã‚»ãƒ?ƒˆã™ã‚‹ã€? 201 } 202 finally { 203 // if( query != null ) { query.close(); } 204 QueryFactory.close( query ); 205 if( tran != null ) { tran.close(); } // 5.3.8.0 (2011/08/01) Transaction発生ç®?‰€ã§close() 206 } 207 return(SKIP_BODY); 208 } 209 210 /** 211 * Taglibã®çµ‚äº?‚¿ã‚°ãŒè¦‹ã¤ã‹ã£ãŸã¨ãã«å‡¦ç?™ã‚?doEndTag() ã‚?オーãƒã?ライドã—ã¾ã™ã? 212 * 213 * @og.rev 3.1.1.2 (2003/04/04) Tomcat4.1 対応ã?release2() ã‚?doEndTag()ã§å‘¼ã¶ã€? 214 * @og.rev 3.3.2.0 (2003/07/07) defaultVal 属æ?ã®è¿½åŠ?? 215 * @og.rev 3.5.4.0 (2003/11/25) selVal 属æ?を追åŠ?? 216 * @og.rev 5.0.2.0 (2009/11/01) è¤?•°ãƒ‘ラメーターã®é¸æŠžã«å¯¾å¿? 217 * @og.rev 5.1.7.0 (2010/06/01) 動的プルãƒ?‚¦ãƒ³å®Ÿè£?¦‹ç›´ã? 218 * @og.rev 5.2.2.0 (2010/11/01) caseKey ã€caseVal 属æ?対å¿? 219 * 220 * @return 後続å?ç??æŒ?¤º 221 */ 222 @Override 223 public int doEndTag() { 224 debugPrint(); // 4.0.0 (2005/02/28) 225 // 5.2.2.0 (2010/11/01) caseKey ã€caseVal 属æ?対å¿? 226 if( useTag() ) { 227 SelectTag select = (SelectTag)findAncestorWithClass( this,SelectTag.class ); 228 if( select == null ) { 229 String errMsg = "ã“ã?ã‚¿ã‚°ã¯ã€SelectTag ã®BODY ã«è¨˜è¿°ã™ã‚‹å¿?¦ãŒã‚りã¾ã™ã?"; 230 throw new HybsSystemException( errMsg ); 231 } 232 String selVal = nval( select.getValue(),defaultVal ); // 3.5.4.0 (2003/11/25) 233 // selValue = nval( selValue,selVal ); // 3.5.4.0 (2003/11/25) 234 selValue = "|" + nval( selValue,selVal ) + "|"; // 5.0.2.0 (2009/11/01) 235 makeLabel( select ); 236 237 // 5.1.7.0 (2010/06/01) 動的プルãƒ?‚¦ãƒ³å®Ÿè£?¦‹ç›´ã? 238 select.setRawParam( rawSql ); 239 } 240 return(EVAL_PAGE); 241 } 242 243 /** 244 * タグリブオブジェクトをリリースã—ã¾ã™ã? 245 * ã‚ャãƒ?‚·ãƒ¥ã•れã¦å†åˆ©ç”¨ã•れるã?ã§ã€ãƒ•ィールドã?åˆæœŸè¨å®šã‚’行ã„ã¾ã™ã? 246 * 247 * @og.rev 2.0.0.4 (2002/09/27) カスタãƒ?‚¿ã‚°ã® release() メソãƒ?ƒ‰ã‚’ã?追åŠ? 248 * @og.rev 3.0.1.0 (2003/03/03) セパレーターを指定ã§ãる様ã«å¤‰æ›´ã€? 249 * @og.rev 3.1.1.2 (2003/04/04) Tomcat4.1 対応ã?release2() ã‚?doEndTag()ã§å‘¼ã¶ã€? 250 * @og.rev 3.3.2.0 (2003/07/07) defaultVal 属æ?ã®è¿½åŠ?? 251 * @og.rev 3.8.5.2 (2006/06/09) classUseNo , groupUseNo 属æ?ã®è¿½åŠ?? 252 * @og.rev 4.0.0.0 (2005/08/31) quotCheck , addKey 属æ?ã®è¿½åŠ? 253 * @og.rev 4.0.0.0 (2007/10/10) dbid ã®åˆæœŸå€¤ã‚’ã?"DEFAULT" ã‹ã‚‰ null ã«å¤‰æ›´ 254 * @og.rev 5.1.7.0 (2010/06/01) 動的プルãƒ?‚¦ãƒ³å®Ÿè£?¦‹ç›´ã? 255 * 256 */ 257 @Override 258 protected void release2() { 259 super.release2(); 260 table = null; 261 selValue = null; 262 defaultVal = null; 263 // dbid = "DEFAULT"; 264 dbid = null; 265 sql = null; 266 separator = " "; 267 classUseNo = -1; // 3.8.5.2 (2006/06/09) オプションã«è¿½åŠ?™ã‚‹ã‚¯ãƒ©ã‚¹å±žæ? 268 groupUseNo = -1; // 3.8.5.2 (2006/06/09) ã‚ーブレイク時ã«è¿½åŠ?™ã‚‹ã‚°ãƒ«ãƒ¼ãƒ—æ–‡å? 269 quotCheck = HybsSystem.sysBool( "USE_SQL_INJECTION_CHECK" ); // 4.0.0 (2005/08/31) 270 addKey = false; // 4.0.0 (2006/11/15) é ?›®ä¸?¤ã®ã¨ãã«?—ï¾ï¾žï¾™ï¾˜ï½¿?°?½è¡¨ç¤ºæ™‚ã«ã‚ãƒ¼ã‚‚ä»˜åŠ ã™ã‚‹ã€? 271 titleUseNo = -1; 272 xssCheck = HybsSystem.sysBool( "USE_XSS_CHECK" ); // 5.0.0.2 (2009/09/15) 273 rawSql = null; // 5.1.7.0 (2010/06/01) 動的プルãƒ?‚¦ãƒ³å®Ÿè£?¦‹ç›´ã? 274 } 275 276 /** 277 * DBTableModelã‚’ã‚»ãƒ?ƒˆã—ã¾ã™ã? 278 * 279 * サブクラスよりã€DBTableModelã‚’ã‚»ãƒ?ƒˆã™ã‚‹ã®ã«ä½¿ã?¾ã™ã? 280 * 281 * @og.rev 3.7.1.0 (2005/04/26) æ–°è¦è¿½åŠ? 282 * 283 * @param table DBTableModelオブジェクãƒ? 284 */ 285 protected void setTableModel( final DBTableModel table ) { 286 this.table = table ; 287 } 288 289 /** 290 * オプションを作æ?ã—ã¾ã™ã? 291 * 292 * DBTableModel ã®?‘番目ã®å€¤ã‚?"value" ã«ã€ãれ以é™ã‚’æ–?—å?ã‚’é?çµã•ã›ã¦ 293 * BODY属æ? ã«ç™»éŒ²ã™ã‚‹Optionを作æ?ã—ã¾ã™ã? 294 * 295 * @og.rev 3.0.1.0 (2003/03/03) 『SELECT KEY FROM TABLE ?¥?¥?¥ã€å½¢å¼ã?å ´åˆã?ã€LABEL ã« KEY を使用ã€? 296 * @og.rev 3.8.0.9 (2005/10/17) è¤?•°é¸æŠžå¯èƒ½æ™‚ã«å…¨é¸æŠžã‚’è¨å®šã™ã‚‹ã? 297 * @og.rev 3.8.5.2 (2006/06/09) classUseNo 属æ?㨠groupUseNo 属æ?を追åŠ? 298 * @og.rev 3.8.9.2 (2007/07/28) グループã¨ã€ã‚¯ãƒ©ã‚¹ã®è¨å®šæ–¹æ³•ã?ãƒã‚°ä¿®æ£ 299 * @og.rev 4.3.8.0 (2009/08/01) titleUseNo属æ?追åŠ? 300 * @og.rev 5.0.2.0 (2009/11/01) è¤?•°ãƒ‘ラメーターã®é¸æŠžã«å¯¾å¿? 301 * 302 * @param select SelectTagオブジェクãƒ? 303 */ 304 private void makeLabel( final SelectTag select ) { 305 boolean multipleAll = select.isMultipleAll(); // 3.8.0.9 (2005/10/17) 306 int rowCnt = table.getRowCount(); // 3.5.5.7 (2004/05/10) 307 308 String bkGroupKey = ""; 309 String grpLabel ; 310 for( int row=0; row<rowCnt; row++ ) { 311 // 3.8.5.2 (2006/06/09) groupUseNo 属æ? 312 if( groupUseNo >= 0 ) { 313 String groupKey = table.getValue( row,groupUseNo ); 314 grpLabel = getRendererValue( row,groupUseNo ); 315 if( !bkGroupKey.equals( groupKey ) ) { // ã‚ーブレイク 316 // 3.8.9.2 (2007/07/28) グループã¨ã€ã‚¯ãƒ©ã‚¹ã®è¨å®šæ–¹æ³•ã?ãƒã‚°ä¿®æ£ 317 // bkGroupKey = groupKey; 318 // if( row != 0 ) { select.addOption( "</optgroup>" ); } 319 // select.addOption( "<optgroup label=\"" + grpLabel + "\">" ); 320 321 if( ! "".equals( bkGroupKey ) ) { 322 select.addOption( "</optgroup>" ); 323 } 324 if( ! "".equals( groupKey ) ) { 325 select.addOption( "<optgroup label=\"" + grpLabel + "\">" ); 326 } 327 bkGroupKey = groupKey; 328 } 329 } 330 331 Attributes attri = new Attributes(); 332 String value = table.getValue( row,0 ); 333 attri.set( "value", value ); 334 335 // 5.0.2.0 (2009/11/01) 336 // if( ( selValue != null && selValue.equals( value ) ) || multipleAll ) { 337 if( ( selValue != null && selValue.length() > 0 && selValue.indexOf( "|" + value + "|" ) >= 0 ) || multipleAll ) { 338 attri.set( "selected", "selected" ); 339 } 340 341 // 3.8.5.2 (2006/06/09) classUseNo 属æ? 342 if( classUseNo >= 0 ) { 343 attri.add( "class", table.getValue( row,classUseNo ) ); 344 } 345 346 StringBuilder buf = new StringBuilder( HybsSystem.BUFFER_MIDDLE ); 347 boolean titleFlg = false; // 4.3.8.0 (2009/08/01) title属æ?を付ã‘ã‚‹ã‹ã©ã?‹ 348 if( table.getColumnCount() == 1 ) { 349 // é ?›®ãŒä¸?¤ã® queryOption ã§ã¯ã€ãƒ©ãƒ™ãƒ«ãƒªã‚½ãƒ¼ã‚¹ãŒä½¿ç”¨ã•れã¾ã™ã? 350 if( addKey ) { buf.append( value ).append( ":" ); } 351 buf.append( getResource().getLabel( value ) ); 352 353 // 4.3.8.0 (2009/08/01) titleUseNo 属æ? ã‚»ãƒ?ƒˆã•れã¦ã?‚‹å ´åˆã‹ã¤ãƒ©ãƒ™ãƒ«ã¨ç•°ãªã‚‹å?åˆã?title属æ?ã«è¿½åŠ? 354 if( titleUseNo >= 0 && !getResource().getLabel( value ).equals( table.getValue( row,titleUseNo ) )) { 355 titleFlg = true; 356 } 357 } 358 else { 359 // if( groupUseNo >= 0 ) { 360 // buf.append( grpLabel ); 361 // buf.append( separator ); 362 // } 363 String label = getRendererValue( row,1 ); 364 buf.append( label ); 365 // attri.set( "label", label ); 366 for( int clm=2; clm<table.getColumnCount(); clm++ ) { 367 // 4.3.8.0 (2009/08/01) titleUseNo追åŠ? 368 // if( clm == groupUseNo || clm == classUseNo ) { continue; } 369 if( clm == groupUseNo || clm == classUseNo || clm==titleUseNo) { continue; } 370 buf.append( separator ); 371 buf.append( getRendererValue( row,clm ) ); 372 } 373 374 // 4.3.8.0 (2009/08/01) titleUseNo 属æ? ã‚»ãƒ?ƒˆã•れã¦ã?‚‹å ´åˆã‹ã¤ãƒ©ãƒ™ãƒ«ã¨ç•°ãªã‚‹å?åˆã?title属æ?ã«è¿½åŠ? 375 if( titleUseNo >= 0 && !label.equals( table.getValue( row,titleUseNo ) )) { 376 titleFlg = true; 377 } 378 } 379 380 // 4.3.7.2 (2009/06/22) タイトル属æ?ã‚»ãƒ?ƒˆ 381 if( titleFlg ){ 382 attri.add( "title", table.getValue( row,titleUseNo ) ); 383 } 384 385 attri.set( "body", buf.toString() ); 386 select.addOption( XHTMLTag.option( attri ) ); 387 } 388 // if( groupUseNo >= 0 && "".equals( bkGroupKey ) ) { 389 if( groupUseNo >= 0 && ! "".equals( bkGroupKey ) ) { // 3.8.9.2 (2007/07/28) 390 select.addOption( "</optgroup>" ); 391 } 392 } 393 394 /** 395 * ã€TAG】Optionã®åˆæœŸå€¤ã§é¸ã°ã‚Œã‚‹å€¤ã‚’指定ã—ã¾ã™ã? 396 * 397 * @og.tag Optionã®åˆæœŸå€¤ã§é¸ã°ã‚Œã‚‹å€¤ã‚’指定ã—ã¾ã™ã? 398 * 399 * @param val Optionã®åˆæœŸå€¤ã§é¸ã°ã‚Œã‚‹å€¤ 400 */ 401 public void setValue( final String val ) { 402 selValue = getRequestParameter( val ); 403 } 404 405 /** 406 * ã€TAG】value値ãŒNULLã®å ´åˆã«ä½¿ç”¨ã•れるå?期å?ã‚’è¨å®šã—ã¾ã™ã? 407 * 408 * @og.tag 409 * value値ãŒNULLã®å ´åˆã«ã€ã“ã®åˆæœŸå€¤ã‚’ã‚»ãƒ?ƒˆã—ã¾ã™ã? 410 * 411 * @og.rev 3.3.2.0 (2003/07/07) defaultVal 属æ?ã®è¿½åŠ??(æ–°è¦ä½œæ?) 412 * 413 * @param val åˆæœŸå€¤ 414 */ 415 public void setDefaultVal( final String val ) { 416 defaultVal = getRequestParameter( val ); 417 } 418 419 /** 420 * ã€TAG】è¤?•°ã®ãƒ©ãƒ™ãƒ«ã‚’åˆæˆã™ã‚‹ã¨ãã«ä½¿ç”¨ã™ã‚‹é ?›®åŒºåˆ?‚Šæ–?—ã‚’ã‚»ãƒ?ƒˆã—ã¾ã?åˆæœŸå€¤:スペã?ス)ã€? 421 * 422 * @og.tag 423 * åˆæœŸå€¤ã¯ã€ã‚¹ãƒšã?スã§ã™ã? 424 * 425 * @og.rev 3.0.1.0 (2003/03/03) セパレーターを指定ã§ãる様ã«å¤‰æ›´ã€? 426 * 427 * @param sep é ?›®åŒºåˆ?‚Šæ–?? 428 */ 429 public void setSeparator( final String sep ) { 430 separator = nval( getRequestParameter( sep ),separator ); 431 } 432 433 /** 434 * ã€TAG】オプションã«è¿½åŠ?™ã‚?class 属æ?㮠カラãƒ?•ªå·ã‚’指定ã—ã¾ã™ã? 435 * 436 * @og.tag 437 * オプションã¯ã€ãƒ‡ãƒ¼ã‚¿ãƒ™ã?スを検索ã—ã¦ä½œæ?ã•れã¾ã™ãŒã€ãã®SQLæ–??カラãƒ?ƒ…å ±ã‚? 438 * 使用ã—㦠オプション㫠class 属æ?を追åŠ?—ã¾ã™ã? 439 * å?‚ªãƒ—ションã«è‰²ã‚’ã¤ã‘ã‚‹å ´åˆã?ã€ã“ã® class 属æ?ã«å¯¾å¿œã™ã‚?CSS ファイルを用æ„ã—ã¾ã™ã? 440 * ã“ã“ã§ã¯ã€class 属æ?ã«ä½¿ç”¨ã™ã‚‹ SQLæ–?? カラãƒ?•ªå·( å…ˆé?ã?0 ) を指定ã—ã¾ã™ã? 441 * 通常ã€ã‚«ãƒ©ãƒ?•ªå·=0 㯠ã‚ーæƒ??ã€?1 ã¯ãƒ©ãƒ™ãƒ«æƒ?? ã§ã™ã?2 ã?3 を指定ã—ã¾ã™ã? 442 * åˆæœŸå€¤ã¯ã€ä½¿ç”¨ã—ãªã?-1)ã§ã™ã? 443 * 444 * @og.rev 3.8.5.2 (2006/06/09) æ–°è¦è¿½åŠ? 445 * 446 * @param no オプションã«è¿½åŠ?™ã‚‹ã‚¯ãƒ©ã‚¹å±žæ? 447 */ 448 public void setClassUseNo( final String no ) { 449 classUseNo = nval( getRequestParameter( no ),classUseNo ); 450 if( classUseNo == 0 || classUseNo == 1 ) { 451 String errMsg = "通常ã€ã‚«ãƒ©ãƒ?•ªå·=0 㯠ã‚ーæƒ??ã€?1 ã¯ãƒ©ãƒ™ãƒ«æƒ?? ã§ã™ã?2 ã?3 を指定ã—ã¦ä¸‹ã•ã??"; 452 throw new HybsSystemException( errMsg ); 453 } 454 } 455 456 /** 457 * ã€TAG】オプションã®ã‚°ãƒ«ãƒ¼ãƒ—化を行ã†ã‚«ãƒ©ãƒ?•ªå·ã‚’指定ã—ã¾ã™ã? 458 * 459 * @og.tag 460 * オプションã¯ã€ãƒ‡ãƒ¼ã‚¿ãƒ™ã?スを検索ã—ã¦ä½œæ?ã•れã¾ã™ãŒã€ãã®SQLæ–??カラãƒ?ƒ…å ±ã‚? 461 * 使用ã—㦠オプションをグループ化ã—ã¾ã™ã?グループ化㯠optgroupè¦ç´?‚’ブレイク時㫠462 * 出力ã™ã‚‹äº‹ã§å¯¾å¿œã—ã¾ã™ã? 463 * ã“ã“ã§ã¯ã€ã‚°ãƒ«ãƒ¼ãƒ—化ã«ä½¿ç”¨ã™ã‚‹ SQLæ–?? カラãƒ?•ªå·( å…ˆé?ã?0 ) を指定ã—ã¾ã™ã? 464 * 通常ã€ã‚«ãƒ©ãƒ?•ªå·=0 㯠ã‚ーæƒ??ã€?1 ã¯ãƒ©ãƒ™ãƒ«æƒ?? ã§ã™ã?2 ã?3 を指定ã—ã¾ã™ã? 465 * åˆæœŸå€¤ã¯ã€ä½¿ç”¨ã—ãªã?-1)ã§ã™ã? 466 * 467 * @og.rev 3.8.5.2 (2006/06/09) æ–°è¦è¿½åŠ? 468 * 469 * @param no ã‚ーブレイク時ã«è¿½åŠ?™ã‚‹ã‚°ãƒ«ãƒ¼ãƒ—æ–‡å? 470 */ 471 public void setGroupUseNo( final String no ) { 472 groupUseNo = nval( getRequestParameter( no ),groupUseNo ); 473 if( groupUseNo == 0 || groupUseNo == 1 ) { 474 String errMsg = "通常ã€ã‚«ãƒ©ãƒ?•ªå·=0 㯠ã‚ーæƒ??ã€?1 ã¯ãƒ©ãƒ™ãƒ«æƒ?? ã§ã™ã?2 ã?3 を指定ã—ã¦ä¸‹ã•ã??"; 475 throw new HybsSystemException( errMsg ); 476 } 477 } 478 479 /** 480 * ã€TAGã€‘ãƒªã‚¯ã‚¨ã‚¹ãƒˆæƒ…å ±ã® ã‚¯ã‚©ãƒ¼ãƒ?‚£ã‚·ãƒ§ãƒ³(') å˜åœ¨ãƒã‚§ãƒ?‚¯ã‚’実施ã™ã‚‹ã‹ã©ã?‹[true/false]ã‚’è¨å®šã—ã¾ã? 481 * (åˆæœŸå€¤:USE_SQL_INJECTION_CHECK[={@og.value org.opengion.hayabusa.common.SystemData#USE_SQL_INJECTION_CHECK}])ã€? 482 * 483 * @og.tag 484 * ?³?±?¬ã‚¤ãƒ³ã‚¸ã‚§ã‚¯ã‚·ãƒ§ãƒ³å¯¾ç–ã?ä¸?¤ã¨ã—ã¦ã€æš«å®šçš„ã§ã¯ã‚りã¾ã™ãŒã€SQLã®ãƒ‘ラメータ㫠485 * æ¸¡ã™æ–‡å—å?ã«ã‚¯ã‚©ãƒ¼ãƒ?‚£ã‚·ãƒ§ãƒ³(') を許ã•ãªã?¨å®šã«ã™ã‚Œã°ã€ã‚る程度ã¯é˜²æ¢ã§ãã¾ã™ã? 486 * æ•°å—タイプã?引数ã«ã¯ã€?or 5=5 ãªã©ã®ã‚¯ã‚©ãƒ¼ãƒ?‚£ã‚·ãƒ§ãƒ³ã‚’使用ã—ãªã?‚³ãƒ¼ãƒ‰ã‚’埋ã‚ã¦ã‚‚ã? 487 * æ•°å—ãƒã‚§ãƒ?‚¯ã§æ¤œå?å¯èƒ½ã§ã™ã?æ–?—タイプã?å ´åˆã?ã€å¿?š (')ã‚’ã?ãšã—ã¦ã€? 488 * ' or 'A' like 'A ã®ã‚ˆã†ãªå½¢å¼ã«ãªã‚‹ç‚ºã€?')ãƒã‚§ãƒ?‚¯ã?‘ã§ã‚‚有効ã§ã™ã? 489 * (') ãŒå«ã¾ã‚Œã¦ã?Ÿã‚¨ãƒ©ãƒ¼ã«ã™ã‚‹(true)?ã‹ãƒŽã?ãƒã‚§ãƒ?‚¯ã?false)を指定ã—ã¾ã™ã? 490 * (åˆæœŸå€¤:シスãƒ?ƒ 定数ã®USE_SQL_INJECTION_CHECK[={@og.value org.opengion.hayabusa.common.SystemData#USE_SQL_INJECTION_CHECK}])ã€? 491 * 492 * @og.rev 4.0.0.0 (2005/08/31) æ–°è¦è¿½åŠ? 493 * 494 * @param flag クォーãƒ?‚£ã‚·ãƒ§ãƒ³ãƒã‚§ãƒ?‚¯ [true:ã™ã‚‹/ãれ以å¤?ã—ãªã„] 495 * @see org.opengion.hayabusa.common.SystemData#USE_SQL_INJECTION_CHECK 496 */ 497 public void setQuotCheck( final String flag ) { 498 quotCheck = nval( getRequestParameter( flag ),quotCheck ); 499 } 500 501 /** 502 * ã€TAGã€?通常ã¯ä½¿ã?¾ã›ã‚“)Queryオブジェクトを作æ?ã™ã‚‹æ™‚ã?DB接続IDを指定ã—ã¾ã™ã? 503 * 504 * @og.tag 505 * Queryオブジェクトを作æ?ã™ã‚‹æ™‚ã?DB接続IDを指定ã—ã¾ã™ã? 506 * ã“れã¯ã€ã‚·ã‚¹ãƒ?ƒ リソースã§ã€DEFAULT_DB_URL ç‰ã§æŒ?®šã—ã¦ã?‚‹ ãƒ??タベã?ス接続å? 507 * æƒ??ã«ã€XX_DB_URL を定義ã™ã‚‹ã“ã¨ã§ã€?dbid="XX" ã¨ã™ã‚‹ã¨ã€ã“㮠接続å?を使用ã—㦠508 * ãƒ??タベã?スã«ã‚¢ã‚¯ã‚»ã‚¹ã§ãã¾ã™ã? 509 * 510 * @param id ãƒ??タベã?ス接続ID 511 */ 512 public void setDbid( final String id ) { 513 dbid = nval( getRequestParameter( id ),dbid ); 514 } 515 516 /** 517 * ã€TAG】é?ç›®ãŒä¸?¤ã?‘ã®å ´åˆã??—ï¾ï¾žï¾™ï¾˜ï½¿?°?½ã«ã€ã‚ーæƒ??を追åŠ?™ã‚‹ã‹ã©ã?‹ã‚’指定ã—ã¾ã?åˆæœŸå€¤:false)ã€? 518 * 519 * @og.tag 520 * Queryオブジェクトã?é ?›®ãŒä¸?¤ã®å ´åˆã??—ï¾ï¾žï¾™éƒ¨ã«ã¯ã€?¾—ï¾ï¾žï¾™ï¾˜ï½¿?°?½ã‚’使用ã—ã¾ã™ã? 521 * ã“ã?時ã??—ï¾ï¾žï¾™ç„¡ã—ã?å ´åˆã?ã€ã‚ーãŒè¡¨ç¤ºã•れã¾ã™ãŒã€?¾—ï¾ï¾žï¾™ã‚りã?å ´åˆã?ã€ã‚ーã¯è¡¨ç¤ºã•れã? 522 * ?—ï¾ï¾žï¾™ã?ã¿è¡¨ç¤ºã•れã¾ã™ã? 523 * 都åˆã«ã‚ˆã£ã¦ã¯ã€ã‚ーも表示ã—ãŸã??åˆãŒã‚りã¾ã™ã?ã§ã€ãã®æ§˜ãªã‚±ãƒ¼ã‚¹ã§ã¯ã€? 524 * addKey = "true ã‚’è¨å®šã™ã‚‹äº‹ã§ã€ã‚ー:?—ï¾ï¾žï¾?ã®ã‚»ãƒ?ƒˆã‚’ï¾—ï¾ï¾žï¾™ã¨ã—ã¦æ‰±ã?¾ã™ã? 525 * åˆæœŸå€¤ã¯false(ã‚ーã¯ä»˜åŠ ã—ãªã?ã§ã™ã? 526 * 527 * @param id ãƒ??タベã?ス接続ID 528 */ 529 public void setAddKey( final String id ) { 530 addKey = nval( getRequestParameter( id ),addKey ); 531 } 532 533 /** 534 * ã€TAGã€‘ãƒªã‚¯ã‚¨ã‚¹ãƒˆæƒ…å ±ã® HTMLTagé–‹å§?終äº?–‡å?><) å˜åœ¨ãƒã‚§ãƒ?‚¯ã‚’実施ã™ã‚‹ã‹ã©ã?‹[true/false]ã‚’è¨å®šã—ã¾ã? 535 * (åˆæœŸå€¤:USE_XSS_CHECK[={@og.value org.opengion.hayabusa.common.SystemData#USE_XSS_CHECK}])ã€? 536 * 537 * @og.tag 538 * クãƒã‚¹ã‚µã‚¤ãƒˆã‚¹ã‚¯ãƒªãƒ—ティング(XSS)対ç–ã?ä¸?’°ã¨ã—ã¦less/greater than signã«ã¤ã?¦ã®ãƒã‚§ãƒ?‚¯ã‚’行ã„ã¾ã™ã? 539 * (><) ãŒå«ã¾ã‚Œã¦ã?Ÿã‚¨ãƒ©ãƒ¼ã«ã™ã‚‹(true)?ã‹ãƒŽã?ãƒã‚§ãƒ?‚¯ã?false)を指定ã—ã¾ã™ã? 540 * (åˆæœŸå€¤:シスãƒ?ƒ 定数ã®USE_XSS_CHECK[={@og.value org.opengion.hayabusa.common.SystemData#USE_XSS_CHECK}])ã€? 541 * 542 * @og.rev 5.0.0.2 (2009/09/15) æ–°è¦è¿½åŠ? 543 * 544 * @param flag XSSãƒã‚§ãƒ?‚¯ [true:ã™ã‚‹/false:ã—ãªã„] 545 * @see org.opengion.hayabusa.common.SystemData#USE_XSS_CHECK 546 */ 547 public void setXssCheck( final String flag ) { 548 xssCheck = nval( getRequestParameter( flag ),xssCheck ); 549 } 550 551 /** 552 * row行,columåˆ?ã®ãƒ??ã‚¿ã®å€¤ã‚’è¿”ã—ã¾ã™ã? 553 * 554 * ã“れã¯ã€ãƒ‡ãƒ¼ã‚¿ã®å€¤ãã?ã‚‚ã?ã§ã¯ãªãã?ãã?値ã®ãƒ©ãƒ™ãƒ«æ–?—ã‚’è¿”ã—ã¾ã™ã? 555 * 556 * @param row è¡Œç•ªå· 557 * @param column カラãƒ?•ªå· 558 * 559 * @return row行,columåˆ?ã®ãƒ??ã‚¿ã®å€¤ 560 */ 561 private String getRendererValue( final int row,final int column ) { 562 String val = table.getValue( row,column ); 563 DBColumn clm = table.getDBColumn( column ); 564 return clm.getRendererValue( val ); 565 } 566 567 /** 568 * ã€TAG】オプションã«è¿½åŠ?™ã‚?title 属æ?㮠カラãƒ?•ªå·ã‚’指定ã—ã¾ã™ã? 569 * 570 * @og.tag 571 * オプションã¯ã€ãƒ‡ãƒ¼ã‚¿ãƒ™ã?スを検索ã—ã¦ä½œæ?ã•れã¾ã™ãŒã€ãã®SQLæ–??カラãƒ?ƒ…å ±ã‚? 572 * 使用ã—㦠オプション㫠title 属æ?を追åŠ?—ã¾ã™ã? 573 * title属æ?ã¯ãƒžã‚¦ã‚¹ã‚ªãƒ¼ãƒã?時ã«ãƒ??ルãƒãƒƒãƒ—ã¨ã—ã¦è¡¨ç¤ºã•れるãŸã‚ã? 574 * プルãƒ?‚¦ãƒ³ã®æ¨ªå¹?‚’çŸãã—ãŸã„å ´åˆã«æœ‰åйã§ã™ã? 575 * 通常ã€ã‚«ãƒ©ãƒ?•ªå·=0 㯠ã‚ーæƒ??ã€?1 ã¯ãƒ©ãƒ™ãƒ«æƒ?? ã§ã™ã?2 ã?3 を指定ã—ã¾ã™ã? 576 * åˆæœŸå€¤ã¯ã€ä½¿ç”¨ã—ãªã?-1)ã§ã™ã? 577 * 578 * @og.rev 4.3.8.0 (2009/08/01) æ–°è¦è¿½åŠ? 579 * 580 * @param no オプションã«è¿½åŠ?™ã‚‹title属æ? 581 */ 582 public void setTitleUseNo( final String no ) { 583 titleUseNo = nval( getRequestParameter( no ),titleUseNo ); 584 if( titleUseNo == 0 || titleUseNo == 1 ) { 585 String errMsg = "通常ã€ã‚«ãƒ©ãƒ?•ªå·=0 㯠ã‚ーæƒ??ã€?1 ã¯ãƒ©ãƒ™ãƒ«æƒ?? ã§ã™ã?2 ã?3 を指定ã—ã¦ä¸‹ã•ã??"; 586 throw new HybsSystemException( errMsg ); 587 } 588 } 589 590 /** 591 * シリアライズ用ã®ã‚«ã‚¹ã‚¿ãƒ?‚·ãƒªã‚¢ãƒ©ã‚¤ã‚ºæ›¸ãè¾¼ã¿ãƒ¡ã‚½ãƒ?ƒ‰ 592 * 593 * @og.rev 4.0.0.0 (2006/09/31) æ–°è¦è¿½åŠ? 594 * @serialData 595 * 596 * @param strm ObjectOutputStreamオブジェクãƒ? 597 */ 598 private void writeObject( final ObjectOutputStream strm ) throws IOException { 599 strm.defaultWriteObject(); 600 } 601 602 /** 603 * シリアライズ用ã®ã‚«ã‚¹ã‚¿ãƒ?‚·ãƒªã‚¢ãƒ©ã‚¤ã‚ºèªã¿è¾¼ã¿ãƒ¡ã‚½ãƒ?ƒ‰ 604 * 605 * ã“ã“ã§ã¯ã€transient 宣è¨?•れãŸå†?ƒ¨å¤‰æ•°ã®å†??åˆæœŸåŒ–ãŒå¿?¦ãªãƒ•ィールドã?ã¿è¨å®šã—ã¾ã™ã? 606 * 607 * @og.rev 4.0.0.0 (2006/09/31) æ–°è¦è¿½åŠ? 608 * @serialData 609 * 610 * @param strm ObjectInputStreamオブジェクãƒ? 611 * @see #release2() 612 */ 613 private void readObject( final ObjectInputStream strm ) throws IOException , ClassNotFoundException { 614 strm.defaultReadObject(); 615 } 616 617 // /** 618 // * 親ã®og:selectã‚¿ã‚°ã®nameã¨eventColumnè¨å®šã‚’è¿”ã—ã¾ã™ã? 619 // * 620 // * @og.rev 4.3.6.0 (2009/04/01) 621 // * 622 // */ 623 // private String[] getEventColumn(){ 624 // SelectTag seltag = (SelectTag)findAncestorWithClass(this,SelectTag.class); 625 // String[] selectVal = new String[2]; 626 // selectVal[0] = seltag.getEventColumn(); 627 // selectVal[1] = seltag.get("name"); 628 // return selectVal; 629 // } 630 631 /** 632 * ã“ã?オブジェクトã?æ–?—å?表ç¾ã‚’è¿”ã—ã¾ã™ã? 633 * 基本çš?«ãƒ?ƒãƒ?‚°ç›®çš?«ä½¿ç”¨ã—ã¾ã™ã? 634 * 635 * @return ã“ã?ã‚¯ãƒ©ã‚¹ã®æ–?—å?è¡¨ç¾ 636 */ 637 @Override 638 public String toString() { 639 return org.opengion.fukurou.util.ToString.title( this.getClass().getName() ) 640 .println( "VERSION" ,VERSION ) 641 .println( "selValue" ,selValue ) 642 .println( "defaultVal" ,defaultVal ) 643 .println( "dbid" ,dbid ) 644 .println( "sql" ,sql ) 645 .println( "separator" ,separator ) 646 .println( "quotCheck" ,quotCheck ) 647 .println( "Other..." ,getAttributes().getAttribute() ) 648 .fixForm().toString() ; 649 } 650 }