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