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.resource.GUIInfo; 021 import org.opengion.fukurou.db.Transaction; 022 import org.opengion.fukurou.db.TransactionReal; 023 import org.opengion.fukurou.util.FileUtil; 024 import org.opengion.fukurou.util.Closer ; 025 import org.opengion.fukurou.util.StringUtil; 026 import org.opengion.fukurou.xml.HybsXMLSave ; 027 028 import static org.opengion.fukurou.util.StringUtil.nval ; 029 030 import java.sql.Connection; 031 032 import java.io.File; 033 import java.io.BufferedReader; 034 import java.util.Map; 035 import java.util.HashMap; 036 037 /** 038 * æŒ?®šã?æ‹¡å¼µXDKå½¢å¼ãƒ•ァイルを直接ãƒ??タベã?スã«ç™»éŒ²ã™ã‚‹ãƒ??タ入力タグã§ã™ã? 039 * 040 * ã“ã?クラスã¯ã€ã‚ªãƒ©ã‚¯ãƒ« XDKã® oracle.xml.sql.dml.OracleXMLSave クラス㨠041 * ã»ã¼åŒæ§˜ã?ç›®çš?§ä½¿ç”¨ã§ãã‚‹ org.opengion.fukurou.xml.HybsXMLSave ã®ãƒ©ãƒ?ƒ‘ークラスã§ã™ã? 042 * æ‹¡å¼µXDKå½¢å¼ã?XMLファイルをèªã¿è¾¼ã¿ã€ãƒ‡ãƒ¼ã‚¿ãƒ™ã?ス㫠INSERT ã—ã¾ã™ã? 043 * æ‹¡å¼µXDKå½¢å¼ã?å…?¨ãªã‚?オラクル XDK(Oracle XML Developer's Kit)ã«ã¤ã?¦ã¯ã€ä»¥ä¸‹ã? 044 * リンクをå‚照願ã„ã¾ã™ã? 045 * <a href="http://otn.oracle.co.jp/software/tech/xml/xdk/index.html" target="_blank" > 046 * XDK(Oracle XML Developer's Kit)</a> 047 * 048 * ã“ã?ã‚¿ã‚°ã§ã¯ã€keys,vals を登録ã™ã‚‹ã“ã¨ã«ã‚ˆã‚Šã€MLファイルã«å˜åœ¨ã—ãªã?‚«ãƒ©ãƒ?‚’ 049 * 追åŠ?—ãŸã‚Šã€XMLãƒ•ã‚¡ã‚¤ãƒ«ã®æƒ??ã‚’æ›¸ãæ›ãˆã‚‹ã“ã¨ãŒå¯èƒ½ã«ãªã‚Šã¾ã™ã? 050 * 例ãˆã°ã€ç™»éŒ²æ—¥ã‚??登録è€??ã¾ãŸã?ã€ãƒ†ãƒ³ãƒ—レートよりå„シスãƒ?ƒ ID毎㫠051 * 登録ã™ã‚‹ãªã©ã§ã™ã? 052 * 053 * æ‹¡å¼µXDKå½¢å¼ã¨ã¯ã€ROW 以外ã«ã€SQL処ç?”¨ã‚¿ã‚°(EXEC_SQL)ã‚’æŒã¤ XML ファイルã§ã™ã? 054 * ã¾ãŸã?登録ã™ã‚‹ãƒ??ブル(table)ã‚?ROWSETã‚¿ã‚°ã®å±žæ?æƒ??ã¨ã—ã¦ä»˜ä¸Žã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã? 055 * (大æ–?—å°æ–‡å—ã«æ³¨æ„? 056 * ã“れã¯ã€ã‚ªãƒ©ã‚¯ãƒ«XDKã§å‡¦ç?™ã‚‹å?åˆã?無視ã•れã¾ã™ã?ã§ã€åŒæ§˜ã«æ‰±ã?“ã¨ãŒå?æ¥ã¾ã™ã? 057 * ã“ã?ã€EXEC_SQL ã¯ã€ãれãれã? XMLãƒ??タをデータベã?スã«ç™»éŒ²ã™ã‚‹éš›ã«ã€? 058 * SQL処ç?‚’è‡ªå‹•çš„ã«æµã™ç‚ºã®ã€SQLæ–?‚’記載ã—ã¾ã™ã? 059 * ã“ã?処ç??ã€ã‚¤ãƒ™ãƒ³ãƒˆæ¯Žã«å®Ÿè¡Œã•れる為ã€ãã®é…ç½®é ??é‡è¦ã§ã™ã? 060 * ã“ã?ã‚¿ã‚°ã¯ã€è¤?•°è¨˜è¿°ã™ã‚‹ã“ã¨ã‚‚å?æ¥ã¾ã™ãŒã€BODY部ã«ã¯ã€?¼‘ã¤ã®SQLæ–??ã¿è¨˜è¿°ã—ã¾ã™ã? 061 * 062 * ※ ã“ã?ã‚¿ã‚°ã¯ã€Transaction ã‚¿ã‚°ã®å¯¾è±¡ã§ã™ã? 063 * 064 * <ROWSET tableName="XX" > 065 * <EXEC_SQL> æœ??ã«è¨˜è¼‰ã—ã¦ã€å?期å?ç?ãƒ??タクリアç?を実行ã•ã›ã‚‹ã€? 066 * delete from GEXX where YYYYY 067 * </EXEC_SQL> 068 * <MERGE_SQL> ã“ã?SQLæ–?§ UPDATEã—ã¦ã€çµæžœãŒï¼ä»¶ãªã‚‰INSERTを行ã„ã¾ã™ã? 069 * update GEXX set AA=[AA] , BB=[BB] where CC=[CC] 070 * </MERGE_SQL> 071 * <ROW num="1"> 072 * <カラãƒ?>値1</カラãƒ?> 073 * ?¥?¥?¥ 074 * <カラãƒ?>値n</カラãƒ?> 075 * </ROW> 076 * ?¥?¥?¥ 077 * <ROW num="n"> 078 * ?¥?¥?¥ 079 * </ROW> 080 * <EXEC_SQL> æœ?¾Œã«è¨˜è¼‰ã—ã¦ã€??ç›®ã®è¨å®?æ•´åˆæ?登録)を行ã†ã€? 081 * update GEXX set AA='XX' , BB='XX' where YYYYY 082 * </EXEC_SQL> 083 * <ROWSET> 084 * 085 * @og.formSample 086 * â—å½¢å¼ï¼?lt;og:directXMLSave filename="[?¥?¥?¥]" ?¥?¥?¥ /> 087 * â—body?šãªã? 088 * 089 * â—Tag定義?? 090 * <og:directXMLSave 091 * dbid ã€TAGã€?通常ã¯ä½¿ã?¾ã›ã‚“)検索時ã?DB接続IDを指定ã—ã¾ã?åˆæœŸå€¤:DEFAULT) 092 * fileURL ã€TAG】èªã¿å–りå…?ƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªåã‚’æŒ?®šã—ã¾ã?(åˆæœŸå€¤:FILE_URL[=filetemp/]) 093 * filename ã€TAG】ファイルを作æ?ã™ã‚‹ã¨ãã?ファイルåã‚’ã‚»ãƒ?ƒˆã—ã¾ã?(åˆæœŸå€¤:FILE_FILENAME[=file.xls]) 094 * displayMsg ã€TAG】query ã®çµæžœã‚’ç”»é¢ä¸Šã«è¡¨ç¤ºã™ã‚‹ãƒ¡ãƒ?‚»ãƒ¼ã‚¸IDを指定ã—ã¾ã?åˆæœŸå€¤:MSG0040[ã€?»¶ç™»éŒ²ã—ã¾ã—ãŸ]) 095 * keys ã€TAG】XMLファイルをèªã¿å–ã£ãŸå¾Œã§æŒ?®šã™ã‚‹ã‚ーをCSVå½¢å¼ã§è¤?•°æŒ?®šã—ã¾ã? 096 * vals ã€TAG】XMLファイルをèªã¿å–ã£ãŸå¾Œã§æŒ?®šã™ã‚‹å?ã‚’CSVå½¢å¼ã§è¤?•°æŒ?®šã—ã¾ã? 097 * caseKey ã€TAG】ã“ã®ã‚¿ã‚°è‡ªä½“を利用ã™ã‚‹ã‹ã©ã?‹ã®æ¡ä»¶ã‚ーを指定ã—ã¾ã?åˆæœŸå€¤:null) 098 * caseVal ã€TAG】ã“ã®ã‚¿ã‚°è‡ªä½“を利用ã™ã‚‹ã‹ã©ã?‹ã®æ¡ä»¶å€¤ã‚’指定ã—ã¾ã?åˆæœŸå€¤:null) 099 * caseNN ã€TAG】指定ã?値ãŒã?null/ã‚¼ãƒæ–?—å? ã§ãªã??å?Not Null=NN)ã¯ã€ã“ã®ã‚¿ã‚°ã¯ä½¿ç”¨ã•れã¾ã?åˆæœŸå€¤:true) 100 * caseNull ã€TAG】指定ã?値ãŒã?null/ã‚¼ãƒæ–?—å? ã®å ´åˆã?ã€ã“ã®ã‚¿ã‚°ã¯ä½¿ç”¨ã•れã¾ã?åˆæœŸå€¤:true) 101 * debug ã€TAG】デãƒãƒƒã‚°æƒ??ã‚’å?力ã™ã‚‹ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:false) 102 * /> 103 * 104 * â—使用ä¾? 105 * <og:directXMLSave 106 * dbid = "ORCL" 接続データベã?スID(åˆæœŸå€¤:DEFAULT) 107 * fileURL = "{@USER.ID}" èªã¿å–りå…?ƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªå? 108 * filename = "{@filename}" èªã¿å–りå…?ƒ•ァイルå? 109 * displayMsg = "MSG0040" 登録完äº?¾Œã?メãƒ?‚»ãƒ¼ã‚¸ 110 * /> 111 * 112 * @og.group ファイル入åŠ? 113 * @og.rev 4.0.0.0 (2007/03/08) æ–°è¦è¿½åŠ? 114 * 115 * @version 4.0 116 * @author Kazuhiko Hasegawa 117 * @since JDK5.0, 118 */ 119 public class DirectXMLSaveTag extends CommonTagSupport { 120 //* ã“ã?プãƒã‚°ãƒ©ãƒ??VERSIONæ–?—å?ã‚’è¨å®šã—ã¾ã™ã? {@value} */ 121 private static final String VERSION = "5.6.7.0 (2013/07/27)" ; 122 123 private static final long serialVersionUID = 567020130727L ; 124 125 private static final String ENCODE = "UTF-8"; 126 // 4.0.0.0 (2007/10/10) dbid ã®åˆæœŸå€¤ã‚’ã?"DEFAULT" ã‹ã‚‰ null ã«å¤‰æ›´ 127 // private String dbid = "DEFAULT"; 128 private String dbid = null; 129 private String fileURL = HybsSystem.sys( "FILE_URL" ); // 4.0.0 (2005/01/31) 130 private String filename = HybsSystem.sys( "FILE_FILENAME" ); // ファイルå? 131 private String displayMsg = "MSG0040"; // ã€?»¶ç™»éŒ²ã—ã¾ã—ãŸã€? 132 private String[] keys = null; 133 private String[] vals = null; 134 private long dyStart = 0; // 実行時間測定用ã®DIVè¦ç´?‚’出力ã—ã¾ã™ã? 135 136 /** 137 * Taglibã®é–‹å§‹ã‚¿ã‚°ãŒè¦‹ã¤ã‹ã£ãŸã¨ãã«å‡¦ç?™ã‚?doStartTag() ã‚?オーãƒã?ライドã—ã¾ã™ã? 138 * 139 * @og.rev 5.6.6.1 (2013/07/12) caseKey ã€caseVal 属æ?対å¿? 140 * 141 * @return 後続å?ç??æŒ?¤º( SKIP_BODY ) 142 */ 143 @Override 144 public int doStartTag() { 145 // 5.6.6.1 (2013/07/12) caseKey ã€caseVal 属æ?対å¿? 146 if( useTag() ) { 147 dyStart = System.currentTimeMillis(); // 時間測定用 148 } 149 return( SKIP_BODY ); // Body を評価ã—ãªã? 150 } 151 152 /** 153 * Taglibã®çµ‚äº?‚¿ã‚°ãŒè¦‹ã¤ã‹ã£ãŸã¨ãã«å‡¦ç?™ã‚?doEndTag() ã‚?オーãƒã?ライドã—ã¾ã™ã? 154 * 155 * @og.rev 4.0.0.0 (2007/10/18) メãƒ?‚»ãƒ¼ã‚¸ãƒªã‚½ãƒ¼ã‚¹çµ±å? getResource().getMessage â‡?getResource().getLabel ) 156 * @og.rev 4.0.0.1 (2007/12/03) try ??catch ??finally ã‚’ãã¡ã‚“ã¨è¡Œã†ã€? 157 * @og.rev 5.1.9.0 (2010/08/01) Transaction 対å¿? 158 * @og.rev 5.3.7.0 (2011/07/01) TransactionReal ã®å¼•数変更 159 * @og.rev 5.5.2.6 (2012/05/25) findbugs対応ã?例外経路㧠null 値を利用ã™ã‚‹ã“ã¨ãŒä¿è¨¼ã•れã¦ã?¾ã™ã? 160 * @og.rev 5.6.6.1 (2013/07/12) caseKey ã€caseVal 属æ?対å¿? 161 * @og.rev 5.6.7.0 (2013/07/27) DDL?ˆãƒ‡ãƒ¼ã‚¿å®šç¾©è¨?ªžï¼šData Definition Language?‰ã?処ç?»¶æ•°è¿½åŠ? 162 * 163 * @return 後続å?ç??æŒ?¤º 164 */ 165 @Override 166 public int doEndTag() { 167 debugPrint(); // 4.0.0 (2005/02/28) 168 // 5.6.6.1 (2013/07/12) caseKey ã€caseVal 属æ?対å¿? 169 if( !useTag() ) { return(EVAL_PAGE); } 170 171 BufferedReader reader = null; 172 final int insCnt ; 173 final int updCnt ; 174 final int delCnt ; 175 final int ddlCnt ; // 5.6.7.0 (2013/07/27) DDL処ç?»¶æ•°è¿½åŠ? 176 boolean errFlag = true; 177 // Connection conn = null; 178 Transaction tran = null; // 5.1.9.0 (2010/08/01) Transaction 対å¿? 179 try { 180 // 5.1.9.0 (2010/08/01) Transaction 対å¿? 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 // conn = ConnectionFactory.connection( dbid,getApplicationInfo() ); // 3.8.7.0 (2006/12/15) 190 191 Connection conn = tran.getConnection( dbid ); // 5.1.9.0 (2010/08/01) Transaction 対å¿? 192 HybsXMLSave save = new HybsXMLSave( conn ); 193 if( keys != null ) { save.setAfterMap( getAfterMap() ); } 194 195 reader = getBufferedReader(); 196 save.insertXML( reader ); 197 insCnt = save.getInsertCount(); 198 updCnt = save.getUpdateCount(); 199 delCnt = save.getDeleteCount(); 200 ddlCnt = save.getDDLCount(); // 5.6.7.0 (2013/07/27) DDL処ç?»¶æ•°è¿½åŠ? 201 // Closer.commit( conn ); 202 tran.commit(); // 5.1.9.0 (2010/08/01) Transaction 対å¿? 203 errFlag = false; // エラーã§ã¯ãªã? 204 } 205 catch( Throwable ex ) { 206 // Closer.rollback( conn ); 207 if( tran != null ) { // 5.5.2.6 (2012/05/25) findbugs対å¿? 208 tran.rollback(); // 5.1.9.0 (2010/08/01) Transaction 対å¿? 209 } 210 throw new HybsSystemException( ex ); 211 } 212 finally { 213 if( tran != null ) { // 5.5.2.6 (2012/05/25) findbugs対å¿? 214 tran.close( errFlag ); 215 } 216 // if( errFlag ) { ConnectionFactory.remove( conn,dbid ); } // 削除 217 // else { ConnectionFactory.close( conn,dbid ); } // è¿”å´ 218 // Closer.connClose( conn ); 219 Closer.ioClose( reader ); 220 } 221 222 // 実行件数ã®è¡¨ç¤º 223 // 4.0.0 (2005/11/30) 出力é?ã®å¤‰æ›´ã€‚ä¸?•ªæœ??ã«å‡ºåŠ›ã—ã¾ã™ã? 224 if( displayMsg != null && displayMsg.length() > 0 ) { 225 StringBuilder buf = new StringBuilder(); 226 buf.append( "INS:" ).append( insCnt ); 227 buf.append( " / UPD:" ).append( updCnt ); 228 buf.append( " / DEL:" ).append( delCnt ); 229 buf.append( " / DDL:" ).append( ddlCnt ); // 5.6.7.0 (2013/07/27) DDL処ç?»¶æ•°è¿½åŠ? 230 // buf.append( getResource().getMessage( displayMsg ) ); 231 buf.append( getResource().getLabel( displayMsg ) ); 232 buf.append( HybsSystem.BR ); 233 234 jspPrint( buf.toString() ); 235 } 236 237 // 時間測定用㮠DIV è¦ç´?‚’出åŠ? 238 long dyTime = System.currentTimeMillis()-dyStart; 239 jspPrint( "<div id=\"queryTime\" value=\"" + (dyTime) + "\"></div>" ); // 3.5.6.3 (2004/07/12) 240 241 // 4.0.0 (2005/01/31) ã‚»ã‚ュリãƒ?‚£ãƒã‚§ãƒ?‚¯(ãƒ??タアクセス件数登録) 242 GUIInfo guiInfo = (GUIInfo)getSessionAttribute( HybsSystem.GUIINFO_KEY ); 243 if( guiInfo != null ) { guiInfo.addWriteCount( insCnt,dyTime,fileURL + filename ); } 244 245 return(EVAL_PAGE); 246 } 247 248 /** 249 * タグリブオブジェクトをリリースã—ã¾ã™ã? 250 * ã‚ャãƒ?‚·ãƒ¥ã•れã¦å†åˆ©ç”¨ã•れるã?ã§ã€ãƒ•ィールドã?åˆæœŸè¨å®šã‚’行ã„ã¾ã™ã? 251 * 252 * @og.rev 4.0.0.0 (2007/10/10) dbid ã®åˆæœŸå€¤ã‚’ã?"DEFAULT" ã‹ã‚‰ null ã«å¤‰æ›´ 253 */ 254 @Override 255 protected void release2() { 256 super.release2(); 257 // dbid = "DEFAULT"; 258 dbid = null; 259 fileURL = HybsSystem.sys( "FILE_URL" ); // 4.0.0 (2005/01/31) 260 filename = HybsSystem.sys( "FILE_FILENAME" ); // ファイルå? 261 displayMsg = "MSG0040"; // ã€?»¶ç™»éŒ²ã—ã¾ã—ãŸã€? 262 keys = null; 263 vals = null; 264 } 265 266 /** 267 * BufferedReader ã‚’å–å¾—ã—ã¾ã™ã? 268 * 269 * ã“ã“ã§ã¯ã€ä¸?ˆ¬çš?ªãƒ•ァイル出力をè€??ã—㟠BufferedReader を作æ?ã—ã¾ã™ã? 270 * 271 * @return ファイル入力用BufferedReaderオブジェクãƒ? 272 */ 273 private BufferedReader getBufferedReader() { 274 if( filename == null ) { 275 String errMsg = "ファイルåãŒã‚»ãƒ?ƒˆã•れã¦ã?¾ã›ã‚“ã€?; 276 throw new HybsSystemException( errMsg ); 277 } 278 String directory = HybsSystem.url2dir( fileURL ); 279 File file = new File( StringUtil.urlAppend( directory,filename ) ); 280 281 BufferedReader out = FileUtil.getBufferedReader( file,ENCODE ); 282 283 return out ; 284 } 285 286 /** 287 * BufferedReader ã‚’å–å¾—ã—ã¾ã™ã? 288 * 289 * ã“ã“ã§ã¯ã€ä¸?ˆ¬çš?ªãƒ•ァイル出力をè€??ã—㟠BufferedReader を作æ?ã—ã¾ã™ã? 290 * 291 * @og.rev 5.6.6.1 (2013/07/12) key ã?null ã‚?ã‚¼ãƒæ–?—å?ã®å ´åˆã?ã€Map ã«è¿½åŠ?—ã¾ã›ã‚“ã€? 292 * 293 * @return ファイル入力用BufferedReader 294 */ 295 private Map<String,String> getAfterMap() { 296 Map<String,String> map = new HashMap<String,String>(); 297 298 for( int i=0; i<keys.length; i++ ) { 299 if( keys[i] != null && keys[i].length() > 0 ) { // 5.6.6.1 (2013/07/12) 300 map.put( keys[i],vals[i] ); 301 } 302 } 303 return map ; 304 } 305 306 /** 307 * ã€TAGã€?通常ã¯ä½¿ã?¾ã›ã‚“)検索時ã?DB接続IDを指定ã—ã¾ã?åˆæœŸå€¤:DEFAULT)ã€? 308 * 309 * @og.tag 310 * 検索時ã?DB接続IDを指定ã—ã¾ã™ã?åˆæœŸå€¤ã¯ã€DEFAULT ã§ã™ã? 311 * 312 * @param id ãƒ??タベã?ス接続ID 313 */ 314 public void setDbid( final String id ) { 315 dbid = nval( getRequestParameter( id ),dbid ); 316 } 317 318 /** 319 * ã€TAG】èªã¿å–りå…?ƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªåã‚’æŒ?®šã—ã¾ã? 320 * (åˆæœŸå€¤:FILE_URL[={@og.value org.opengion.hayabusa.common.SystemData#FILE_URL}])ã€? 321 * 322 * @og.tag 323 * ã“ã?属æ?ã§æŒ?®šã•れるãƒ?‚£ãƒ¬ã‚¯ãƒˆãƒªã‚ˆã‚Šã€ãƒ•ァイルをèªã¿å–りã¾ã™ã? 324 * æŒ?®šæ–¹æ³•ã?ã€??常㮠fileURL 属æ?ã¨åŒæ§˜ã«ã€å?é ãŒã?'/' (UNIX) ã¾ãŸã?ã€?¼’æ–‡å—ç›®ãŒã? 325 * ":" (Windows)ã®å ´åˆã?ã€æŒ‡å®šã?URLãã?ã¾ã¾ã®ãƒ?‚£ãƒ¬ã‚¯ãƒˆãƒªã«ã€ãã?§ãªã??åˆã?ã€? 326 * fileURL = "{@USER.ID}" ã¨æŒ?®šã™ã‚‹ã¨ã€FILE_URL 属æ?ã§æŒ?®šã?フォルãƒ??下ã«ã€? 327 * ã•らã«ã€å„個人ID別ã®ãƒ•ォルãƒ??下よりã?èªã¿å–りã¾ã™ã? 328 * (åˆæœŸå€¤:シスãƒ?ƒ 定数ã®FILE_URL[={@og.value org.opengion.hayabusa.common.SystemData#FILE_URL}])ã€? 329 * 330 * @og.rev 4.0.0.0 (2007/11/20) æŒ?®šã•れãŸãƒ?‚£ãƒ¬ã‚¯ãƒˆãƒªåã?æœ?¾ŒãŒ"\"or"/"ã§çµ‚ã‚ã£ã¦ã?ªã??åˆã«ã€?/"ã‚’ä»˜åŠ ã™ã‚‹ã€? 331 * 332 * @param url ファイルURL 333 * @see org.opengion.hayabusa.common.SystemData#FILE_URL 334 */ 335 public void setFileURL( final String url ) { 336 String furl = nval( getRequestParameter( url ),null ); 337 if( furl != null ) { 338 char ch = furl.charAt( furl.length()-1 ); 339 if( ch != '/' && ch != '\\' ) { furl = furl + "/"; } 340 fileURL = StringUtil.urlAppend( fileURL,furl ); 341 } 342 } 343 344 /** 345 * ã€TAG】ファイルを作æ?ã™ã‚‹ã¨ãã?ファイルåã‚’ã‚»ãƒ?ƒˆã—ã¾ã? 346 * (åˆæœŸå€¤:FILE_FILENAME[={@og.value org.opengion.hayabusa.common.SystemData#FILE_FILENAME}])ã€? 347 * 348 * @og.tag 349 * ファイルを作æ?ã™ã‚‹ã¨ãã?ファイルåã‚’ã‚»ãƒ?ƒˆã—ã¾ã™ã? 350 * (åˆæœŸå€¤:シスãƒ?ƒ 定数ã®FILE_FILENAME[={@og.value org.opengion.hayabusa.common.SystemData#FILE_FILENAME}])ã€? 351 * 352 * @param filename ファイルå? 353 * @see org.opengion.hayabusa.common.SystemData#FILE_FILENAME 354 */ 355 public void setFilename( final String filename ) { 356 this.filename = nval( getRequestParameter( filename ),this.filename ); 357 } 358 359 /** 360 * ã€TAG】query ã®çµæžœã‚’ç”»é¢ä¸Šã«è¡¨ç¤ºã™ã‚‹ãƒ¡ãƒ?‚»ãƒ¼ã‚¸IDを指定ã—ã¾ã?åˆæœŸå€¤:MSG0040[ã€?»¶ç™»éŒ²ã—ã¾ã—ãŸ])ã€? 361 * 362 * @og.tag 363 * ã“ã“ã§ã¯ã€æ¤œç´¢çµæžœã®ä»¶æ•°ã‚?™»éŒ²ã•れãŸä»¶æ•°ã‚’ã¾ãšå?力ã—ã€? 364 * ãã?次ã«ã€ã“ã“ã§æŒ?®šã—ãŸãƒ¡ãƒ?‚»ãƒ¼ã‚¸ã‚’リソースã‹ã‚‰å–å¾—ã—㦠365 * 表示ã—ã¾ã™ã? 366 * 表示ã•ã›ãŸããªã??åˆã?, displayMsg = "" ã‚’ã‚»ãƒ?ƒˆã—ã¦ãã ã•ã„ã€? 367 * åˆæœŸå€¤ã¯ã€æ¤œç´¢ä»¶æ•°ã‚’表示ã—ã¾ã™ã? 368 * ※ ã“ã?属æ?ã«ã¯ã€ãƒªã‚¯ã‚¨ã‚¹ãƒˆå¤‰æ•°({@XXXX})ã¯ä½¿ç”¨ã§ãã¾ã›ã‚“ã€? 369 * 370 * @param id ãƒ?‚£ã‚¹ãƒ—レイã«è¡¨ç¤ºã•ã›ã‚‹ãƒ¡ãƒ?‚»ãƒ¼ã‚¸ ID 371 */ 372 public void setDisplayMsg( final String id ) { 373 if( id != null ) { displayMsg = id; } 374 } 375 376 /** 377 * ã€TAG】XMLファイルをèªã¿å–ã£ãŸå¾Œã§æŒ?®šã™ã‚‹ã‚ーをCSVå½¢å¼ã§è¤?•°æŒ?®šã—ã¾ã™ã? 378 * 379 * @og.tag 380 * XMLファイルをèªã¿å–ã£ãŸå¾Œã§ã€ãƒ‡ãƒ¼ã‚¿ã‚’変更ã§ãã¾ã™ã? 381 * 変更ã™ã‚‹ã‚«ãƒ©ãƒ?(ã‚ー)ã‚’CSVå½¢å¼ã§æŒ?®šã—ã¾ã™ã? 382 * XMLファイルã«ã‚ーãŒå˜åœ¨ã—ã¦ã?Ÿå ´åˆã?ã€vals ã§æŒ?®šã?å€¤ã«æ›¸ãæ›ãˆã¾ã™ã? 383 * ã‚ーãŒå˜åœ¨ã—ã¦ã?ªã??åˆã?ã€ã“ã“ã§æŒ?®šã™ã‚‹ã‚ーã¨å€¤ãŒã?ãƒ??ã‚¿ã¨ã—㦠384 * 追åŠ?•れã¾ã™ã? 385 * 例ãˆã°ã€ç™»éŒ²æ—¥ã‚??登録è€??ã¾ãŸã?ã€ãƒ†ãƒ³ãƒ—レートよりå„シスãƒ?ƒ ID毎㫠386 * 登録ã™ã‚‹ãªã©ã®ä½¿ã?–¹ã‚’想定ã—ã¦ã?¾ã™ã? 387 * åˆ?§£æ–¹æ³•ã?ã€CSV変数をå?ã«åˆ?§£ã—ã¦ã‹ã‚‰ã€getRequestParameter ã§å€¤ã‚’å–å¾—ã—ã¾ã™ã? 388 * ã“ã†ã—ãªã?¨ãƒ??タ自身ã«ã‚«ãƒ³ãƒžã‚’æŒã£ã¦ã?‚‹å ´åˆã«åˆ?§£ã‚’ミスる為ã§ã™ã? 389 * 390 * @param key ãƒªãƒ³ã‚¯å…ˆã«æ¸¡ã™ã‚ー 391 * @see #setVals( String ) 392 */ 393 public void setKeys( final String key ) { 394 keys = getCSVParameter( key ); 395 } 396 397 /** 398 * ã€TAG】XMLファイルをèªã¿å–ã£ãŸå¾Œã§æŒ?®šã™ã‚‹å?ã‚’CSVå½¢å¼ã§è¤?•°æŒ?®šã—ã¾ã™ã? 399 * 400 * @og.tag 401 * XMLファイルをèªã¿å–ã£ãŸå¾Œã§ã€ãƒ‡ãƒ¼ã‚¿ã‚’変更ã§ãã¾ã™ã? 402 * 変更ã™ã‚‹å€¤ã‚’CSVå½¢å¼ã§æŒ?®šã—ã¾ã™ã? 403 * XMLファイルã«ã‚ーãŒå˜åœ¨ã—ã¦ã?Ÿå ´åˆã?ã€vals ã§æŒ?®šã?å€¤ã«æ›¸ãæ›ãˆã¾ã™ã? 404 * ã‚ーãŒå˜åœ¨ã—ã¦ã?ªã??åˆã?ã€ã“ã“ã§æŒ?®šã™ã‚‹ã‚ーã¨å€¤ãŒã?ãƒ??ã‚¿ã¨ã—㦠405 * 追åŠ?•れã¾ã™ã? 406 * 例ãˆã°ã€ç™»éŒ²æ—¥ã‚??登録è€??ã¾ãŸã?ã€ãƒ†ãƒ³ãƒ—レートよりå„シスãƒ?ƒ ID毎㫠407 * 登録ã™ã‚‹ãªã©ã®ä½¿ã?–¹ã‚’想定ã—ã¦ã?¾ã™ã? 408 * åˆ?§£æ–¹æ³•ã?ã€CSV変数をå?ã«åˆ?§£ã—ã¦ã‹ã‚‰ã€getRequestParameter ã§å€¤ã‚’å–å¾—ã—ã¾ã™ã? 409 * ã“ã†ã—ãªã?¨ãƒ??タ自身ã«ã‚«ãƒ³ãƒžã‚’æŒã£ã¦ã?‚‹å ´åˆã«åˆ?§£ã‚’ミスる為ã§ã™ã? 410 * 411 * @param val keys属æ?ã«å¯¾å¿œã™ã‚‹å? 412 * @see #setKeys( String ) 413 */ 414 public void setVals( final String val ) { 415 vals = getCSVParameter( val ); 416 } 417 418 /** 419 * ã“ã?オブジェクトã?æ–?—å?表ç¾ã‚’è¿”ã—ã¾ã™ã? 420 * 基本çš?«ãƒ?ƒãƒ?‚°ç›®çš?«ä½¿ç”¨ã—ã¾ã™ã? 421 * 422 * @return ã“ã?ã‚¯ãƒ©ã‚¹ã®æ–?—å?è¡¨ç¾ 423 */ 424 @Override 425 public String toString() { 426 return org.opengion.fukurou.util.ToString.title( this.getClass().getName() ) 427 .println( "VERSION" ,VERSION ) 428 .println( "dbid" ,dbid ) 429 .println( "fileURL" ,fileURL ) 430 .println( "filename" ,filename ) 431 .println( "displayMsg" ,displayMsg ) 432 .println( "dyStart" ,dyStart ) 433 .println( "Other..." ,getAttributes().getAttribute() ) 434 .fixForm().toString() ; 435 } 436 }