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 */ 016package org.opengion.hayabusa.db; 017 018import org.opengion.fukurou.util.Attributes; 019import org.opengion.hayabusa.common.HybsSystem; 020import org.opengion.hayabusa.resource.CodeData; 021import org.opengion.hayabusa.resource.ColumnData; 022import org.opengion.hayabusa.resource.LabelData; 023 024/** 025 * DBColumnオブジェクトを構築する為の 引数を持っているデータクラスです。 026 * このクラス自身は、書き換え可能ですが、DBColumnオブジェクトは、読込み専用の 027 * オブジェクトのため、別のオブジェクトを作成したい場合は、このクラスを 028 * DBColumnオブジェクトより取得し、内容を書き換えて、再度 DBColumnオブジェクトを 029 * 構築することになります。 030 * 031 * @og.rev 3.4.0.0 (2003/09/01) 表示パラメータ、編集パラメータ、文字パラメータの追加。 032 * @og.group テーブル管理 033 * 034 * @version 4.0 035 * @author Kazuhiko Hasegawa 036 * @since JDK5.0, 037 */ 038public final class DBColumnConfig { 039 /** カラム配列データ */ 040 private String[] clmData; 041 /** ラベルデータ */ 042 private LabelData labelData; 043 /** コードデータ */ 044 private CodeData codeData; 045 046 // 6.4.5.2 (2016/05/06) rendAttri,editAttri は、not null にします。 047 /** 表示用レンデラー追加用属性 */ 048 private final Attributes rendAttri = new Attributes(); 049 /** 編集用エディター追加用属性 */ 050 private final Attributes editAttri = new Attributes(); 051 052 /** 言語 */ 053 private String lang; 054 /** カラムが書き込み可能かどうか */ 055 private String writable = "true"; 056 /** 3.5.5.7 (2004/05/10) メニューに空の選択リストを追加するかどうか */ 057 private boolean addNoValue; 058 /** 6.0.4.0 (2014/11/28) キー:ラベル形式で表示するかどうか */ 059 private String addKeyLabel; 060 /** 6.2.3.0 (2015/05/01) */ 061 private boolean writeKeyLabel; 062 /** データベース接続先ID */ 063 private String dbid; 064 /** 5.4.3.4 (2012/01/12) カラムリソースから作成されたかどうか(再設定可能) */ 065 private boolean official; 066 067 /** 4.3.6.0 (2009/04/01) イベントカラム */ 068 private String eventColumn; 069 /** 6.3.3.0 (2015/07/25) eventValue 追加 */ 070 private String eventValue; 071 /** 4.3.6.0 (2009/04/01) {@XXXX}を変換していないパラメータ */ 072 private String rawEditParameter; 073 /** 5.1.7.0 (2010/06/01) 動的プルダウン実装見直し */ 074 private String rawRendParameter; 075 /** 5.1.9.0 (2010/08/01) 動的プルダウン不具合対応 */ 076 private String eventURL; 077 078 /** 5.5.1.0 (2012/04/03) MENU系でSLABELを利用するかどうか */ 079 private String useSLabel = "auto"; 080 /** 5.6.2.3 (2013/03/22) 非表示文字の設定 */ 081 private String noDisplayVal; 082 083 // 6.0.4.0 (2014/11/28) codeKeyVal は、KBMENU として、param にセットする為、廃止 084 085 /** 5.7.6.3 (2013/05/23) ファイルレンデラ出力時のフラグ */ 086 private boolean stringOutput = HybsSystem.sysBool( "USE_STRING_EXCEL_OUTPUT" ); 087 /** 7.0.1.5 (2018/12/10) writeCtrlで出力時のアンダーバー削除 */ 088 private boolean writeCtrl; 089 /** 日付送り戻し機能の有効/無効 8.1.2.3 (2022/05/20) */ 090 private boolean useDateFeed = true; 091 092 /** 093 * コンストラクター 094 * 引数は、すべて文字列型で渡します。 095 * 096 * @og.rev 3.4.0.0 (2003/09/01) 表示パラメータ、編集パラメータ、文字パラメータの追加。 097 * @og.rev 3.5.5.7 (2004/05/10) CodeSelection を、codeName を元に構築できるように設定します。 098 * @og.rev 3.6.0.3 (2004/10/05) dbTypePrm は、editorPrm と無関係に設定します。 099 * @og.rev 3.6.0.7 (2004/11/06) カラムリソースから作成されたかどうか(official属性追加) 100 * @og.rev 5.1.6.0 (2010/05/01) DBTypeの初期値を "XK" とします。 101 * @og.rev 5.7.3.0 (2014/02/07) labelData の null 対応 102 * @og.rev 6.2.0.0 (2015/02/27) フィールドサイズ 追加(VIEW_LENGTHと分離して、役割を明確にする) 103 * 104 * @param lang 言語 105 * @param name カラム名 106 * @param labelData カラムのラベルデータオブジェクト 107 * @param className カラムのクラスを文字列にした名称 108 * @param fieldSize 入力枠サイズ // 6.2.0.0 (2015/02/27) 109 * @param viewLength カラムの表示文字数 // 6.2.0.0 (2015/02/27) 110 * @param maxlength カラムの最大桁数 111 * @param writable カラムが書き込み可能かどうか 112 * @param renderer データの表示用レンデラー 113 * @param editor データの編集用エディター 114 * @param codeData メニューの項目オブジェクト 115 * @param dbType データのタイプ 116 * @param dataDef データのデフォルト値 117 * @param rendererPrm 表示用レンデラーのパラメータ 118 * @param editorPrm 編集用エディターのパラメータ 119 * @param dbTypePrm データのタイプのパラメータ 120 * @param roles カラムロール 121 * @param official 正規カラムかどうか 122 * @param dbid データベース接続先ID 123 */ 124 public DBColumnConfig( final String lang , 125 final String name , 126 final LabelData labelData , // 4.0.0 (2005/01/31) 127 final String className , 128 final String fieldSize , // 6.2.0.0 (2015/02/27) 129 final String viewLength , // 6.2.0.0 (2015/02/27) 130 final String maxlength , // 3.5.5.5 (2004/04/23) 131 final String writable , 132 final String renderer , 133 final String editor , 134 final CodeData codeData , // 4.0.0 (2005/01/31) 135 final String dbType , 136 final String dataDef , 137 final String rendererPrm , 138 final String editorPrm , 139 final String dbTypePrm , 140 final String roles , // 4.0.0 (2005/11/30) 141 final boolean official , // 3.6.0.7 (2004/11/06) 142 final String dbid ) { 143 clmData = new String[ColumnData.DATA_SIZE]; 144 clmData[ColumnData.CLM ] = name ; 145 clmData[ColumnData.CLS_NAME ] = className ; 146 clmData[ColumnData.FIELD_SIZE ] = fieldSize ; // 6.2.0.0 (2015/02/27) 147 clmData[ColumnData.VIEW_LENGTH ] = viewLength ; // 6.2.0.0 (2015/02/27) 148 clmData[ColumnData.USE_LENGTH ] = maxlength ; 149 clmData[ColumnData.RENDERER ] = renderer ; 150 clmData[ColumnData.EDITOR ] = editor ; 151 clmData[ColumnData.DBTYPE ] = dbType ; 152 clmData[ColumnData.DATA_DEFAULT ] = dataDef ; 153 clmData[ColumnData.RENDERER_PARAM] = rendererPrm; 154 clmData[ColumnData.TYPE_PARAM ] = dbTypePrm ; 155 clmData[ColumnData.ROLES ] = roles ; // 4.0.0 (2005/11/30) 156 157 this.lang = lang ; 158 // 5.7.3.0 (2014/02/07) labelData の null 対応 159 // 6.4.1.1 (2016/01/16) PMD refactoring. Avoid if (x != y) ..; else ..; 160 this.labelData = labelData == null ? new LabelData( name ) : labelData ; 161 this.writable = writable ; 162 this.codeData = codeData ; // 4.0.0 (2005/01/31) 163 this.dbid = dbid ; // 4.0.0 (2005/01/31) 164 165 if( "=".equals(editorPrm) ) { 166 clmData[ColumnData.EDITOR_PARAM ] = rendererPrm ; 167 } 168 else { 169 clmData[ColumnData.EDITOR_PARAM ] = editorPrm ; 170 } 171 172 // 5.1.6.0 (2010/05/01) DBTypeの初期値を "XK" とします。 173 if( dbType == null ) { 174 clmData[ColumnData.DBTYPE ] = DBType.DEF_TYPE; 175 } 176 177 this.official = official; // 3.6.0.7 (2004/11/06) 178 } 179 180 /** 181 * 簡易コンストラクター 182 * キーのみを設定して作成する、簡易的な DBColumnConfig オブジェクトを 183 * 作成します。 184 * 185 * @og.rev 3.4.0.0 (2003/09/01) 表示パラメータ、編集パラメータ、文字パラメータの追加。 186 * @og.rev 3.6.0.7 (2004/11/06) カラムリソースから作成されたかどうか(official属性追加) 187 * @og.rev 5.1.6.0 (2010/05/01) DBTypeの初期値を "XK" とします。 188 * @og.rev 5.7.3.0 (2014/02/07) labelData の null 対応 189 * @og.rev 6.2.0.0 (2015/02/27) フィールドサイズ 追加(VIEW_LENGTHと分離して、役割を明確にする) 190 * @og.rev 6.2.3.0 (2015/05/01) もう一つのコンストラクタを呼びように変更。 191 * 192 * @param name カラム名 193 */ 194 public DBColumnConfig( final String name ) { 195 this( "ja" , // lang 196 name , // name 197 new LabelData( name ) , // labelData 198 "VARCHAR2" , // className 199 null , // fieldSize 入力枠サイズ 200 null , // viewLength カラムの表示文字数 201 "60" , // maxlength カラムの最大桁数 202 "true" , // writable 203 null , // renderer 204 null , // editor 205 null , // codeData 206 DBType.DEF_TYPE , // dbType 207 "" , // dataDef 208 "" , // rendererPrm 209 "" , // editorPrm 210 "" , // dbTypePrm 211 null , // roles 212 false , // official 213 null // dbid 214 ); 215 } 216 217 /** 218 * 言語を返します。 219 * 220 * @return 言語 221 */ 222 public String getLang() { 223 return lang; 224 } 225 226 /** 227 * 言語を設定します。 228 * 229 * @param lang 言語 230 */ 231 public void setLang( final String lang ) { 232 this.lang = lang; 233 } 234 235 /** 236 * カラム名を返します。 237 * 238 * @return カラム名 239 */ 240 public String getName() { 241 return clmData[ColumnData.CLM]; 242 } 243 244 /** 245 * カラム名を設定します。 246 * 247 * @param name カラム名 248 */ 249 public void setName( final String name ) { 250 clmData[ColumnData.CLM] = name; 251 } 252 253 /** 254 * ラベル名を返します。 255 * 256 * @return ラベル名 257 */ 258 public String getLabel() { 259 return ( labelData == null ) ? clmData[ColumnData.CLM] : labelData.getLabel() ; 260 } 261 262 /** 263 * カラムのクラスを文字列にした名称を返します。 264 * 265 * @return カラムのクラスを文字列にした名称 266 */ 267 public String getClassName() { 268 return clmData[ColumnData.CLS_NAME]; 269 } 270 271 /** 272 * 現在の値と、新しい値をチェックして、条件に応じて新しい値を返します。 273 * 274 * "既存値:設定値" という指定を行えば、既存値を持っている場合のみ、設定値に置き換えます。 275 * 上位で、val が null チェックを入れていますが、汎用的に、こちらでも入れておきます。 276 * 277 * @og.rev 6.4.1.1 (2016/01/16) "既存値:設定値" という指定を行えば、既存値を持っている場合のみ、設定値に置き換えます。 278 * 279 * @param now 現在の値 280 * @param val 新しい値("既存値:設定値" と指定可能) 281 * @return 新しい値 282 */ 283 private String oldNewSplit( final String now , final String val ) { 284 final String rtn ; 285 286 if( val == null || val.length() == 0 ) { 287 rtn = now; 288 } 289 else { 290 final int ad = val.indexOf( ':' ); 291 if( ad < 0 ) { // コロンがない。通常処理 292 rtn = val; 293 } 294 else if( ad == 0 ) { // コロンが先頭。コロンをはずして、セット 295 rtn = val.substring(1); 296 } 297 else { // コロンがある。OLD:NEW 形式なので、コロンで分割 298 final String old = val.substring( 0,ad ); 299 if( old.equals( now ) ) { // 一致した。 300 rtn = val.substring( ad+1 ); 301 } 302 else { 303 rtn = now ; 304 } 305 } 306 } 307 308 return rtn ; 309 } 310 311 /** 312 * カラムのクラスを文字列にした名称を設定します。 313 * 314 * "既存値:設定値" という指定を行えば、既存値を持っている場合のみ、設定値に置き換えます。 315 * 316 * @og.rev 6.4.1.1 (2016/01/16) "既存値:設定値" という指定を行えば、既存値を持っている場合のみ、設定値に置き換えます。 317 * 318 * @param className カラムのクラス名 319 */ 320 public void setClassName( final String className ) { 321 clmData[ColumnData.CLS_NAME] = oldNewSplit( clmData[ColumnData.CLS_NAME] , className ); // 6.4.1.1 (2016/01/16) 322 } 323 324 /** 325 * カラムの入力枠サイズ(横幅)を文字数で取得します。 326 * fieldSize は、設定した場合のみ、使用できます。通常は、null が返ります。 327 * 328 * @og.rev 6.2.0.0 (2015/02/27) fieldSize 属性の追加 329 * 330 * @return カラムの入力枠サイズ 331 */ 332 public String getFieldSize() { 333 return clmData[ColumnData.FIELD_SIZE]; 334 } 335 336 /** 337 * カラムの入力枠サイズ(横幅)を文字数で設定します。 338 * 339 * 従来の #setViewLength(String) で指定していた値です。 340 * 341 * @og.rev 6.2.0.0 (2015/02/27) fieldSize 属性の追加 342 * 343 * @param fieldSize カラムの入力枠サイズ 344 */ 345 public void setFieldSize( final String fieldSize ) { 346 clmData[ColumnData.FIELD_SIZE] = fieldSize; 347 } 348 349 /** 350 * カラムの表示桁数を返します。 351 * viewLength は、設定した場合のみ、使用できます。通常は、null が返ります。 352 * 353 * @og.rev 4.0.0.0 (2005/01/31) メソッド名変更 getSize() → getViewLength() 354 * 355 * @return カラムの表示桁数 356 */ 357 public String getViewLength() { 358 return clmData[ColumnData.VIEW_LENGTH]; 359 } 360 361 /** 362 * カラムの表示桁数を設定します。 363 * 364 * @og.rev 4.0.0.0 (2005/01/31) メソッド名変更 setSize() → setViewLength() 365 * 366 * @param viewLength カラムの表示桁数 367 */ 368 public void setViewLength( final String viewLength ) { 369 clmData[ColumnData.VIEW_LENGTH] = viewLength; 370 } 371 372 /** 373 * カラムの文字桁数を返します。 374 * 375 * @og.rev 3.5.5.5 (2004/04/23) 新規追加 376 * 377 * @return カラムの文字桁数 378 */ 379 public String getMaxlength() { 380 return clmData[ColumnData.USE_LENGTH]; 381 } 382 383 /** 384 * カラムの文字桁数を設定します。 385 * 386 * @og.rev 3.5.5.5 (2004/04/23) 新規追加 387 * 388 * @param maxlength カラムの文字桁数 389 */ 390 public void setMaxlength( final String maxlength ) { 391 clmData[ColumnData.USE_LENGTH] = maxlength; 392 } 393 394 /** 395 * カラムが書き込み可能かどうか[true/false]を返します。 396 * 397 * @return カラムが書き込み可能かどうか[true/false] 398 */ 399 public boolean isWritable() { 400 return "true".equalsIgnoreCase( writable ) ; 401 } 402 403 /** 404 * カラムが書き込み可能かどうか[true/false]を設定します。 405 * 406 * @param writable 書き込み可能かどうか[true/false] 407 */ 408 public void setWritable( final String writable ) { 409 this.writable = writable; 410 } 411 412 /** 413 * データの表示用レンデラーを返します。 414 * 415 * @og.rev 3.1.0.0 (2003/03/20) Renderer をキーのみ返すように変更 416 * 417 * @return データの表示用レンデラー 418 */ 419 public String getRenderer() { 420 return clmData[ColumnData.RENDERER]; 421 } 422 423 /** 424 * データの表示用レンデラーを設定します。 425 * 426 * "既存値:設定値" という指定を行えば、既存値を持っている場合のみ、設定値に置き換えます。 427 * 428 * @og.rev 6.4.1.1 (2016/01/16) "既存値:設定値" という指定を行えば、既存値を持っている場合のみ、設定値に置き換えます。 429 * 430 * @param renderer 表示用レンデラー 431 */ 432 public void setRenderer( final String renderer ) { 433 clmData[ColumnData.RENDERER] = oldNewSplit( clmData[ColumnData.RENDERER] , renderer ); // 6.4.1.1 (2016/01/16) 434 } 435 436 /** 437 * データの編集用エディターを返します。 438 * 439 * @og.rev 3.1.0.0 (2003/03/20) Editor をキーのみ返すように変更 440 * 441 * @return データの編集用エディター 442 */ 443 public String getEditor() { 444 return clmData[ColumnData.EDITOR]; 445 } 446 447 /** 448 * データの編集用エディターを設定します。 449 * 450 * "既存値:設定値" という指定を行えば、既存値を持っている場合のみ、設定値に置き換えます。 451 * 452 * @og.rev 6.4.1.1 (2016/01/16) "既存値:設定値" という指定を行えば、既存値を持っている場合のみ、設定値に置き換えます。 453 * 454 * @param editor 編集用エディター 455 */ 456 public void setEditor( final String editor ) { 457 clmData[ColumnData.EDITOR] = oldNewSplit( clmData[ColumnData.EDITOR] , editor ); // 6.4.1.1 (2016/01/16) 458 } 459 460 /** 461 * 文字種別名を返します。 462 * 463 * @return データの文字種別 464 */ 465 public String getDbType() { 466 return clmData[ColumnData.DBTYPE]; 467 } 468 469 /** 470 * データのタイプを設定します。 471 * 472 * "既存値:設定値" という指定を行えば、既存値を持っている場合のみ、設定値に置き換えます。 473 * 474 * @og.rev 5.1.6.0 (2010/05/01) DBTypeの初期値を "XK" とします。 475 * @og.rev 6.4.1.1 (2016/01/16) "既存値:設定値" という指定を行えば、既存値を持っている場合のみ、設定値に置き換えます。 476 * 477 * @param dbType 文字種別 478 */ 479 public void setDbType( final String dbType ) { 480 clmData[ColumnData.DBTYPE] = oldNewSplit( clmData[ColumnData.DBTYPE] , dbType == null ? DBType.DEF_TYPE : dbType ); // 6.4.1.1 (2016/01/16) 481 } 482 483 /** 484 * カラムロールを返します。 485 * 486 * @return カラムロール 487 */ 488 public String getRoles() { 489 return clmData[ColumnData.ROLES]; 490 } 491 492 /** 493 * カラムロールを設定します。 494 * 495 * @param roles カラムロール 496 */ 497 public void setRoles( final String roles ) { 498 clmData[ColumnData.ROLES] = roles; 499 } 500 501 /** 502 * データのデフォルト値を返します。 503 * 504 * @og.rev 5.1.8.0 (2010/07/01) メソッド名変更(getDefValue ⇒ getDefault) 505 * 506 * @return データのデフォルト値 507 */ 508 public String getDefault() { 509 // 6.4.1.1 (2016/01/16) PMD refactoring. Avoid if (x != y) ..; else ..; 510 return ( clmData[ColumnData.DATA_DEFAULT] == null ) ? "" : clmData[ColumnData.DATA_DEFAULT]; 511 } 512 513 /** 514 * データのデフォルト値を設定します。 515 * 516 * @og.rev 5.1.8.0 (2010/07/01) メソッド名変更(setDefValue ⇒ setDefault) 517 * 518 * @param dataDef デフォルト値 519 */ 520 public void setDefault( final String dataDef ) { 521 clmData[ColumnData.DATA_DEFAULT] = dataDef; 522 } 523 524 /** 525 * 表示用レンデラーの追加属性を返します。 526 * 527 * @return 属性リスト 528 * @og.rtnNotNull 529 */ 530 public Attributes getRendererAttributes() { 531 return rendAttri ; 532 } 533 534 /** 535 * 表示用レンデラーの追加属性を設定します。 536 * 537 * 元のrendAttriが、何も設定されていない場合は、引数のAttributesに 538 * 置き換えます。 539 * すでに、設定済みの場合は、putAll で、すべての属性を追加します。 540 * 既存の属性は、そのまま残りますので、クリアしたい場合は、 541 * 先に、getRendererAttributes() で取り出した Attributes を、 542 * clear() してから、セットしてください。 543 * 544 * @og.rev 6.4.5.2 (2016/05/06) Attributesは、既存のAttributesに、ADDする。 545 * 546 * @param attri 属性リスト 547 */ 548 public void setRendererAttributes( final Attributes attri ) { 549 rendAttri.set( attri ); 550 } 551 552 /** 553 * 編集用エディター用の追加属性を返します。 554 * 555 * @return 追加属性 556 * @og.rtnNotNull 557 */ 558 public Attributes getEditorAttributes() { 559 return editAttri; 560 } 561 562 /** 563 * 編集用エディター用の追加属性を設定します。 564 * 565 * 元のrendAttriが、何も設定されていない場合は、引数のAttributesに 566 * 置き換えます。 567 * すでに、設定済みの場合は、putAll で、すべての属性を追加します。 568 * 既存の属性は、そのまま残りますので、クリアしたい場合は、 569 * 先に、getEditorAttributes() で取り出した Attributes を、 570 * clear() してから、セットしてください。 571 * 572 * @og.rev 6.4.5.2 (2016/05/06) Attributesは、既存のAttributesに、ADDする。 573 * 574 * @param attri 属性リスト 575 */ 576 public void setEditorAttributes( final Attributes attri ) { 577 editAttri.set( attri ); 578 } 579 580 /** 581 * 編集用エディター用の属性を削除します。 582 * 583 * 属性を、入れ替えではなく、追加したことで、削除が困難になりました。 584 * そこで、属性の削除が出来るようにします。 585 * キーとなる設定値から、値の文字列を切り取ります。 586 * class 属性など、スペース連結の場合は、問題はありませんが、カンマ連結では 587 * カンマが連続で並びますので、うまく対応できません。 588 * 属性値が、一致する場合と、val がnullの場合は、そのキー自体を削除します。 589 * 590 * @og.rev 6.8.1.4 (2017/08/25) must="false"で、setEditorAttributes の属性の取り消しが出来ないための対応。 591 * 592 * @param key 属性キー 593 * @param val 属性値 594 */ 595 public void removeEditorAttributes( final String key , final String val ) { 596 final String oldval = editAttri.get( key ); 597 // Attributes は、ConcurrentHashMap で管理しているので、oldval に null は、含みません。(が、チェックしておきます) 598 if( val != null && oldval != null && oldval.contains( val ) ) { 599 final String newval = oldval.replace( val , "" ); // val の削除 600// if( newval.trim().isEmpty() ) { 601 if( newval.isBlank() ) { // 8.5.4.2 (2024/01/12) PMD 7.0.0 InefficientEmptyStringCheck 対応 602 editAttri.remove( key ); 603 } 604 else { 605 editAttri.set( key,newval ); 606 } 607 } 608 } 609 610 /** 611 * パラメータを設定します。 612 * ここで設定された値は、すべて(表示、編集、文字)のパラメータにセットされます。 613 * 614 * @og.rev 3.4.0.0 (2003/09/01) 表示パラメータ、編集パラメータ、文字パラメータの追加。 615 * 616 * @param inParam 入力パラメータ 617 */ 618 public void setParameter( final String inParam ) { 619 clmData[ColumnData.RENDERER_PARAM] = inParam ; 620 clmData[ColumnData.EDITOR_PARAM] = inParam ; 621 clmData[ColumnData.TYPE_PARAM] = inParam ; 622 } 623 624 /** 625 * 表示用レンデラーのパラメータを取得します。 626 * 627 * @og.rev 3.4.0.0 (2003/09/01) 新規追加 628 * 629 * @return 表示用レンデラーのパラメータ 630 */ 631 public String getRendererParam() { 632 return clmData[ColumnData.RENDERER_PARAM]; 633 } 634 635 /** 636 * 表示用レンデラーのパラメータを設定します。 637 * 638 * @og.rev 3.4.0.0 (2003/09/01) 新規追加 639 * 640 * @param inParam 表示用レンデラーのパラメータ 641 */ 642 public void setRendererParam( final String inParam ) { 643 clmData[ColumnData.RENDERER_PARAM] = inParam; 644 } 645 646 /** 647 * 編集用エディターのパラメータを取得します。 648 * 649 * @og.rev 3.4.0.0 (2003/09/01) 新規追加 650 * 651 * @return 編集用エディターのパラメータ 652 */ 653 public String getEditorParam() { 654 return clmData[ColumnData.EDITOR_PARAM]; 655 } 656 657 /** 658 * 編集用エディターのパラメータを設定します。 659 * 660 * @og.rev 3.4.0.0 (2003/09/01) 新規追加 661 * 662 * @param inParam 編集用エディターのパラメータ 663 */ 664 public void setEditorParam( final String inParam ) { 665 clmData[ColumnData.EDITOR_PARAM] = inParam ; 666 } 667 668 /** 669 * データタイプのパラメータを取得します。 670 * 671 * @og.rev 3.4.0.0 (2003/09/01) 新規追加 672 * 673 * @return データタイプのパラメータ 674 */ 675 public String getDbTypeParam() { 676 return clmData[ColumnData.TYPE_PARAM]; 677 } 678 679 /** 680 * データタイプのパラメータをします。 681 * 682 * @og.rev 3.4.0.0 (2003/09/01) 新規追加 683 * 684 * @param inParam データタイプのパラメータ 685 */ 686 public void setDbTypeParam( final String inParam ) { 687 clmData[ColumnData.TYPE_PARAM] = inParam ; 688 } 689 690 /** 691 * メニューに空の選択リストを追加するかどうかを取得します。 692 * 693 * @og.rev 3.5.5.7 (2004/05/10) 新規追加 694 * 695 * @return 選択リストを追加するかどうか(true:追加する/false:追加しない) 696 */ 697 public boolean isAddNoValue() { 698 return addNoValue ; 699 } 700 701 /** 702 * メニューに空の選択リストを追加するかどうかを設定します。 703 * 704 * @og.rev 3.5.5.7 (2004/05/10) 新規追加 705 * 706 * @param add [true:追加する/false:追加しない] 707 */ 708 public void setAddNoValue( final boolean add ) { 709 this.addNoValue = add ; 710 } 711 712 /** 713 * セレクトメニューの場合、キー:ラベル形式で表示するかどうか[true/false/null]を指定します(初期値:null)。 714 * 715 * カラムがプルダウンメニュー形式の場合、キー:ラベル形式で表示するか、ラベルだけで表示するかを 716 * 選択できます。 717 * true を指定すると、「強制的に」キー:ラベル形式で表示します。 718 * false の場合は、「強制的に」ラベルのみで表示されます。 719 * 初期値の null の場合、コードリソースや、SQL文に準拠した指定通りの形式で表示します。 720 * 721 * <og:column name="CDC" addKeyLabel="true" /> 722 * 723 * @og.rev 6.0.4.0 (2014/11/28) キー:ラベル形式で表示するかどうか。新規追加 724 * 725 * @param addKeyLbl [true:キー:ラベル形式/false:ラベルのみ/null:指定通り] 726 * @see #getAddKeyLabel() 727 */ 728 public void setAddKeyLabel( final String addKeyLbl ) { 729 addKeyLabel = addKeyLbl; 730 } 731 732 /** 733 * セレクトメニューの場合、キー:ラベル形式で表示するかどうか[true/false/null]を返します。 734 * 735 * これは、上位入れ子のタグの OptionTag で、addKeyLabel を取り出して、 736 * true であれば、キー:ラベル形式 のオプションを、#addOption( String ) で 737 * 登録させます。 738 * 739 * @og.rev 6.0.4.0 (2014/11/28) キー:ラベル形式で表示するかどうか。新規追加 740 * 741 * @return true:キー:ラベル形式/false:ラベルのみ/null:指定通り 742 * @see #setAddKeyLabel( String ) 743 */ 744 public String getAddKeyLabel() { 745 return addKeyLabel; 746 } 747 748 /** 749 * セレクトメニューの場合、キーとラベルを分けて出力するかどうか[true/false]を指定します(初期値:false)。 750 * 751 * カラムがプルダウンメニュー形式の場合、ファイル出力時に、キーとラベルを分離して出力する事ができます。 752 * この属性と、addKeyLabel とは、微妙に関連していて、addKeyLabel="true" のみの場合は、 753 * キー:ラベル形式で、出力されますが、writeKeyLabel="true" も指定されている場合は、こちらが優先されます。 754 * なお、この指定が有効なのは、セレクトメニューのカラムのみです。 755 * 初期値は、false です。 756 * 757 * @og.rev 6.2.3.0 (2015/05/01) キー/ラベルで分離して出力するかどうか。 758 * 759 * @param flag キー/ラベル分離出力するかどうか [true:分離出力/false:通常] 760 */ 761 public void setWriteKeyLabel( final boolean flag ) { 762 writeKeyLabel = flag; 763 } 764 765 /** 766 * セレクトメニューの場合、キーとラベルを分けて出力するかどうか[true/false]を取得します。 767 * 768 * カラムがプルダウンメニュー形式の場合、ファイル出力時に、キーとラベルを分離して出力する事ができます。 769 * この属性と、addKeyLabel とは、微妙に関連していて、addKeyLabel="true" のみの場合は、 770 * キー:ラベル形式で、出力されますが、writeKeyLabel="true" も指定されている場合は、こちらが優先されます。 771 * なお、この指定が有効なのは、セレクトメニューのカラムのみです。 772 * 773 * @og.rev 6.2.3.0 (2015/05/01) キー/ラベルで分離して出力するかどうか。 774 * 775 * @return キー/ラベル分離出力するかどうか[true:分離出力/false:通常] 776 */ 777 public boolean isWriteKeyLabel() { 778 return writeKeyLabel ; 779 } 780 781 /** 782 * このカラムオブジェクトがカラムリソースより正式に作られたかどうかを取得します。 783 * カラムリソースが無い場合は、仮オブジェクトかデータベースメタデータより作成されます。 784 * その場合は、チェック機能が緩くなるため、正式なカラムオブジェクトと区別する為に 785 * この属性を持ちます。 786 * 787 * @og.rev 3.6.0.7 (2004/11/06) 新規追加 788 * 789 * @return カラムリソースより正式に作られたかどうか(true:正式/false:暫定) 790 */ 791 public boolean isOfficial() { 792 return official; 793 } 794 795 /** 796 * このカラムオブジェクトがカラムリソースより正式に作られたかどうかを設定します。 797 * 従来は、自動判定で、再セット不可能でしたが、動的カラムを実現する場合に、 798 * エラーチェックで引っかかるため、再設定可能にします。 799 * 800 * @og.rev 5.4.3.4 (2012/01/12) 新規追加 801 * 802 * @param official 正式かどうか [true:正式/false:暫定] 803 */ 804 public void setOfficial( final boolean official ) { 805 this.official = official ; 806 } 807 808 /** 809 * 接続先IDを設定します。 810 * 811 * @param dbid 接続先ID 812 */ 813 public void setDbid( final String dbid ) { 814 this.dbid = dbid; 815 } 816 817 /** 818 * 接続先IDを返します。 819 * 820 * @return 接続先ID 821 */ 822 public String getDbid() { 823 return dbid; 824 } 825 826 /** 827 * カラムデータオブジェクトを取得します。 828 * 829 * @return カラムデータオブジェクト 830 * @og.rtnNotNull 831 */ 832 public ColumnData getColumnData() { 833 return new ColumnData( clmData ); 834 } 835 836 /** 837 * カラムデータオブジェクトを設定します。 838 * ここでは、オブジェクトその物を持つのではなく、設定された値のみ持ちます。 839 * 840 * @param clmDt カラムデータオブジェクト 841 */ 842 public void setColumnData( final ColumnData clmDt ) { 843 clmData = clmDt.getColumnData(); 844 } 845 846 /** 847 * コードデータオブジェクトを取得します。 848 * 849 * @og.rev 4.0.0.0 (2005/01/31) 新規作成 850 * 851 * @return コードデータオブジェクト 852 */ 853 public CodeData getCodeData() { 854 return codeData; 855 } 856 857 /** 858 * コードデータオブジェクトを設定します。 859 * 860 * @og.rev 4.0.0.0 (2005/01/31) 新規作成 861 * 862 * @param codeData コードデータオブジェクト 863 */ 864 public void setCodeData( final CodeData codeData ) { 865 this.codeData = codeData; 866 } 867 868 /** 869 * ラベルデータオブジェクトを取得します。 870 * 871 * @return ラベルデータオブジェクト 872 */ 873 public LabelData getLabelData() { 874 return labelData; 875 } 876 877 /** 878 * ラベルデータオブジェクトを設定します。 879 * 880 * @param labelData ラベルデータオブジェクト 881 */ 882 public void setLabelData( final LabelData labelData ) { 883 this.labelData = labelData; 884 } 885 886 /** 887 * イベントカラム(親カラム)のセット 888 * 889 * イベントカラムをセットします。 890 * 891 * @og.rev 4.3.6.0 (2009/04/01) 892 * @param col 親カラムID 893 */ 894 public void setEventColumn( final String col ) { 895 this.eventColumn = col; 896 } 897 898 /** 899 * イベントカラム(親カラム)の取得 900 * 901 * イベントカラムを取得します。 902 * 903 * @og.rev 4.3.6.0 (2009/04/01) 904 * 905 * @return イベントカラム 906 */ 907 public String getEventColumn() { 908 return eventColumn; 909 } 910 911 /** 912 * イベントカラムの子カラムの値を出力するためのSQL文のセット 913 * 914 * イベントカラムの子カラムの値を出力するためのSQL文をセットします。 915 * 916 * @og.rev 6.3.3.0 (2015/07/25) eventValue 追加 917 * 918 * @param val イベントカラムの値SQL文 919 */ 920 public void setEventValue( final String val ) { 921 this.eventValue = val; 922 } 923 924 /** 925 * イベントカラムの子カラムの値を出力するためのSQL文の取得 926 * 927 * イベントカラムの子カラムの値を出力するためのSQL文を取得します。 928 * 929 * @og.rev 6.3.3.0 (2015/07/25) eventValue 追加 930 * 931 * @return イベントカラムの値SQL文 932 */ 933 public String getEventValue() { 934 return eventValue; 935 } 936 937 /** 938 * {@XXXX}を変換していない状態の編集パラメータ 939 * 940 * 生のパラメータを取得します。 941 * 942 * @og.rev 4.3.6.0 (2009/04/01) 943 * 944 * @return 生編集パラメータ 945 */ 946 public String getRawEditParameter() { 947 return rawEditParameter; 948 } 949 950 /** 951 * {@XXXX}を変換していない状態の表示パラメータ 952 * 953 * 生のパラメータを取得します。 954 * 955 * @og.rev 5.1.7.0 (2010/06/01) 動的プルダウン実装見直し 956 * 957 * @return 生表示パラメータ 958 */ 959 public String getRawRendParameter() { 960 return rawRendParameter; 961 } 962 963 /** 964 * {@XXXX}を変換していない状態のparameterセット用 965 * 966 * 編集種別・表示種別 967 * 生のパラメータをセットします。(編集種別・表示種別の両方に適用されます。) 968 * 969 * @og.rev 4.3.6.0 (2009/04/01) 970 * @og.rev 5.1.7.0 (2010/06/01) 動的プルダウン実装見直し 971 * 972 * @param param パラメータ 973 */ 974 public void setRawParameter( final String param ) { 975 rawEditParameter = param; 976 rawRendParameter = param; 977 } 978 979 /** 980 * {@XXXX}を変換していない状態の編集種別 parameterセット用 981 * 982 * DBColumn とのデータ変換のため、内部変数として、編集種別・表示種別を分けて管理します。 983 * 984 * @og.rev 5.1.8.0 (2010/07/01) 新規追加 985 * 986 * @param param パラメータ 987 */ 988 public void setRawEditParameter( final String param ) { 989 rawEditParameter = param; 990 } 991 992 /** 993 * {@XXXX}を変換していない状態の表示種別 parameterセット用 994 * 995 * DBColumn とのデータ変換のため、内部変数として、編集種別・表示種別を分けて管理します。 996 * 997 * @og.rev 5.1.8.0 (2010/07/01) 新規追加 998 * 999 * @param param パラメータ 1000 */ 1001 public void setRawRendParameter( final String param ) { 1002 rawRendParameter = param; 1003 } 1004 1005 /** 1006 * イベントURLのセット。 1007 * 1008 * イベントカラム利用時にコールされるURLのセット 1009 * 1010 * @og.rev 4.3.6.0 (2009/04/01) 1011 * @param url イベントURL 1012 */ 1013 public void setEventURL( final String url ) { 1014 this.eventURL = url; 1015 } 1016 1017 /** 1018 * イベントURLの取得。 1019 * 1020 * eventColumn利用時のJSから呼び出すためのURL取得 1021 * 1022 * @og.rev 4.3.6.0 (2009/04/01) 1023 * 1024 * @return イベントURL 1025 */ 1026 public String getEventURL() { 1027 return eventURL; 1028 } 1029 1030 /** 1031 * MENU時にラベル短ベースで表示するかどうか[auto/true/その他]のコントロール 1032 * 1033 * auto/trueが有効。それ以外はfalse扱いとする。標準auto 1034 * 1035 * @og.rev 5.5.1.0 (2012/04/03) 1036 * @param use 表示するかどうか[auto/true/その他] 1037 */ 1038 public void setUseSLabel( final String use ) { 1039 this.useSLabel = use; 1040 } 1041 1042 /** 1043 * MENU時にラベル短ベースで表示するかどうかのコントロール。 1044 * 1045 * @og.rev 5.5.1.0 (2012/04/03) 1046 * 1047 * @return イベントURL 1048 */ 1049 public String getUseSLabel() { 1050 return useSLabel; 1051 } 1052 1053 /** 1054 * 非表示文字列を設定します。 1055 * 1056 * これは、例えば、数字型の場合は、0 がデフォルトなどの場合、 1057 * あえて表示したくないなどのケースに使います。 1058 * そのような状況が設定されていない場合は、null を設定してください。 1059 * 初期値は、null です。 1060 * 1061 * @og.rev 5.6.2.3 (2013/03/22) 新規追加 1062 * 1063 * @param val 非表示にする文字列 1064 */ 1065 public void setNoDisplayVal( final String val ) { 1066 this.noDisplayVal = val; 1067 } 1068 1069 /** 1070 * 非表示文字列を返します。 1071 * 1072 * これは、例えば、数字型の場合は、0 がデフォルトなどの場合、 1073 * あえて表示したくないなどのケースに使います。 1074 * そのような状況が設定されていない場合は、null が返されます。 1075 * 初期値は、null です。 1076 * 1077 * @og.rev 5.6.2.3 (2013/03/22) 新規追加 1078 * 1079 * @return 非表示文字 1080 */ 1081 public String getNoDisplayVal() { 1082 return noDisplayVal; 1083 } 1084 1085 /** 1086 * レンデラー利用ファイル出力時に数値等も文字タイプ固定にするかどうかを設定します 1087 * (初期値:USE_STRING_EXCEL_OUTPUT[={@og.value SystemData#USE_STRING_EXCEL_OUTPUT}])。 1088 * 1089 * これは、レンデラーでのExcel出力時のセルタイプに影響します。 1090 * trueの場合は数値も全て文字として出力します。 1091 * falseの場合はDBTYPEに従った出力になりるため、数値型の DBTYPE では、doubleに一度変換されます。 1092 * (初期値:USE_STRING_EXCEL_OUTPUT[={@og.value SystemData#USE_STRING_EXCEL_OUTPUT}])。 1093 * 1094 * @og.rev 5.7.6.3 (2014/05/23) 新規追加 1095 * 1096 * @param flag レンデラー利用時の出力方法 (true:String出力/false:DBTYPEに従う) 1097 */ 1098 public void setStringOutput( final boolean flag ) { 1099 stringOutput = flag; 1100 } 1101 1102 /** 1103 * レンデラー利用ファイル出力時に数値等も文字タイプ固定にするかどうか 1104 * (初期値:USE_STRING_EXCEL_OUTPUT[={@og.value SystemData#USE_STRING_EXCEL_OUTPUT}])。 1105 * 1106 * これは、レンデラーでのExcel出力時のセルタイプに影響します。 1107 * trueの場合は数値も全て文字として出力します。 1108 * falseの場合はDBTYPEに従った出力になりるため、数値型の DBTYPE では、doubleに一度変換されます。 1109 * (初期値:USE_STRING_EXCEL_OUTPUT[={@og.value SystemData#USE_STRING_EXCEL_OUTPUT}])。 1110 * 1111 * @og.rev 5.7.6.3 (2014/05/23) 新規追加 1112 * 1113 * @return レンデラー利用時の出力方法 (true:String出力/false:DBTYPEに従う) 1114 */ 1115 public boolean isStringOutput() { 1116 return stringOutput; 1117 } 1118 1119 /** 1120 * 設定値に "_" が含まれる書込み禁止カラムでかどうかを指定します。 1121 * 1122 * true に設定された場合は、#getWriteValue( String ) で、先頭のアンダーバーを 1123 * 削除して返します。 1124 * 初期値は、false:使わないです。 1125 * 1126 * @og.rev 7.0.1.5 (2018/12/10) writeCtrlで出力時のアンダーバー削除 1127 * 1128 * @param flag writableControlを使うかどうか [true:使う/false:使わない] 1129 */ 1130 public void setWriteControl( final boolean flag ) { 1131 writeCtrl = flag; 1132 } 1133 1134 /** 1135 * 設定値に "_" が含まれる書込み禁止カラムかどうかを返します。 1136 * 1137 * true に設定された場合は、#getWriteValue( String ) で、先頭のアンダーバーを 1138 * 削除して返します。 1139 * 初期値は、false:使わないです。 1140 * 1141 * @og.rev 7.0.1.5 (2018/12/10) writeCtrlで出力時のアンダーバー削除 1142 * 1143 * @return writableControlを使うかどうか [true:使う/false:使わない] 1144 */ 1145 public boolean isWriteControl() { 1146 return writeCtrl; 1147 } 1148 1149 /** 1150 * 日付送り戻し機能を有効にするかどうか[true:有効/false:無効]指定します(初期値:true)。 1151 * 1152 * @og.rev 8.1.2.3 (2022/05/20) 日付送り戻し不具合対応(useDateFeed 属性追加) 1153 * 1154 * @param flag 日付送り戻し機能有無 [true:有効/false:無効] 1155 */ 1156 public void setUseDateFeed( final boolean flag ) { 1157 this.useDateFeed = flag; 1158 } 1159 1160 /** 1161 * 日付送り戻し機能を有効にするかどうか[true:有効/false:無効]返します。 1162 * 1163 * @og.rev 8.1.2.3 (2022/05/20) 日付送り戻し不具合対応(useDateFeed 属性追加) 1164 * 1165 * @return flag 日付送り戻し機能有無 [true:有効/false:無効] 1166 */ 1167 public boolean isDateFeed() { 1168 return useDateFeed; 1169 } 1170}