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