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.DBTableModelUtil;
023 import org.opengion.hayabusa.resource.LDAPSearch;
024
025 import org.opengion.fukurou.util.ErrorMessage;
026 import org.opengion.fukurou.util.StringUtil ;
027 import static org.opengion.fukurou.util.StringUtil.nval ;
028
029 import java.util.List;
030 import java.util.Locale;
031
032 /**
033 * LDAPã®å†?®¹ã‚’検索ã™ã‚‹ãŸã‚ã®ã€ldapQueryã‚¿ã‚°ã§ã™ã?
034 *
035 * 検索ã—ãŸçµæžœã¯ã€DBTableModel ã«ã‚»ãƒ?ƒˆã•れるãŸã‚ã?
036 * JDBCQuery ã¨åŒæ§˜ã«ã€viewã‚¿ã‚°ã§è¡¨ç¤ºã•ã›ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ã?
037 *
038 * 下記ã?é ?›®ã«ã¤ã?¦ã¯ã€src/resource/シスãƒ?ƒ パラメータ ã«ã€äºˆã‚
039 * è¨å®šã—ã¦ãŠãã“ã¨ã§ã€ã‚¿ã‚°ã”ã¨ã«æŒ?®šã™ã‚‹å¿?¦ãŒãªããªã‚Šã¾ã™ã?
040 * ・LDAP_INITIAL_CONTEXT_FACTORY
041 * ・LDAP_PROVIDER_URL
042 * ・LDAP_ENTRYDN
043 * ・LDAP_SEARCH_BASE
044 * ・LDAP_SEARCH_SCOPE
045 *
046 * ã“ã?タグリブã§ã¯ã€æ¤œç´¢ã®ã¿ã‚µãƒã?トã—ã¦ã?¾ã™ã?
047 *
048 * @og.formSample
049 * â—å½¢å¼ï¼?
050 * <og:ldapQuery debug="false"
051 * command = "NEW" NEW,RENEW ãŒä½¿ç”¨å¯èƒ½ã§ã™ã?
052 * initctx = "com.sun.jndi.ldap.LdapCtxFactory" åˆæœŸã‚³ãƒ³ãƒ?‚ストファクトリ
053 * providerURL = "ldap://ldap.opengion.org:389" サービスプãƒãƒã‚¤ãƒ??æ§‹æ?æƒ??
054 * entrydn = "cn=inquiry-sys,o=opengion,c=JP" 属æ?ã®å–å¾—å?ã®ã‚ªãƒ–ジェクトã?åå‰
055 * password = "xxxxxx" 属æ?ã®å–å¾—å?ã®ã‚ªãƒ–ジェクトã?パスワーãƒ?
056 * searchbase = "soouid=employeeuser,o=opengion,c=JP" 検索ã™ã‚‹ã‚³ãƒ³ãƒ?‚ストã¾ãŸã?オブジェクトã?ベã?スå?
057 * filter = "(objectClass=person)" 検索ã«ä½¿ç”¨ã™ã‚‹ãƒ•ィルタå¼ã?null ã¯ä¸å¯
058 * attributes = "uid,cn,officeName,ou,mail,belongOUID" 属æ?ã‚’è˜åˆ¥ã™ã‚‹å±žæ? IDをカンマ区åˆ?‚Šã§æŒ?®?
059 * searchScope = "SUBTREE" 検索ç¯?›²ã‚’è¨å®?『OBJECTã€ã?ONELEVELã€ã?SUBTREEã€ã?ã©ã‚Œã‹)
060 * maxRowCount = "0" 検索時ã?æœ?¤§æ¤œç´¢æ•°(0ã¯ã€ç„¡åˆ¶é™ï¼šãƒ‡ãƒ•ォルãƒ?
061 * />
062 * â—body?šãªã?
063 *
064 * â—Tag定義??
065 * <og:ldapQuery
066 * initctx ã€TAG】å?期コンãƒ?‚ストファクトリを指定ã—ã¾ã?(åˆæœŸå€¤:LDAP_INITIAL_CONTEXT_FACTORY[=com.sun.jndi.ldap.LdapCtxFactory])
067 * providerURL ã€TAG】サービスプãƒãƒã‚¤ãƒ??æ§‹æ?æƒ??を指定ã—ã¾ã?(åˆæœŸå€¤:LDAP_PROVIDER_URL[=ldap://ldap.opengion.org:389])
068 * entrydn ã€TAG】属æ?ã®å–å¾—å?ã®ã‚ªãƒ–ジェクトã?åå‰ã‚’è¨å®šã—ã¾ã?(åˆæœŸå€¤:LDAP_ENTRYDN[=cn=inquiry-sys,o=opengion,c=JP])
069 * password ã€TAG】属æ?ã®å–å¾—å?ã®ã‚ªãƒ–ジェクトã?パスワードをè¨å®šã—ã¾ã?(åˆæœŸå€¤:LDAP_PASSWORD[=password])
070 * searchbase ã€TAG】検索ã™ã‚‹ã‚³ãƒ³ãƒ?‚ストã¾ãŸã?オブジェクトã?åå‰ã‚’è¨å®šã—ã¾ã?(åˆæœŸå€¤:LDAP_SEARCH_BASE[=soouid=employeeuser,o=opengion,c=JP])
071 * filter â—‹ã?TAG】検索ã«ä½¿ç”¨ã™ã‚‹ãƒ•ィルタå¼?例:belongOUID=61200)(å¿??)ã€?
072 * searchScope ã€TAG】検索ç¯?›²(OBJECT/ONELEVEL/SUBTREE)ã‚’è¨å®šã—ã¾ã?(åˆæœŸå€¤:LDAP_SEARCH_SCOPE[=SUBTREE])
073 * timeLimit ã€TAG】ã“れら㮠SearchControls ã®æ™‚間制é™ã‚’ミリ秒å˜ä½ã§è¨å®šã—ã¾ã?åˆæœŸå€¤:0[無制é™])
074 * derefLinkFlag ã€TAG】検索ä¸ã®ãƒªãƒ³ã‚¯ã¸ã®é–“接å‚ç?を有効ã¾ãŸã?無効[true/false]ã«ã—ã¾ã?åˆæœŸå€¤:false)
075 * maxRowCount ã€TAGã€‘ãƒ¬ã‚¸ã‚¹ãƒˆãƒªã®æœ?¤§æ¤œç´¢ä»¶æ•°ã‚’ã‚»ãƒ?ƒˆã—ã¾ã?åˆæœŸå€¤:0[無制é™])
076 * returningObjFlag ã€TAGã€‘çµæžœã®ä¸?ƒ¨ã¨ã—ã¦ã‚ªãƒ–ジェクトを返ã™ã“ã¨ã‚’有効ã¾ãŸã?無効[true/false]ã«ã—ã¾ã?åˆæœŸå€¤:false)
077 * attributes ã€TAG】検索ã®ä¸?ƒ¨ã¨ã—ã¦è¿”ã•れる属æ?ã‚’CSVã§è¤?•°æŒ?®šã—ã¾ã?
078 * columns ã€TAG】作æ?ã™ã‚‹ DBTableModel ã®ã‚«ãƒ©ãƒ?ã‚’CSVå½¢å¼ã§æŒ?®šã—ã¾ã?
079 * orderBy ã€TAG】検索ã—ãŸçµæžœã‚’表示ã™ã‚‹è¡¨ç¤ºé ?‚’ファイル属æ?åã§æŒ?®šã—ã¾ã?
080 * tableId ã€TAGã€?通常ã¯ä½¿ã?¾ã›ã‚“)çµæžœã‚’DBTableModelã«æ›¸ã込んã§ã€sessionã«ç™»éŒ²ã™ã‚‹ã¨ãã?ã‚ーを指定ã—ã¾ã?
081 * command ã€TAG】コマンãƒ?NEW,RENEW)ã‚’ã‚»ãƒ?ƒˆã—ã¾ã?åˆæœŸå€¤:NEW)
082 * displayMsg ã€TAGã€‘æ¤œç´¢çµæžœã‚’ç”»é¢ä¸Šã«è¡¨ç¤ºã™ã‚‹ãƒ¡ãƒ?‚»ãƒ¼ã‚¸ãƒªã‚½ãƒ¼ã‚¹IDを指定ã—ã¾ã?åˆæœŸå€¤ã¯æ¤œç´¢ä»¶æ•°)
083 * notfoundMsg ã€TAGã€‘æ¤œç´¢çµæžœãŒã‚¼ãƒä»¶ã®å ´åˆã«è¡¨ç¤ºã™ã‚‹ãƒ¡ãƒ?‚»ãƒ¼ã‚¸ãƒªã‚½ãƒ¼ã‚¹IDを指定ã—ã¾ã?åˆæœŸå€¤:MSG0077[対象ãƒ??ã‚¿ã¯ã‚りã¾ã›ã‚“ã§ã—ãŸ])
084 * overflowMsg ã€TAG】オーãƒã?フãƒãƒ¼æ™‚ã«ç”»é¢ä¸Šã«è¡¨ç¤ºã™ã‚‹ãƒ¡ãƒ?‚»ãƒ¼ã‚¸IDを指定ã—ã¾ã?åˆæœŸå€¤:MSG0007)
085 * scope ã€TAG】ã‚ャãƒ?‚·ãƒ¥ã™ã‚‹å ´åˆã?スコープ[request/page/session/applicaton]を指定ã—ã¾ã?åˆæœŸå€¤:session)
086 * mainTrans ã€TAGã€?通常使ã?¾ã›ã‚“)ã‚¿ã‚°ã§å‡¦ç?•れる処ç?Œãƒ¡ã‚¤ãƒ³ã¨ãªã‚‹ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³å‡¦ç?‹ã©ã?‹ã‚’指定ã—ã¾ã?åˆæœŸå€¤:false)
087 * debug ã€TAG】デãƒãƒƒã‚°æƒ??ã‚’å?力ã™ã‚‹ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:false)
088 * />
089 *
090 * â—使用ä¾?
091 * シスãƒ?ƒ パラメータ ã«ã€å¿?¦ãªLDAP定数を定義ã—ã¦ãŠã„ãŸå?åˆã?ã€ä¸‹è¨˜ã?ã‚¿ã‚°ã§æ¤œç´¢ã§ãã¾ã™ã?
092 * 例ã§ã¯ã€filter ã«ã‚ã„ã¾ã?¤œç´¢(*)ã¨ANDæ¡ä»¶(&(æ¡ä»¶A)(æ¡ä»¶B)) を指定ã—ãŸä¾‹ã‚’挙ã’ã¦ãŠãã¾ã™ã?
093 * filter ã®å½¢å¼ã¨è§£é‡ˆã?ã€RFC 2254 ã«æº–æ‹ ã—ã¦ã?¾ã™ã?
094 * (RFC 2254 ã§å®šç¾©ã•れã¦ã?‚‹æ¼”ç®—åã?ã™ã¹ã¦ã‚’ã™ã¹ã¦ã®å±žæ?ã«é©ç”¨ã§ãã‚‹ã‚ã‘ã§ã¯ã‚りã¾ã›ã‚“ã€?
095 *
096 * <og:ldapQuery debug="false"
097 * command = "NEW"
098 * filter = "(&(cnphoneticlangjp=OPENGION*)(businessName=*COMMON*))"
099 * attributes = "uid,cn,officeName,ou,mail,belongOUID"
100 * />
101 *
102 * ・queryOption ã‚¿ã‚°ã®å†?ƒ¨ã«è¨˜è¿°ã™ã‚Œã°ã€ã?ルãƒ?‚¦ãƒ³ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‚’作æ?ã™ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ã?
103 * <og:select name="UID">
104 * <og:queryOption>
105 * <og:ldapQuery
106 * filter = "(&amp;(|(belongOUID=60000)(belongOUID=70000))(uid=C*))"
107 * attributes = "uid,uid,sn"
108 * orderBy = "uid"
109 * />
110 * </og:queryOption>
111 * </og:select>
112 *
113 * @og.rev 3.1.0.0 (2003/03/20) ?¬?¤?¡?°ã«ã‚¢ã‚¯ã‚»ã‚¹ã§ãã‚‹ã€LDAPQueryTag.java ã‚’æ–°è¦ã«ä½œæ?ã€?
114 * @og.group ãã?ä»–å?åŠ?
115 *
116 * @version 4.0
117 * @author Kazuhiko Hasegawa
118 * @since JDK5.0,
119 */
120 public class LDAPQueryTag extends CommonTagSupport {
121 //* ã“ã?プãƒã‚°ãƒ©ãƒ??VERSIONæ–?—å?ã‚’è¨å®šã—ã¾ã™ã? {@value} */
122 private static final String VERSION = "5.1.6.0 (2010/05/01)" ;
123
124 private static final long serialVersionUID = 516020100501L ;
125
126 /** command å¼•æ•°ã«æ¸¡ã™äº‹ã?出æ¥ã‚?コマンãƒ? æ–°è¦?{@value} */
127 public static final String CMD_NEW = "NEW" ;
128 /** command å¼•æ•°ã«æ¸¡ã™äº‹ã?出æ¥ã‚?コマンãƒ? 冿¤œç´¢ {@value} */
129 public static final String CMD_RENEW = "RENEW" ;
130 /** command å¼•æ•°ã«æ¸¡ã™äº‹ã?出æ¥ã‚?コマンãƒ?リスãƒ? */
131 private static final String[] COMMAND_LIST = new String[] { CMD_NEW , CMD_RENEW };
132
133 private String initctx = HybsSystem.sys( "LDAP_INITIAL_CONTEXT_FACTORY" );
134 private String providerURL = HybsSystem.sys( "LDAP_PROVIDER_URL" );
135 private String entrydn = HybsSystem.sys( "LDAP_ENTRYDN" );
136 private String password = HybsSystem.sys( "LDAP_PASSWORD" ); // 4.2.2.0 (2008/05/10)
137 private String searchbase = HybsSystem.sys( "LDAP_SEARCH_BASE" );
138 private String filter = null; // "employeeNumber=87019";
139
140 // 検索ç¯?›²ã€‚OBJECT_SCOPEã€ONELEVEL_SCOPEã€SUBTREE_SCOPE ã®ã©ã‚Œã‹ 1 ã¤
141 private String searchScope = HybsSystem.sys( "LDAP_SEARCH_SCOPE" );
142 private static final long COUNTLIMIT = 0; // è¿”ã™ã‚¨ãƒ³ãƒˆãƒªã®æœ?¤§æ•°ã€? ã®å ´åˆã?フィルタをæº?Ÿã™ã‚¨ãƒ³ãƒˆãƒªã‚’ã™ã¹ã¦è¿”ã™
143 private int timeLimit = 0; // çµæžœãŒè¿”ã•れるã¾ã§ã®ãƒŸãƒªç§’æ•°ã€? ã®å ´åˆã?無制é™?
144 private String[] attrs = null; // エントリã¨ä¸?·’ã«è¿”ã•れる属æ?ã®è˜åˆ¥åã?null ã®å ´åˆã?ã™ã¹ã¦ã®å±žæ?ã‚’è¿”ã™ã€‚空ã®å ´åˆã?属æ?ã‚’è¿”ã•ãªã?
145 private String[] columns = null; // DBTableModel を作æ?ã™ã‚‹å ´åˆã?カラãƒ?ã«ãªã‚Šã¾ã™ã?null ã®å ´åˆã?ã€attributes 属æ?
146 private boolean returningObjFlag = false; // true ã®å ´åˆã?エントリã®åå‰ã«ãƒã‚¤ãƒ³ãƒ‰ã•れãŸã‚ªãƒ–ジェクトを返ã™ã€‚false å ´åˆã?オブジェクトを返ã•ãªã?
147 private boolean derefLinkFlag = false; // true ã®å ´åˆã?検索ä¸ã«ãƒªãƒ³ã‚¯ã‚’間接å‚ç?ã™ã‚‹
148
149 private String tableId = HybsSystem.TBL_MDL_KEY; // session?·?°
150 private String orderBy = null; // ?¿?°???ç›®(csv)
151 private String command = CMD_NEW; // ?º?ï¾ï¾?¾?
152 private int executeCount = 0; // 検索/実行件数
153 private int errCode = ErrorMessage.OK; // Ver4.3.1.1 (2008/09/05) 検索エラーコー�
154 private int maxRowCount = 0; // æœ?¤§æ¤œç´¢æ•°(0ã¯ç„¡åˆ¶é™?
155 // private String displayMsg = "MSG0033"; // 件検索ã—ã¾ã—ãŸã€?
156 private String displayMsg = HybsSystem.sys( "VIEW_DISPLAY_MSG" );
157 private String overflowMsg = "MSG0007"; // æ¤œç´¢çµæžœãŒã?制é™è¡Œæ•°ã‚’è¶?ˆã¾ã—ãŸã®ã§ã€æ®‹ã‚Šã¯ã‚«ãƒ?ƒˆã•れã¾ã—ãŸã€?
158 private String notfoundMsg = "MSG0077"; // 対象ãƒ??ã‚¿ã¯ã‚りã¾ã›ã‚“ã§ã—ãŸã€?
159 private boolean isMainTrans = true; // 5.1.6.0 (2010/05/01) DBLastSqlã®å‡¦ç??見直ã?
160
161 /**
162 * Taglibã®çµ‚äº?‚¿ã‚°ãŒè¦‹ã¤ã‹ã£ãŸã¨ãã«å‡¦ç?™ã‚?doEndTag() ã‚?オーãƒã?ライドã—ã¾ã™ã?
163 *
164 * @og.rev 3.1.1.2 (2003/04/04) Tomcat4.1 対応ã?release2() ã‚?doEndTag()ã§å‘¼ã¶ã€?
165 * @og.rev 3.6.0.8 (2004/11/19) DBTableModel をセーブã™ã‚‹æ™‚ã«ã€ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ãƒã‚§ãƒ?‚¯ã‚’行ã„ã¾ã™ã?
166 * @og.rev 4.0.0.0 (2007/10/18) メãƒ?‚»ãƒ¼ã‚¸ãƒªã‚½ãƒ¼ã‚¹çµ±å? getResource().getMessage â‡?getResource().getLabel )
167 * @og.rev 4.3.1.1 (2008/09/03) æ¤œç´¢çµæžœã®ä»¶æ•°ã€çжæ³ã‚³ãƒ¼ãƒ‰ã‚’リクエスト変数 "DB.COUNT"ã€?DB.ERR_CODE" ã«ã‚»ãƒ?ƒˆã™ã‚‹ã€?
168 * @og.rev 5.1.6.0 (2010/05/01) DBLastSqlã®å‡¦ç??ã€DBTableModelãŒæ–°è¦ä½œæ?ã•れãŸå?ç?§ã®ã¿è¡Œã†ã€?
169 *
170 * @return 後続å?ç??æŒ?¤º
171 */
172 @Override
173 public int doEndTag() {
174 debugPrint(); // 4.0.0 (2005/02/28)
175
176 // QueryOptionTag ã®å†?ƒ¨ã§è¨˜è¿°ã•れãŸå?åˆã?処ç??
177 QueryOptionTag queryOption = (QueryOptionTag)findAncestorWithClass( this,QueryOptionTag.class );
178 if( queryOption != null ) {
179 queryOption.setTableModel( makeDBTable() );
180 return(EVAL_PAGE);
181 }
182
183 // 通常㮠LDAPQuery 処ç?
184 if( check( command, COMMAND_LIST ) ) {
185 useMainTrans( isMainTrans ); // 5.1.6.0 (2010/05/01) DBLastSqlã®å‡¦ç??見直ã?
186 startQueryTransaction( tableId ); // 3.6.0.8 (2004/11/19)
187
188 DBTableModel table = makeDBTable();
189
190 // 3.6.0.8 (2004/11/19) トランザクションãƒã‚§ãƒ?‚¯ã‚’行ã„ã¾ã™ã?
191 if( ! commitTableObject( tableId, table ) ) {
192 jspPrint( "LDAPQueryTag Query処ç?Œå‰²ã‚Šè¾¼ã¾ã‚Œã¾ã—ãŸã€?BTableModel ã¯ç™»éŒ²ã—ã¾ã›ã‚“ã€? );
193 return (SKIP_PAGE);
194 }
195 StringBuilder buf = new StringBuilder( HybsSystem.BUFFER_SMALL );
196
197 // 実行件数ã®è¡¨ç¤º command="NEW" ã®ã¨ãã?ã¿ã€displayMsg を表示ã•ã›ã¾ã™ã?
198 // 4.0.0 (2005/11/30) 出力é?ã®å¤‰æ›´ã€‚ä¸?•ªæœ??ã«å‡ºåŠ›ã—ã¾ã™ã?
199 if( CMD_NEW.equals( command ) ) {
200 if( executeCount > 0 && displayMsg != null && displayMsg.length() > 0 ) {
201 buf.append( executeCount );
202 buf.append( getResource().getLabel( displayMsg ) );
203 buf.append( HybsSystem.BR );
204 }
205 else if( executeCount == 0 && notfoundMsg != null && notfoundMsg.length() > 0 ) {
206 buf.append( getResource().getLabel( notfoundMsg ) );
207 buf.append( HybsSystem.BR );
208 }
209 }
210
211 if( maxRowCount > 0 && maxRowCount <= executeCount ) {
212 buf.append( getResource().getLabel( overflowMsg ) );
213 buf.append( HybsSystem.BR ).append( HybsSystem.CR );
214 }
215 // 4.3.1.1 (2008/09/03) æ¤œç´¢çµæžœã®ä»¶æ•°ã€ã‚¨ãƒ©ãƒ¼ã‚³ãƒ¼ãƒ‰ã‚’ã‚»ãƒ?ƒˆã™ã‚‹ã€?
216 setRequestAttribute( "DB.COUNT" , String.valueOf( executeCount ) );
217 setRequestAttribute( "DB.ERR_CODE", String.valueOf( errCode ) );
218
219 jspPrint( buf.toString() );
220 }
221
222 return(EVAL_PAGE);
223 }
224
225 /**
226 * タグリブオブジェクトをリリースã—ã¾ã™ã?
227 * ã‚ャãƒ?‚·ãƒ¥ã•れã¦å†åˆ©ç”¨ã•れるã?ã§ã€ãƒ•ィールドã?åˆæœŸè¨å®šã‚’行ã„ã¾ã™ã?
228 *
229 * @og.rev 2.0.0.4 (2002/09/27) カスタãƒ?‚¿ã‚°ã® release() メソãƒ?ƒ‰ã‚’ã?追åŠ?
230 * @og.rev 3.1.1.2 (2003/04/04) Tomcat4.1 対応ã?release2() ã‚?doEndTag()ã§å‘¼ã¶ã€?
231 * @og.rev 4.2.2.0 (2008/05/10) password 追�
232 * @og.rev 5.1.6.0 (2010/05/01) DBLastSqlã®å‡¦ç??ã€DBTableModelãŒæ–°è¦ä½œæ?ã•れãŸå?ç?§ã®ã¿è¡Œã†ã€?
233 *
234 */
235 @Override
236 protected void release2() {
237 super.release2();
238
239 searchScope = HybsSystem.sys( "LDAP_SEARCH_SCOPE" ); // 検索ç¯?›²ã€‚OBJECT_SCOPEã€ONELEVEL_SCOPEã€SUBTREE_SCOPE ã®ã©ã‚Œã‹ 1 ã¤
240 timeLimit = 0; // çµæžœãŒè¿”ã•れるã¾ã§ã®ãƒŸãƒªç§’æ•°ã€? ã®å ´åˆã?無制é™?
241 derefLinkFlag = false; // true ã®å ´åˆã?検索ä¸ã«ãƒªãƒ³ã‚¯ã‚’間接å‚ç?ã™ã‚‹
242 returningObjFlag = false; // true ã®å ´åˆã?エントリã®åå‰ã«ãƒã‚¤ãƒ³ãƒ‰ã•れãŸã‚ªãƒ–ジェクトを返ã™ã€‚false å ´åˆã?オブジェクトを返ã•ãªã?
243 attrs = null; // エントリã¨ä¸?·’ã«è¿”ã•れる属æ?ã®è˜åˆ¥åã?null ã®å ´åˆã?ã™ã¹ã¦ã®å±žæ?ã‚’è¿”ã™ã€‚空ã®å ´åˆã?属æ?ã‚’è¿”ã•ãªã?
244 columns = null; // DBTableModel を作æ?ã™ã‚‹å ´åˆã?カラãƒ?ã«ãªã‚Šã¾ã™ã?null ã®å ´åˆã?ã€attributes 属æ?
245
246 initctx = HybsSystem.sys( "LDAP_INITIAL_CONTEXT_FACTORY" );
247 providerURL = HybsSystem.sys( "LDAP_PROVIDER_URL" );
248 entrydn = HybsSystem.sys( "LDAP_ENTRYDN" );
249 password = HybsSystem.sys( "LDAP_PASSWORD" ); // 4.2.2.0 (2008/05/10)
250 searchbase = HybsSystem.sys( "LDAP_SEARCH_BASE" );
251 filter = null; // "employeeNumber=87019";
252
253 tableId = HybsSystem.TBL_MDL_KEY; // session?·?°
254 orderBy = null; // ?¿?°???ç›®(csv)
255 command = CMD_NEW; // ?º?ï¾ï¾?¾?
256 executeCount = 0; // 検索/実行件数
257 errCode = ErrorMessage.OK; // Ver4.3.1.1 (2008/09/05) 検索エラーコー�
258 maxRowCount = 0; // æœ?¤§æ¤œç´¢æ•°(0ã¯ç„¡åˆ¶é™?
259 // displayMsg = "MSG0033"; // 件検索ã—ã¾ã—ãŸã€?
260 displayMsg = HybsSystem.sys( "VIEW_DISPLAY_MSG" );
261 overflowMsg = "MSG0007"; // æ¤œç´¢çµæžœãŒã?制é™è¡Œæ•°ã‚’è¶?ˆã¾ã—ãŸã®ã§ã€æ®‹ã‚Šã¯ã‚«ãƒ?ƒˆã•れã¾ã—ãŸã€? */
262 notfoundMsg = "MSG0077"; // 対象ãƒ??ã‚¿ã¯ã‚りã¾ã›ã‚“ã§ã—ãŸã€?
263 isMainTrans = true; // 5.1.6.0 (2010/05/01) DBLastSqlã®å‡¦ç??見直ã?
264 }
265
266 /**
267 * LDPA ã‹ã‚‰ã€å?ã‚’å–りå?ã—ã?DBTableModel を作æ?ã—ã¾ã™ã?
268 *
269 * @og.rev 4.2.2.0 (2008/05/10) entrydn ã¨ã€password 処ç??追åŠ?
270 *
271 * @return ãƒ??ブルモãƒ?ƒ«
272 */
273 private DBTableModel makeDBTable() {
274 if( filter == null ) {
275 String errMsg = "S検索フィルター㫠null ãŒæŒ‡å®šã•れã¾ã—ãŸã€? ;
276 throw new HybsSystemException( errMsg );
277 }
278
279 LDAPSearch serch = new LDAPSearch();
280 serch.setSearchScope( searchScope ) ;
281 serch.setTimeLimit( timeLimit ) ;
282 serch.setDerefLinkFlag( derefLinkFlag ) ;
283 serch.setReturningObjFlag( returningObjFlag ) ;
284 serch.setMaxRowCount( maxRowCount ) ;
285 serch.setAttributes( attrs ) ;
286 serch.setInitctx( initctx ) ;
287 serch.setProviderURL( providerURL ) ;
288 serch.setSearchbase( searchbase ) ;
289 if( entrydn != null ) { serch.setEntrydn( entrydn ) ; } //4 .2.2.0 (2008/05/10)
290 if( password != null ) { serch.setPassword( password ) ; } //4 .2.2.0 (2008/05/10)
291 serch.setOrderBy( orderBy ) ;
292 serch.init();
293
294 List<String[]> list = serch.search( filter );
295 executeCount = list.size();
296
297 // DBTableModel table = DBTableModelUtil.newDBTable();
298 String[] ids = serch.getAttributes(); // attrs ã?null ã®å ´åˆã?全件。ãれ以外ã?ã€attrs
299
300 // DBTableModel ã«ä½¿ç”¨ã™ã‚‹ã‚«ãƒ©ãƒ?ã®ç™»éŒ²
301 if( columns != null && columns.length > 0 ) {
302 if( ids.length != columns.length ) {
303 String errMsg = "attributes 属æ?ã¨columns属æ?ã®å€‹æ•°ãŒç•°ãªã‚Šã¾ã™ã?"
304 + "attrs=[" + attrs.length + "]:" + StringUtil.array2csv( attrs )
305 + HybsSystem.CR
306 + " columns=[" + columns.length + "]:" + StringUtil.array2csv( columns )
307 + HybsSystem.CR ;
308 throw new HybsSystemException( errMsg );
309 }
310 for( int i=0; i<columns.length; i++ ) {
311 // columns ã«ã‚«ãƒ©ãƒ?ãŒè¨å®šã•れã¦ã?‚‹å ´åˆã?ã¿ã€ä½¿ç”¨ã™ã‚‹ã€?
312 if( columns[i] != null && columns[i].length() > 0 ) {
313 ids[i] = columns[i];
314 }
315 }
316 }
317
318 DBTableModel table = null;
319 if( ids.length > 0 ) {
320 table = DBTableModelUtil.newDBTable();
321 table.init( ids.length );
322 for( int clm=0; clm<ids.length; clm++ ) {
323 DBColumn dbColumn = getResource().makeDBColumn( ids[clm] );
324 table.setDBColumn( clm,dbColumn );
325 }
326
327 for( int row=0; row<executeCount; row++ ) {
328 table.addColumnValues( list.get( row ) );
329 }
330 }
331 return table ;
332 }
333
334 /**
335 * ã€TAG】検索ç¯?›²(OBJECT/ONELEVEL/SUBTREE)ã‚’è¨å®šã—ã¾ã?
336 * (åˆæœŸå€¤:LDAP_SEARCH_SCOPE[={@og.value org.opengion.hayabusa.common.SystemData#LDAP_SEARCH_SCOPE}])ã€?
337 *
338 * @og.tag
339 * 検索ç¯?›²ã‚?OBJECT_SCOPEã€ONELEVEL_SCOPEã€SUBTREE_SCOPE ã®ã©ã‚Œã‹ 1 ã¤ã§ã™ã?
340 * æŒ?®šæ–‡å—å?ã¯ã€ãれãžã‚Œã?OBJECTã€ã?ONELEVELã€ã?SUBTREEã€ã§ã™ã?
341 * (åˆæœŸå€¤:シスãƒ?ƒ 定数ã®LDAP_SEARCH_SCOPE[={@og.value org.opengion.hayabusa.common.SystemData#LDAP_SEARCH_SCOPE}])ã€?
342 *
343 * @param scope SearchControls ã®æ¤œç´¢ç¯?›²
344 * @see org.opengion.hayabusa.common.SystemData#LDAP_SEARCH_SCOPE
345 */
346 public void setSearchScope( final String scope ) {
347 searchScope = nval( getRequestParameter( scope ), searchScope );
348 }
349
350 /**
351 * ã€TAG】ã“れら㮠SearchControls ã®æ™‚間制é™ã‚’ミリ秒å˜ä½ã§è¨å®šã—ã¾ã?åˆæœŸå€¤:0[無制é™])ã€?
352 *
353 * @og.tag
354 * 値ã?0 ã®å ´åˆã?無制é™ã«å¾?¤ã“ã¨ã‚’æ„味ã—ã¾ã™ã?
355 *
356 * @param limit ミリ秒å˜ä½ã?時間制é™?åˆæœŸå€¤:無制é™?
357 */
358 public void setTimeLimit( final String limit ) {
359 timeLimit = nval( getRequestParameter( limit ), timeLimit );
360 }
361
362 /**
363 * ã€TAG】検索ä¸ã®ãƒªãƒ³ã‚¯ã¸ã®é–“接å‚ç?を有効ã¾ãŸã?無効[true/false]ã«ã—ã¾ã?åˆæœŸå€¤:false)ã€?
364 *
365 * @og.tag 検索ä¸ã®ãƒªãƒ³ã‚¯ã¸ã®é–“接å‚ç?を有効ã¾ãŸã?無効ã«ã—ã¾ã™ã?
366 *
367 * @param deref リンクをé?å‚ç?ã™ã‚‹å ´åˆã? trueã€ãã?§ãªã??åˆã? false(åˆæœŸå€¤:false)
368 */
369 public void setDerefLinkFlag( final String deref ) {
370 derefLinkFlag = nval( getRequestParameter( deref ), derefLinkFlag );
371 }
372
373 /**
374 * ã€TAGã€‘çµæžœã®ä¸?ƒ¨ã¨ã—ã¦ã‚ªãƒ–ジェクトを返ã™ã“ã¨ã‚’有効ã¾ãŸã?無効[true/false]ã«ã—ã¾ã?åˆæœŸå€¤:false)ã€?
375 *
376 * @og.tag
377 * 無効ã«ã—ãŸå ´åˆã?オブジェクトã?åå‰ãŠã‚ˆã³ã‚¯ãƒ©ã‚¹ã?‘ãŒè¿”ã•れã¾ã™ã?
378 * 有効ã«ã—ãŸå ´åˆã?オブジェクトãŒè¿”ã•れã¾ã™ã?
379 *
380 * @param pbjflag オブジェクトãŒè¿”ã•ã‚Œã‚‹å ´åˆã? trueã€ãã?§ãªã??åˆã? false(åˆæœŸå€¤:false)
381 */
382 public void setReturningObjFlag( final String pbjflag ) {
383 returningObjFlag = nval( getRequestParameter( pbjflag ), returningObjFlag );
384 }
385
386 /**
387 * ã€TAGã€‘ãƒ¬ã‚¸ã‚¹ãƒˆãƒªã®æœ?¤§æ¤œç´¢ä»¶æ•°ã‚’ã‚»ãƒ?ƒˆã—ã¾ã?åˆæœŸå€¤:0[無制é™])ã€?
388 *
389 * @og.tag
390 * DBTableModelã®ãƒ??ã‚¿ã¨ã—ã¦ç™»éŒ²ã™ã‚‹æœ?¤§ä»¶æ•°ã‚’ã“ã®å€¤ã«è¨å®šã—ã¾ã™ã?
391 * サーãƒã?ã®ãƒ¡ãƒ¢ãƒªè³?ºã¨å¿œç”時間ã?確ä¿ã?為ã§ã™ã?
392 * åˆæœŸå€¤ã¯ã€? ã¯ã€ç„¡åˆ¶é™ã§ã™ã?
393 *
394 * @param count ãƒ¬ã‚¸ã‚¹ãƒˆãƒªã®æœ?¤§æ¤œç´¢ä»¶æ•°
395 */
396 public void setMaxRowCount( final String count ) {
397 maxRowCount = nval( getRequestParameter( count ),maxRowCount );
398 }
399
400 /**
401 * ã€TAG】検索ã®ä¸?ƒ¨ã¨ã—ã¦è¿”ã•れる属æ?ã‚’CSVã§è¤?•°æŒ?®šã—ã¾ã™ã?
402 *
403 * @og.tag
404 * null ã¯å±žæ?ãŒä½•ã‚‚è¿”ã•れãªã?“ã¨ã‚’示ã—ã¾ã™ã?
405 * ã“ã?メソãƒ?ƒ‰ã‹ã‚‰ã¯ã€ç©ºã®é…å?ã‚’ã‚»ãƒ?ƒˆã™ã‚‹ã“ã¨ã¯å‡ºæ¥ã¾ã›ã‚“ã€?
406 *
407 * @og.rev 3.5.6.2 (2004/07/05) å…ˆã«é…å?ã«åˆ?§£ã—ã¦ã‹ã‚‰ãƒªã‚¯ã‚¨ã‚¹ãƒˆå¤‰æ•°ã®å€¤ã‚’å–å¾?
408 * @og.rev 3.7.0.4 (2005/03/18) リクエスト変数ã®å€¤ã‚’å–得後ã?åˆ?§£ã—ã¾ã™ã?
409 *
410 * @param val è¿”ã•れる属æ?ã‚’è˜åˆ¥ã™ã‚‹å±žæ? ID ã®ç¾??(カンマ区åˆ?‚Šæ–??
411 */
412 public void setAttributes( final String val ) {
413 String att = nval( getRequestParameter( val ),null );
414 if( att != null ) {
415 attrs = StringUtil.csv2Array( att );
416 }
417 }
418
419 /**
420 * ã€TAG】作æ?ã™ã‚‹ DBTableModel ã®ã‚«ãƒ©ãƒ?ã‚’CSVå½¢å¼ã§æŒ?®šã—ã¾ã™ã?
421 *
422 * @og.tag
423 * ãªã«ã‚‚指定ã—ãªã??åˆã?ã€attributes 属æ?ãŒä½¿ç”¨ã•れã¾ã™ã?
424 * LDAPæ¤œç´¢çµæžœã«ã€åˆ¥åã‚’ã¤ã‘るイメージã§ä½¿ç”¨ã—ã¾ã™ã?
425 *
426 * @og.rev 3.7.1.0 (2005/04/26) æ–°è¦è¿½åŠ?
427 *
428 * @param clm 作æ?ã™ã‚‹ DBTableModel ã®ã‚«ãƒ©ãƒ?(カンマ区åˆ?‚Šæ–??
429 */
430 public void setColumns( final String clm ) {
431 String cl = nval( getRequestParameter( clm ),null );
432 if( cl != null ) {
433 columns = StringUtil.csv2Array( cl );
434 }
435 }
436
437 /**
438 * ã€TAG】å?期コンãƒ?‚ストファクトリを指定ã—ã¾ã?
439 * (åˆæœŸå€¤:LDAP_INITIAL_CONTEXT_FACTORY[={@og.value org.opengion.hayabusa.common.SystemData#LDAP_INITIAL_CONTEXT_FACTORY}])ã€?
440 *
441 * @og.tag
442 * ä¾?com.sun.jndi.ldap.LdapCtxFactory
443 * (åˆæœŸå€¤:シスãƒ?ƒ 定数ã®LDAP_INITIAL_CONTEXT_FACTORY[={@og.value org.opengion.hayabusa.common.SystemData#LDAP_INITIAL_CONTEXT_FACTORY}])ã€?
444 *
445 * @param ctx åˆæœŸã‚³ãƒ³ãƒ?‚ストファクトリ
446 * @see org.opengion.hayabusa.common.SystemData#LDAP_INITIAL_CONTEXT_FACTORY
447 */
448 public void setInitctx( final String ctx ) {
449 initctx = nval( getRequestParameter( ctx ), initctx );
450 }
451
452 /**
453 * ã€TAG】サービスプãƒãƒã‚¤ãƒ??æ§‹æ?æƒ??を指定ã—ã¾ã?
454 * (åˆæœŸå€¤:LDAP_PROVIDER_URL[={@og.value org.opengion.hayabusa.common.SystemData#LDAP_PROVIDER_URL}])ã€?
455 *
456 * @og.tag
457 * プãƒãƒˆã‚³ãƒ«ã¨ã‚µãƒ¼ãƒã?ã¨ãƒã?トをæŒ?®šã—ã¾ã™ã?
458 * �『ldap://ldap.opengion.org:389�
459 * (åˆæœŸå€¤:シスãƒ?ƒ 定数ã®LDAP_PROVIDER_URL[={@og.value org.opengion.hayabusa.common.SystemData#LDAP_PROVIDER_URL}])ã€?
460 *
461 * @param url サービスプãƒãƒã‚¤ãƒ??æ§‹æ?æƒ??
462 * @see org.opengion.hayabusa.common.SystemData#LDAP_PROVIDER_URL
463 */
464 public void setProviderURL( final String url ) {
465 providerURL = nval( getRequestParameter( url ), providerURL );
466 }
467
468 /**
469 * ã€TAG】検索ã™ã‚‹ã‚³ãƒ³ãƒ?‚ストã¾ãŸã?オブジェクトã?åå‰ã‚’è¨å®šã—ã¾ã?
470 * (åˆæœŸå€¤:LDAP_SEARCH_BASE[={@og.value org.opengion.hayabusa.common.SystemData#LDAP_SEARCH_BASE}])ã€?
471 *
472 * @og.tag
473 * �『soOUID=employeeuser,o=opengion,c=JP�
474 * (åˆæœŸå€¤:シスãƒ?ƒ 定数ã®LDAP_SEARCH_BASE[={@og.value org.opengion.hayabusa.common.SystemData#LDAP_SEARCH_BASE}])ã€?
475 *
476 * @param base 検索ベã?ス
477 * @see org.opengion.hayabusa.common.SystemData#LDAP_SEARCH_BASE
478 */
479 public void setSearchbase( final String base ) {
480 searchbase = nval( getRequestParameter( base ), searchbase );
481 }
482
483 /**
484 * ã€TAG】検索ã«ä½¿ç”¨ã™ã‚‹ãƒ•ィルタå¼?例:belongOUID=61200)ã€?
485 *
486 * @og.tag
487 * �『belongOUID=61200�
488 *
489 * @param siki フィルタ�
490 */
491 public void setFilter( final String siki ) {
492 filter = nval( getRequestParameter( siki ), filter );
493 }
494
495 /**
496 * ã€TAG】属æ?ã®å–å¾—å?ã®ã‚ªãƒ–ジェクトã?åå‰ã‚’è¨å®šã—ã¾ã?
497 * (åˆæœŸå€¤:LDAP_ENTRYDN[={@og.value org.opengion.hayabusa.common.SystemData#LDAP_ENTRYDN}])ã€?
498 *
499 * @og.tag
500 * �『soOUID=opengion-sys,o=opengion,c=JP�
501 * (åˆæœŸå€¤:シスãƒ?ƒ 定数ã®LDAP_ENTRYDN[={@og.value org.opengion.hayabusa.common.SystemData#LDAP_ENTRYDN}])ã€?
502 *
503 * @og.rev 4.2.2.0 (2008/05/10) åˆæœŸå€¤å¤‰æ›´
504 *
505 * @param dn å–å¾—å?ã®ã‚ªãƒ–ジェクトã?åå‰
506 * @see org.opengion.hayabusa.common.SystemData#LDAP_ENTRYDN
507 */
508 public void setEntrydn( final String dn ) {
509 entrydn = nval( getRequestParameter( dn ), entrydn );
510 }
511
512 /**
513 * ã€TAG】属æ?ã®å–å¾—å?ã®ã‚ªãƒ–ジェクトã?パスワードをè¨å®šã—ã¾ã?
514 * (åˆæœŸå€¤:LDAP_PASSWORD[={@og.value org.opengion.hayabusa.common.SystemData#LDAP_PASSWORD}])ã€?
515 *
516 * @og.tag
517 * (åˆæœŸå€¤:シスãƒ?ƒ 定数ã®LDAP_PASSWORD[={@og.value org.opengion.hayabusa.common.SystemData#LDAP_PASSWORD}])ã€?
518 *
519 * @og.rev 4.2.2.0 (2008/05/10) æ–°è¦è¿½åŠ?
520 *
521 * @param pwd å–å¾—å?ã®ã‚ªãƒ–ジェクトã?パスワーãƒ?
522 * @see org.opengion.hayabusa.common.SystemData#LDAP_PASSWORD
523 */
524 public void setPassword( final String pwd ) {
525 password = nval( getRequestParameter( pwd ), password );
526 }
527
528 /**
529 * ã€TAGã€?通常ã¯ä½¿ã?¾ã›ã‚“)çµæžœã®DBTableModelã‚’ã?sessionã«ç™»éŒ²ã™ã‚‹ã¨ãã?ã‚ーを指定ã—ã¾ã?
530 * (åˆæœŸå€¤:HybsSystem#TBL_MDL_KEY[={@og.value org.opengion.hayabusa.common.HybsSystem#TBL_MDL_KEY}])ã€?
531 *
532 * @og.tag
533 * æ¤œç´¢çµæžœã‚ˆã‚Šã€DBTableModelオブジェクトを作æ?ã—ã¾ã™ã?ã“れをã?下æµã?viewã‚¿ã‚°ç‰ã«
534 * 渡ã™å?åˆã«ã€??常ã¯ã€session を利用ã—ã¾ã™ã?ãã?å ´åˆã?登録ã‚ーã§ã™ã?
535 * query ã‚¿ã‚°ã‚’åŒæ™‚ã«å®Ÿè¡Œã—ã¦ã€çµæžœã‚’求ã‚ã‚‹å?åˆã?åŒä¸?ƒ¡ãƒ¢ãƒªã«é…ç½®ã•れる為ã€?
536 * ã“ã? tableId 属æ?を利用ã—ã¦ã€ãƒ¡ãƒ¢ãƒªç©ºé–“ã‚’åˆ?‘ã¾ã™ã?
537 * (åˆæœŸå€¤:HybsSystem#TBL_MDL_KEY[={@og.value org.opengion.hayabusa.common.HybsSystem#TBL_MDL_KEY}])ã€?
538 *
539 * @param id sessionã«ç™»éŒ²ã™ã‚‹æ™‚ã? ID
540 */
541 public void setTableId( final String id ) {
542 tableId = nval( getRequestParameter( id ), tableId );
543 }
544
545 /**
546 * ã€TAG】検索ã—ãŸçµæžœã‚’表示ã™ã‚‹è¡¨ç¤ºé ?‚’ファイル属æ?åã§æŒ?®šã—ã¾ã™ã?
547 *
548 * @og.tag
549 * attributes 属æ?ã§æŒ?®šã™ã‚‹ã‚ーã€ã¾ãŸã?ã€LDAPã‹ã‚‰è¿”ã•れãŸã‚ーã«ã¤ã?¦
550 * ãã?属æ?ã§ã‚½ãƒ¼ãƒˆã—ã¾ã™ã?é€??を行ã†å ´åˆã?ã€DESC を指定ã?カラãƒ?ã®å¾Œã‚ã«
551 * 付ã‘ã¦ä¸‹ã•ã??
552 *
553 * @param ordr ソートã‚ーを指定ã?
554 */
555 public void setOrderBy( final String ordr ) {
556 orderBy = nval( getRequestParameter( ordr ), orderBy );
557 if( orderBy != null ) { orderBy = orderBy.toUpperCase(Locale.JAPAN) ; }
558 }
559
560 /**
561 * ã€TAG】コマンãƒ?NEW,RENEW)ã‚’ã‚»ãƒ?ƒˆã—ã¾ã?åˆæœŸå€¤:NEW)ã€?
562 *
563 * @og.tag
564 * コマンドã?,HTMLã‹ã‚‰(get/post)æŒ?®šã•れã¾ã™ã?ã§,CMD_xxx ã§è¨å®šã•れる
565 * フィールド定数値ã®ã?¥ã‚Œã‹ã‚’ã?æŒ?®šã§ãã¾ã™ã?
566 * 何もè¨å®šã•れãªã??ã¾ãŸã?ã€null ã®å ´åˆã?ã€?NEW" ãŒå?期å?ã«ã‚»ãƒ?ƒˆã•れã¾ã™ã?
567 *
568 * @param cmd コマンãƒ?public static final 宣è¨?•れã¦ã?‚‹æ–?—å?)
569 * @see <a href="../../../../constant-values.html#org.opengion.hayabusa.taglib.LDAPQueryTag.CMD_NEW">コマンド定数</a>
570 */
571 public void setCommand( final String cmd ) {
572 String cmd2 = getRequestParameter( cmd );
573 if( cmd2 != null && cmd2.length() > 0 ) { command = cmd2.toUpperCase(Locale.JAPAN); }
574 }
575
576 /**
577 * ã€TAGã€‘æ¤œç´¢çµæžœã‚’ç”»é¢ä¸Šã«è¡¨ç¤ºã™ã‚‹ãƒ¡ãƒ?‚»ãƒ¼ã‚¸ãƒªã‚½ãƒ¼ã‚¹IDを指定ã—ã¾ã?åˆæœŸå€¤ã¯æ¤œç´¢ä»¶æ•°)ã€?
578 *
579 * @og.tag
580 * ã“ã“ã§ã¯ã€æ¤œç´¢çµæžœã®ä»¶æ•°ã‚?™»éŒ²ã•れãŸä»¶æ•°ã‚’ã¾ãšå?力ã—ã€?
581 * ãã?次ã«ã€ã“ã“ã§æŒ?®šã—ãŸãƒ¡ãƒ?‚»ãƒ¼ã‚¸ã‚’リソースã‹ã‚‰å–å¾—ã—ã¦
582 * 表示ã—ã¾ã™ã?
583 * 表示ã•ã›ãŸããªã??åˆã?, displayMsg = "" ã‚’ã‚»ãƒ?ƒˆã—ã¦ãã ã•ã„ã€?
584 * åˆæœŸå€¤ã¯ã€æ¤œç´¢ä»¶æ•°ã‚’表示ã—ã¾ã™ã?
585 *
586 * @param id ãƒ?‚£ã‚¹ãƒ—レイã«è¡¨ç¤ºã•ã›ã‚‹ãƒ¡ãƒ?‚»ãƒ¼ã‚¸ ID
587 */
588 public void setDisplayMsg( final String id ) {
589 displayMsg = getRequestParameter( id );
590 }
591
592 /**
593 * ã€TAGã€‘æ¤œç´¢çµæžœãŒã‚¼ãƒä»¶ã®å ´åˆã«è¡¨ç¤ºã™ã‚‹ãƒ¡ãƒ?‚»ãƒ¼ã‚¸ãƒªã‚½ãƒ¼ã‚¹IDを指定ã—ã¾ã?åˆæœŸå€¤:MSG0077[対象ãƒ??ã‚¿ã¯ã‚りã¾ã›ã‚“ã§ã—ãŸ])ã€?
594 *
595 * @og.tag
596 * ã“ã“ã§ã¯ã€æ¤œç´¢çµæžœãŒã‚¼ãƒä»¶ã®å ´åˆã?ã¿ã€ç‰¹åˆ¥ãªãƒ¡ãƒ?‚»ãƒ¼ã‚¸ã‚’表示ã•ã›ã¾ã™ã?
597 * 従æ¥ã¯ã€displayMsg ã¨å…¼ç”¨ã§ã€ã?0ã€?»¶æ¤œç´¢ã—ã¾ã—ãŸã€ã¨ã?†è¡¨ç¤ºã§ã—ãŸãŒã?
598 * displayMsg ã®åˆæœŸè¡¨ç¤ºã¯ã€OFF ã«ãªã‚Šã¾ã—ãŸã®ã§ã€ã‚¼ãƒä»¶ã®å ´åˆã?ã¿åˆ¥ã«è¡¨ç¤ºã•ã›ã¾ã™ã?
599 * 表示ã•ã›ãŸããªã??åˆã?, notfoundMsg = "" ã‚’ã‚»ãƒ?ƒˆã—ã¦ãã ã•ã„ã€?
600 * åˆæœŸå€¤ã¯ã€MSG0077[対象ãƒ??ã‚¿ã¯ã‚りã¾ã›ã‚“ã§ã—ãŸ]ã§ã™ã?
601 *
602 * @param id ãƒ?‚£ã‚¹ãƒ—レイã«è¡¨ç¤ºã•ã›ã‚‹ãƒ¡ãƒ?‚»ãƒ¼ã‚¸ ID
603 */
604 public void setNotfoundMsg( final String id ) {
605 String ids = getRequestParameter( id );
606 if( ids != null ) { notfoundMsg = ids; }
607 }
608
609 /**
610 * ã€TAG】オーãƒã?フãƒãƒ¼æ™‚ã«ç”»é¢ä¸Šã«è¡¨ç¤ºã™ã‚‹ãƒ¡ãƒ?‚»ãƒ¼ã‚¸IDを指定ã—ã¾ã?åˆæœŸå€¤:MSG0007)ã€?
611 *
612 * @og.tag
613 * 表示ã•ã›ãŸããªã??åˆã?, overflowMsg = "" ã‚’ã‚»ãƒ?ƒˆã—ã¦ãã ã•ã„ã€?
614 *
615 * @param id ãƒ?‚£ã‚¹ãƒ—レイã«è¡¨ç¤ºã•ã›ã‚‹ãƒ¡ãƒ?‚»ãƒ¼ã‚¸ ID
616 */
617 public void setOverflowMsg( final String id ) {
618 overflowMsg = getRequestParameter( id );
619 }
620
621 /**
622 * ã€TAGã€?通常使ã?¾ã›ã‚“)ã‚¿ã‚°ã§å‡¦ç?•れる処ç?Œãƒ¡ã‚¤ãƒ³ã¨ãªã‚‹ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³å‡¦ç?‹ã©ã?‹ã‚’指定ã—ã¾ã?åˆæœŸå€¤:false)ã€?
623 *
624 * @og.tag
625 * ã“ã?値ã¯ã€ãƒ•ァイルãƒ?‚¦ãƒ³ãƒãƒ¼ãƒ‰å?ç?«å½±éŸ¿ã—ã¾ã™ã?ã“ã?値ãŒtrueã«æŒ?®šã•ã‚ŒãŸæ™‚ã«commitã•れãŸDBTableModelã?
626 * ファイルãƒ?‚¦ãƒ³ãƒãƒ¼ãƒ‰ã?対象ã®è¡¨ã«ãªã‚Šã¾ã™ã?
627 *
628 * ã“ã?パラメーターã¯ã€??常ã€å„ã‚¿ã‚°ã«ã‚ˆã‚Šå®Ÿè£?•れã?ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒæŒ‡å®šã™ã‚‹å¿?¦ã?ã‚りã¾ã›ã‚“ã€?
629 * ä½?—ã€?ã¤ã®JSPå†?§DBTableModelãŒè¤?•°ç”Ÿæ?ã•れるå?åˆã«ã€å‰ã«å‡¦ç?—ãŸDBTableModelã«ã¤ã?¦ãƒ•ァイルãƒ?‚¦ãƒ³ãƒãƒ¼ãƒ‰ã‚’ã•ã›ãŸã„
630 * å ´åˆã?ã€å¾Œã‚ã§DBTableModelを生æˆã™ã‚‹ã‚¿ã‚°ã§ã€æ?示çš?«ã“ã?値をfalseã«æŒ?®šã™ã‚‹ã“ã¨ã§ã€ãƒ•ァイルãƒ?‚¦ãƒ³ãƒãƒ¼ãƒ‰å?ç??対象ã‹ã‚‰
631 * 除外ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã?
632 *
633 * @og.rev 5.1.6.0 (2010/05/01) æ–°è¦ä½œæ?
634 *
635 * @param flag メイントランザクションã‹ã©ã?‹
636 */
637 public void setMainTrans( final String flag ) {
638 isMainTrans = nval( getRequestParameter( flag ),isMainTrans );
639 }
640
641 /**
642 * ã“ã?オブジェクトã?æ–?—å?表ç¾ã‚’è¿”ã—ã¾ã™ã?
643 * 基本çš?«ãƒ?ƒãƒ?‚°ç›®çš?«ä½¿ç”¨ã—ã¾ã™ã?
644 *
645 * @return ã“ã?ã‚¯ãƒ©ã‚¹ã®æ–?—å?表ç¾
646 */
647 @Override
648 public String toString() {
649 return org.opengion.fukurou.util.ToString.title( this.getClass().getName() )
650 .println( "VERSION" ,VERSION )
651 .println( "initctx" ,initctx )
652 .println( "providerURL" ,providerURL )
653 .println( "entrydn" ,entrydn )
654 .println( "searchbase" ,searchbase )
655 .println( "filter" ,filter )
656 .println( "searchScope" ,searchScope )
657 .println( "COUNTLIMIT" ,COUNTLIMIT )
658 .println( "timeLimit" ,timeLimit )
659 .println( "attrs" ,attrs )
660 .println( "columns" ,columns )
661 .println( "returningObjFlag" ,returningObjFlag)
662 .println( "derefLinkFlag" ,derefLinkFlag )
663 .println( "tableId" ,tableId )
664 .println( "orderBy" ,orderBy )
665 .println( "command" ,command )
666 .println( "executeCount" ,executeCount )
667 .println( "errCode" ,errCode )
668 .println( "maxRowCount" ,maxRowCount )
669 .println( "displayMsg" ,displayMsg )
670 .println( "overflowMsg" ,overflowMsg )
671 .println( "Other..." ,getAttributes().getAttribute() )
672 .fixForm().toString() ;
673 }
674 }