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.fukurou.util; 017 018 // import java.text.DateFormat; 019 // import java.text.SimpleDateFormat; 020 // import java.util.Locale; 021 // import java.util.Calendar; 022 import java.util.ArrayList; 023 import java.util.Map; 024 import java.util.HashMap; 025 026 /** 027 * SystemParameter ã¯ã€{@XXXX} æ–?—å?ã‚’å?ç?™ã‚‹ã‚¯ãƒ©ã‚¹ã§ã™ã? 028 * ã“ã?クラスã§ã¯ã€{@XXXX} æ–?—å?ã‚’åˆ¥ã®æ–?—å?ã¨ç½®ãæ›ãˆã‚‹ã“ã¨ã‚?? 029 * 予ã‚予ç´?•れã¦ã?‚‹äºˆç´?ª?{@SYS.XXXX} æ–?—å?ã‚’ç½®ãæ›ãˆã¾ã™ã? 030 * 通常㮠{@XXXX} æ–?—å?ã®ç½®ãæ›ãˆã?ã€ã‚ーã¨å€¤ã®ãƒšã‚¢ã‚’ã?HybsEntry オブジェクト㫠031 * ã‚»ãƒ?ƒˆã—ã¦ã€ãã®é…å?ã‚’å—ã‘å–ã£ã¦å‡¦ç?—ã¾ã™ã? 032 * 033 * 以下ã?値ã¯ã‚らã‹ã˜ã‚ã?å‹•çš„ã«ä½œæ?ã•れã¾ã™ã? 034 * ・SYS.YMD ?˜byte ã®ä»Šæ—¥ã®ã‚·ã‚¹ãƒ?ƒ æ—¥ä»?yyyyMMdd) 035 * ・SYS.YMDH ?‘ï¼”byte ã®ä»Šæ—¥ã®ã‚·ã‚¹ãƒ?ƒ æ—¥æ™?yyyyMMddHHmmss) 036 * ・SYS.HMS ?–byte ã®ä»Šæ—¥ã®ã‚·ã‚¹ãƒ?ƒ 時間(HHmmss) 037 * 038 * @og.group ユーãƒ?‚£ãƒªãƒ?‚£ 039 * 040 * @version 4.0 041 * @author Kazuhiko Hasegawa 042 * @since JDK5.0, 043 */ 044 public final class SystemParameter { 045 046 // private final Map<String,String> sysMap = new HashMap<String,String>(); 047 /** 改行コーãƒ?*/ 048 public static final String CR = System.getProperty("line.separator"); // 5.1.9.0 (2010/08/01) 追åŠ? 049 050 // 5.5.7.2 (2012/10/09) HybsDateUtil を利用ã™ã‚‹ãŸã‚ã€å‰Šé™¤ã—ã¾ã™ã? 051 // private static final Map<String,String> DATE_FORMAT = new HashMap<String,String>(); // 5.3.4.0 (2011/04/01) 052 // static { 053 // DATE_FORMAT.put( "SYS.YMD" ,"yyyyMMdd" ); 054 // DATE_FORMAT.put( "SYS.YMDH" ,"yyyyMMddHHmmss" ); 055 // DATE_FORMAT.put( "SYS.HMS" ,"HHmmss" ); 056 // DATE_FORMAT.put( "DATE.YMD" ,"yyyyMMdd" ); 057 // DATE_FORMAT.put( "DATE.Y2MD" ,"yyMMdd" ); 058 // DATE_FORMAT.put( "DATE.YM" ,"yyyyMM" ); 059 // DATE_FORMAT.put( "DATE.HMS" ,"HHmmss" ); 060 // DATE_FORMAT.put( "DATE.YMDHMS" ,"yyyyMMddHHmmss" ); 061 // DATE_FORMAT.put( "DATE.YMDF" ,"yyyy/MM/dd" ); 062 // DATE_FORMAT.put( "DATE.Y2MDF" ,"yy/MM/dd" ); 063 // DATE_FORMAT.put( "DATE.YMF" ,"yyyy/MM" ); 064 // DATE_FORMAT.put( "DATE.HMSF" ,"HH:mm:ss" ); 065 // DATE_FORMAT.put( "DATE.YMDHMSF" ,"yyyy/MM/dd/ HH:mm:ss" ); 066 // DATE_FORMAT.put( "DATE.EEE" ,"EEE" ); 067 // } 068 069 private final String original ; 070 // 5.5.7.2 (2012/10/09) Calendarオブジェクトã‹ã‚‰ã?String時刻ã«å¤‰æ›´ã€? 071 // private final Calendar rightNow; // 5.3.4.0 (2011/04/01) 072 private final String RIGHT_NOW = HybsDateUtil.getDate( "yyyyMMdd" ); 073 074 private final String[] clms; 075 private final String[] formats; 076 077 /** 078 * {@XXXX} ã®ç‰¹æ®Šæ–‡å—ã‚’å«ã‚?–‡å—å?ã‚’ã?ç½®ãæ›ãˆã¾ã™ã? 079 * 対象外ã?æ–?—å?ã¯ã€ãã®ã¾ã¾ã€æ®‹ã•れã¾ã™ã? 080 * 081 * @og.rev 5.1.8.0 (2010/07/01) パã?ス方法見直ã?StringTokenizerã§ã¯ã€{@XXXX}ãŒé?ç¶šã—ã¦ã‚ã‚‹å ´åˆã«å¯¾å¿œã§ããªã? 082 * @og.rev 5.3.2.0 (2011/02/01) original ãƒ??ã‚¿ã‚’ã?パã?ã‚¹çµæžœã‚’利用ã™ã‚‹ã‚ˆã†ã«ä¿®æ£ã™ã‚‹ã€? 083 * @og.rev 5.3.4.0 (2011/04/01) {@DATE.XXXX} ã‚’å?ç?§ãるよã†ã«æ©Ÿè?追åŠ? 084 * @og.rev 5.3.5.0 (2011/05/01) {@SYS.XXXX} ã¯ã€å»?¢ 085 * @og.rev 5.5.7.2 (2012/10/09) rightNow ã‚’Calendarオブジェクãƒ?ã§ã¯ãªãã?String時刻ã¨ã—ã¾ã™ã? 086 * @og.rev 5.5.7.2 (2012/10/09) HybsDateUtil を利用ã™ã‚‹ã‚ˆã†ã«ä¿®æ£ã—ã¾ã™ã? 087 * 088 * @param orig 変æ›ã™ã‚‹æ–?—å?(オリジナル) 089 */ 090 public SystemParameter( final String orig ) { 091 // rightNow = Calendar.getInstance(); 092 093 if( orig == null || orig.length() == 0 || orig.indexOf( "{@" ) < 0 ) { 094 clms = null; 095 formats = null; 096 original = orig; // 5.3.2.0 (2011/02/01) 097 } 098 else { 099 StringBuilder buf = new StringBuilder(orig.length()); // 5.3.2.0 (2011/02/01) 100 101 ArrayList<String> fmtList = new ArrayList<String>(); 102 ArrayList<String> clmList = new ArrayList<String>(); 103 104 // 5.1.8.0 (2010/07/01) パã?ス方法見直ã? 105 int start = 0; 106 int index = orig.indexOf( "{@" ); 107 String val ; 108 while( index >= 0 ) { 109 // buf.append( orig.substring( start, index ) ); // 5.3.2.0 (2011/02/01) 110 // fmtList.add( orig.substring( start, index ) ); 111 val = orig.substring( start, index ); // 5.3.4.0 (2011/04/01) 112 buf.append( val ); 113 fmtList.add( val ); 114 int end = orig.indexOf( '}',index ); 115 if( end < 0 ) { 116 String errMsg = "{@ 㨠} ã¨ã®å¯¾å¿œé–¢ä¿‚ãŒãšã‚Œã¦ã?¾ã™ã?" + CR 117 + "str=[" + orig + "] : index=" + index ; 118 throw new RuntimeException( errMsg ); 119 } 120 String param = orig.substring( index+2,end ); 121 // if( param.startsWith( "SYS." ) || param.startsWith( "DATE." ) ) { 122 if( param.startsWith( "DATE." ) ) { // 5.3.5.0 (2011/05/01) {@SYS.XXXX} ã¯ã€å»?¢ 123 // val = getDateFormat( param ); 124 val = getDateFormat( param.substring( 5 ) ); // 5.5.7.2 (2012/10/09) HybsDateUtil を利用時㫠"DATE." ã¯ä¸è¦? 125 clmList.add( null ); // パã?ス下å?åˆã?ã€clmList ã¯ã€ä½¿ç”¨ã—ãªã?? 126 buf.append( val ); 127 } 128 else { 129 clmList.add( param ); 130 buf.append( "{@" ).append( param ).append( "}" ); // å…??ã¾ã¾ã®æ–?—å?を生æˆ? 131 } 132 start = end+1; 133 index = orig.indexOf( "{@",start ); 134 } 135 // buf.append( orig.substring( start, orig.length() ) ); // 5.3.2.0 (2011/02/01) 136 // fmtList.add( orig.substring( start, orig.length() ) ); 137 val = orig.substring( start, orig.length() ); // 5.3.4.0 (2011/04/01) 138 buf.append( val ); 139 fmtList.add( val ); 140 141 original = buf.toString(); // 5.3.2.0 (2011/02/01) 142 if( original.indexOf( "{@" ) < 0 ) { 143 clms = null; 144 formats = null; 145 } 146 else { 147 clms = clmList.toArray( new String[clmList.size()] ); 148 formats = fmtList.toArray( new String[fmtList.size()] ); 149 } 150 } 151 } 152 153 /** 154 * 日付関係ã?æƒ??を簡易的ã«å–り出ã™å?ç?‚’行ã„ã¾ã™ã? 155 * 156 * ã“れã¯ã€{@DATE.XXXX AA BB} 引数処ç?‚’ãŠã“ãªã?Ÿã‚ã?ã€ã‚µãƒã?トメソãƒ?ƒ‰ã§ã™ã? 157 * 引数ã¯ã€?DATE.XXXX AA BB" ã¨ã?†çŠ¶æ…‹ã§å—ã‘å–りã¾ã™ã? 158 * "XXXX" ã¯ã€æ—¥ä»˜å?ç?‚’行ã†ã‚ーæ–?—å?ã§äºˆç´?ªžã«ãªã£ã¦ã?¾ã™ã? 159 * ・YMDã€???šï¼˜æ–‡å—ã?日付データ(200Xå¹´XXæœ?Xæ—¥)を扱ã?¾ã™ã? 160 * ・Y2MDã€??šï¼–æ–‡å—ã?日付データ(0Xå¹´XXæœ?Xæ—¥)を扱ã?¾ã™ã? 161 * ・YMã€?? ?šï¼–æ–‡å—ã?日付データ(200Xå¹´XXæœ?を扱ã?¾ã™ã? 162 * ・HMSã€???šï¼–æ–‡å—ã?時刻ãƒ??ã‚¿(XX時XXåˆ?Xç§?を扱ã?¾ã™ã? 163 * ・YMDHMS ?šï¼‘4文å—ã?日付データ(200Xå¹´XXæœ?Xæ—¥XX時XXåˆ?Xç§?を扱ã?¾ã™ã? 164 * ・EEEã€???šæ›œæ—¥ã‚’ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆãƒã‚±ãƒ¼ãƒ«ã§è¡¨ç¤ºã—ã¾ã™ã? 165 * 166 * F付ãã¯ã€ãƒ•ォーマットã•ã‚ŒãŸæ—¥ä»˜ã‚’è¿”ã—ã¾ã™ã? 167 * ・YMDFã€??šï¼‘ï¼æ–‡å—ã?日付表ç¾(yyyy/MM/dd)を扱ã?¾ã™ã? 168 * ・Y2MDFã€?¼šï¼˜æ–‡å—ã?日付表ç¾(yy/MM/dd)を扱ã?¾ã™ã? 169 * ・YMFã€???šï¼—æ–‡å—ã?日付表ç¾(yyyy/MM)を扱ã?¾ã™ã? 170 * ・HMSFã€??šï¼˜æ–‡å—ã?時刻表ç¾(HH:mm:ss)を扱ã?¾ã™ã? 171 * ・YMDHMSF?šï¼‘9文å—ã?日付表ç¾(yyyy/MM/dd HH:mm:ss)を扱ã?¾ã™ã? 172 * ・MDFã€???šï¼•æ–‡å—ã?月日表ç¾(MM/dd)を扱ã?¾ã™ã? 173 * ・MDEFã€??šï¼•æ–‡å—ï¼‹æ›œæ—¥ã®æœˆæ—¥è¡¨ç¾(MM/dd(EEE))を扱ã?¾ã™ã? 174 * ・MD2Fã€??šå’Œæš¦ã®æœˆæ—¥è¡¨ç¾(MMæœ?dæ—¥)を扱ã?¾ã™ã?(5.5.5.2 追åŠ? 175 * ・GYMDFã€?¼šå’Œæš¦ã®å¹´æœˆæ—¥è¡¨ç¾(GGGGyyyyå¹´MMæœ?dæ—¥)を扱ã?¾ã™ã? 176 * ・G2YMDF ?šå’Œæš¦ã®æ—¥ä»˜è¡¨ç¾(Gyyyy/MM/dd)を扱ã?¾ã™ã? 177 * ・GYMFã€??šå’Œæš¦ã®å¹´æœˆè¡¨ç¾(GGGGyyyyå¹´MMæœ?を扱ã?¾ã™ã? 178 * ・GYFã€???šå’Œæš¦ã®å¹´è¡¨ç¾(GGGGyyyy)を扱ã?¾ã™ã? 179 * 180 * AA 引数ã¯ã€åŸºæº–ã¨ãªã‚‹æ—¥ä»˜ã‚’ã€YYYYMMDDå½¢å¼ã§æŒ?®šã—ã¾ã™ã?ç„¡æŒ?®šã?å ´åˆã?ã€? 181 * 処ç?™‚刻を基準ã«ã—ãŸã€åŒä¸?‚¿ã‚°å†?§ã®åŒä¸?—¥ä»?年月日時å?ç§?を使用ã—ã¦å€¤ã‚’å–å¾—ã—ã¾ã™ã? 182 * æŒ?®šã§ãる日付ã?ã€å¿?šã€YYYYMMDDå½¢å¼ã¨ã—ã?時å?ç§’ã? ゼãƒã«ãƒªã‚»ãƒ?ƒˆã•れãŸçŠ¶æ…‹ã«ãªã‚Šã¾ã™ã? 183 * AA ã«ã¯ã€æ•°å—ã§å§‹ã¾ã‚?20050701ãªã©)実日付ã¨@ã§å§‹ã¾ã‚‹ãƒ‘ラメータãŒä½¿ç”¨ã§ãã¾ã™ã? 184 * ã“ã?パラメータã®å€¤ã¯ã€YYYYMMDDå½¢å¼ã?æ•°å—ã‹ã€null(ã¾ãŸã?ゼãƒã‚¹ãƒˆãƒªãƒ³ã‚°)ã§ã™ã?nullã® 185 * å ´åˆã?ã€ãªã«ã‚‚指定ã•れã¦ã?ªã?¨åˆ¤æ–ã—ã¦ã€å?ç?™‚刻を使用ã—ã¾ã™ã? 186 * 第?’引数ã¯ã€?æ•°å—ã‹ã€@)以外ã?å ´åˆã?ã€çœç•¥ã•れãŸã¨åˆ¤æ–ã•れã¾ã™ã? 187 * 188 * BB 引数ã¯ã€æ—¥ä»˜ã«ã¤ã?¦ã®åŠ?¸›ç®—å?ç?‚’行ã„ã¾ã™ã? 189 * çœç•¥ã™ã‚‹ã¨ã€ãªã«ã‚‚åŠ æ¸›ç®—å?ç?‚’行ã„ã¾ã›ã‚“ã€? 190 * ・SD ?šå½“æœˆã®æœ??ã®æ—¥ä»˜ã«ã‚»ãƒ?ƒˆã—ã¾ã™ã?(当月?‘æ—¥) 191 * ・ED ?šå½“æœˆã®æœ?¾Œã?日付ã«ã‚»ãƒ?ƒˆã—ã¾ã™ã?(当月月末) 192 * ・SW ?šæ—¥ä»˜å?ç??週åˆã‚(月曜日)ã«ã‚»ãƒ?ƒˆã—ã¾ã™ã?日付ã?当日よりå‰ã«ç§»å‹•ã—ã¾ã™ã? 193 * ・EW ?šæ—¥ä»˜å?ç??週末(日曜日)ã«ã‚»ãƒ?ƒˆã—ã¾ã™ã?日付ã?当日より後ã‚ã«ç§»å‹•ã—ã¾ã™ã? 194 * ・H1 ??HXXX ?šæ™‚ã‚’æŒ‡å®šã?åˆ? ã‘é?ã‚ã¾ã™ã?H1ãªã‚‰ï¼‘時間後ã?H24 ãªã‚‰ï¼’4時間å¾?5.5.5.6 (2012/08/31) 追åŠ? 195 * ・D1 ??DXXX ?šæ—¥ã‚’æŒ‡å®šã?åˆ? ã‘é?ã‚ã¾ã™ã?D1ãªã‚‰ç¿Œæ—¥ã€D200 ãªã‚?00æ—¥å¾? 196 * ・M1 ??MXXX ?šæœˆã‚’æŒ‡å®šã?åˆ? ã‘é?ã‚ã¾ã™ã?M1ãªã‚‰ç¿Œæœˆã€M6 ãªã‚‰åŠå¹´å¾? 197 * ・BSD ?šå?月ã?æœ??ã®æ—¥ä»˜ã«ã‚»ãƒ?ƒˆã—ã¾ã™ã?(先月?‘æ—¥)(5.5.5.2 追åŠ? 198 * ・BED ?šå?月ã?æœ?¾Œã?日付ã«ã‚»ãƒ?ƒˆã—ã¾ã™ã?(先月月末)(5.5.5.2 追åŠ? 199 * ・ASD ?šç¿Œæœˆã®æœ??ã®æ—¥ä»˜ã«ã‚»ãƒ?ƒˆã—ã¾ã™ã?(翌月?‘æ—¥)(5.5.5.2 追åŠ? 200 * ・AED ?šç¿Œæœˆã®æœ?¾Œã?日付ã«ã‚»ãƒ?ƒˆã—ã¾ã™ã?(翌月月末)(5.5.5.2 追åŠ? 201 * 202 * @og.rev 5.3.4.0 (2011/04/01) æ–°è¦è¿½åŠ? 203 * @og.rev 5.5.7.2 (2012/10/09) HybsDateUtil を利用ã™ã‚‹ã‚ˆã†ã«ä¿®æ£ã—ã¾ã™ã? 204 * @og.rev 5.5.8.2 (2012/11/09) prmA ã®åˆ¤å®šã«ã€null ã¨ ã‚¼ãƒæ–?—å?を判定ã™ã‚‹ã? 205 * 206 * @param value パラメータ(引数ã¯ã€?DATE.XXXX AA BB" ãªã©ã¨ã?†çжæ…? 207 * 208 * @return メãƒ?‚»ãƒ¼ã‚¸æƒ?? 209 */ 210 private String getDateFormat( final String value ) { 211 // Calendar now = (Calendar)rightNow.clone(); 212 213 String[] vals = StringUtil.csv2Array( value,' ' ); 214 215 String key = vals[0].trim() ; 216 217 String prmA = null; // 5.5.7.2 (2012/10/09) 引数ã¨ã—ã¦æ¸¡ã™ã?ã§ä¸Šä½ã§åˆæœŸåŒ–ã—ã¦ãŠãã€? 218 String prmB = null; 219 if( vals.length == 3 ) { prmB = vals[2].trim(); } 220 221 if( vals.length > 1 ) { 222 // String prmA = vals[1].trim(); 223 prmA = vals[1].trim(); 224 if( prmA.startsWith( "@" ) ) { 225 prmA = getDateFormat( prmA.substring(1) ); 226 } 227 228 // prmA ã®@è§£æžå¾Œã??˜ã‚±ã‚¿ä»¥ä¸‹ã?å ´åˆã?ã€ã‚³ãƒžãƒ³ãƒ‰ã¨ã¿ãªã—ã?prmB ã«ã‚»ãƒ?ƒˆã—ã?自身ã¯ã€null ã‚’ã‚»ãƒ?ƒˆã™ã‚‹ã€? 229 if( prmA != null && prmA.length() < 8 ) { 230 prmB = prmA; 231 prmA = null; 232 } 233 // if( prmA != null && prmA.length() > 0 ) { 234 // if( prmA.length() == 8 && prmA.charAt(0) >= '0' && prmA.charAt(0) <= '9' ) { 235 // int yy = Integer.parseInt( prmA.substring( 0,4 ) ); 236 // int mm = Integer.parseInt( prmA.substring( 4,6 ) ) - 1; 237 // int dd = Integer.parseInt( prmA.substring( 6,8 ) ); 238 // now.clear(); 239 // now.set( yy,mm,dd ); 240 // } 241 // else { 242 // prmB = prmA; 243 // } 244 // } 245 } 246 247 // if( prmA == null ) { prmA = RIGHT_NOW; } // 5.5.7.2 (2012/10/09) åˆæœŸå€¤ã¨ã—ã¦ã€è¨å®šã™ã‚‹ã? 248 if( prmA == null || prmA.isEmpty() ) { prmA = RIGHT_NOW; } // 5.5.8.2 (2012/11/09) null ã¨ ã‚¼ãƒæ–?—å?を判定ã™ã‚‹ã? 249 return HybsDateUtil.getDateFormat( key,prmA,prmB ); // 5.5.7.2 (2012/10/09) HybsDateUtil を利用ã™ã‚‹ 250 251 // if( prmB != null ) { 252 // if( "SD".equals( prmB ) ) { now.set( Calendar.DATE,1 ); } 253 // else if( "ED".equals( prmB ) ) { now.set( Calendar.DATE,now.getActualMaximum( Calendar.DATE ) ); } 254 // else if( "SM".equals( prmB ) ) { now.set( Calendar.MONTH,Calendar.JANUARY ); } 255 // else if( "EM".equals( prmB ) ) { now.set( Calendar.MONTH,Calendar.DECEMBER ); } 256 // else if( "SW".equals( prmB ) ) { 257 // // 日付型æ–?—å?入力データã®é–‹å§‹æ—¥ã‚’月曜日ã«ã‚»ãƒ?ƒˆã—ã¾ã™ã? 258 // // SUNDAY=1 , MONDAY=2 ã«ãªã‚Šã¾ã™ã?月曜日ã¨ã®å·®ã?‘ã€å‰ã«æˆ»ã—ã¾ã™ã? 259 // // æŒ?®šæ—¥ãŒæ—¥æ›œæ—¥ã®å ´åˆã?ã€æœˆæ›œæ—¥ã¾ã§æˆ»ã—ã¾ã™ã? 260 // int shu = now.get( Calendar.DAY_OF_WEEK ) - Calendar.MONDAY ; 261 // 262 // if( shu > 0 ) { now.add( Calendar.DATE, -shu ); } 263 // else if( shu < 0 ) { now.add( Calendar.DATE, -6 ); } // 日曜日ã®å‡¦ç? 264 // 265 // } 266 // else if( "EW".equals( prmB ) ) { 267 // // 日付型æ–?—å?入力データã®çµ‚äº?—¥ã‚’日曜日ã«ã‚»ãƒ?ƒˆã—ã¾ã™ã? 268 // // SUNDAY=1 , MONDAY=2 ã«ãªã‚Šã¾ã™ã?日曜日ã«ãªã‚‹ã‚ˆã?«ã€å?ã«é€²ã‚ã¾ã™ã? 269 // int shu = now.get( Calendar.DAY_OF_WEEK ) ; 270 // 271 // if( shu != Calendar.SUNDAY ) { now.add( Calendar.DATE, 8-shu ); } 272 // } 273 // else if( prmB.startsWith( "D" ) && prmB.length() > 1 ) { 274 // int day = Integer.parseInt( prmB.substring( 1 ) ); 275 // now.add( Calendar.DATE, day ); 276 // } 277 // else if( prmB.startsWith( "M" ) && prmB.length() > 1 ) { 278 // int month = Integer.parseInt( prmB.substring( 1 ) ); 279 // now.add( Calendar.MONTH , month ); 280 // } 281 // else { 282 // String errMsg = "日付変数パラメータã«ã€ä¸æ£ãªå€¤ãŒæŒ‡å®šã•れã¾ã—ãŸã€‚以下ã?ä¸ã‹ã‚‰æŒ?®šã—ãªãŠã—ã¦ãã ã•ã„ã€? 283 // + "æŒ?®šå¯èƒ½?š[SD,ED,SM,EM,SW,EW,D1?žDXXX,M1?žMXXX]" 284 // + " value=[" + prmB + "]" ; 285 // throw new RuntimeException( errMsg ); 286 // } 287 // } 288 // 289 // String format = DATE_FORMAT.get( key ); 290 // if( format == null ) { 291 // String errMsg = "日付変数ã‚ーã«ã€ä¸æ£ãªå€¤ãŒæŒ‡å®šã•れã¾ã—ãŸã€‚以下ã?ä¸ã‹ã‚‰æŒ?®šã—ãªãŠã—ã¦ãã ã•ã„ã€? 292 // + "æŒ?®šå¯èƒ½?š[" + DATE_FORMAT.keySet().toString() + "] , " 293 // + " key=[" + value + "]" ; 294 // throw new RuntimeException( errMsg ); 295 // } 296 // 297 // DateFormat formatter = new SimpleDateFormat( format,Locale.JAPAN ); 298 // 299 // return formatter.format( now.getTime() ); 300 } 301 302 /** 303 * {@XXXX} ã®ç‰¹æ®Šæ–‡å—ã‚’å«ã‚?–‡å—å?ã‚’ã?ç½®ãæ›ãˆã¾ã™ã? 304 * 対象外ã?æ–?—å?ã¯ã€ãã®ã¾ã¾ã€æ®‹ã•れã¾ã™ã? 305 * 306 * @og.rev 5.3.4.0 (2011/04/01) 判定方æ³?ä¿®æ£ 307 * 308 * @param entry ç½®æ›æ–‡å—å?ã®ã‚ーã¨å€¤ã®ãƒšã‚¢ã‚’管ç?—ã¦ã?‚‹Entryオブジェクトã?é…å? 309 * 310 * @return ç½®æ›å¾Œã?æ–?—å? 311 */ 312 public String replace( final HybsEntry[] entry ) { 313 // if( orginal == null ) { return null; } 314 // int index = orginal.indexOf( "{@" ); 315 // if( index < 0 ) { return orginal; } 316 // if( formats == null || clms == null ) { return original; } 317 if( formats == null ) { return original; } // 5.3.4.0 (2011/04/01) 判定方æ³?ä¿®æ£ 318 if( entry == null || entry.length == 0 ) { return original; } 319 320 // HybsEntry[] ãƒ??ã‚¿ã‚’ã?Mapã«ãƒžãƒƒãƒ”ングã—ã¾ã™ã? 321 Map<String, String> sysMap = new HashMap<String, String>(); 322 // if( entry != null ) { 323 int size = entry.length; 324 for( int i=0; i<size; i++ ) { 325 sysMap.put( entry[i].getKey(),entry[i].getValue() ); 326 } 327 // } 328 return replace( sysMap ); 329 } 330 331 /** 332 * {@XXXX} ã®ç‰¹æ®Šæ–‡å—ã‚’å«ã‚?–‡å—å?ã‚’ã?ç½®ãæ›ãˆã¾ã™ã? 333 * 対象外ã?æ–?—å?ã¯ã€ãã®ã¾ã¾ã€æ®‹ã•れã¾ã™ã? 334 * 335 * @param map ç½®æ›æ–‡å—å?ã®ã‚ーã¨å€¤ã®ãƒšã‚¢ã‚’管ç?—ã¦ã?‚‹Mapオブジェクãƒ? 336 * 337 * @return ç½®æ›å¾Œã?æ–?—å? 338 */ 339 public String replace( final Map<String,String> map ) { 340 // if( formats == null || clms == null ) { return original; } 341 if( formats == null ) { return original; } // 5.3.4.0 (2011/04/01) 判定方æ³?ä¿®æ£ 342 // if( map == null || map.size() == 0 ) { return original; } 343 if( map == null || map.isEmpty() ) { return original; } 344 345 StringBuilder sb = new StringBuilder(); 346 for( int i=0; i<formats.length; i++ ) { 347 sb.append( formats[i] ); 348 if( i < clms.length && clms[i] != null ) { // 5.3.4.0 (2011/04/01) nullãƒã‚§ãƒ?‚¯è¿½åŠ? 349 sb.append( StringUtil.nval( map.get( clms[i] ), "" ) ); 350 } 351 } 352 353 return sb.toString(); 354 } 355 356 /** 357 * フォーマットをパã?スã—ãŸçµæžœã‹ã‚‰ã€ã‚«ãƒ©ãƒ?¸?¦§ã‚’é?列形å¼ã§è¿”ã—ã¾ã™ã? 358 * 359 * @og.rev 5.1.7.0 (2010/06/01) æ–°è¦ä½œæ? 360 * 361 * @return カラãƒ??åˆ? 362 */ 363 public String[] getColumns() { 364 if( clms == null ) { return new String[0]; } 365 return clms.clone(); 366 } 367 368 /** 369 * フォーマットをパã?スã—ãŸçµæžœã‹ã‚‰ã€ãƒ•ォーマットä¸?¦§ã‚’é?列形å¼ã§è¿”ã—ã¾ã™ã? 370 * 371 * @og.rev 5.1.7.0 (2010/06/01) æ–°è¦ä½œæ? 372 * 373 * @return フォーマットé?åˆ? 374 */ 375 public String[] getFormats() { 376 if( formats == null ) { return new String[0]; } 377 return formats.clone(); 378 } 379 }