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        private String          lang                            ;       // 言語
044        private String          writable        = "true";       // カラムが書き込み可能かどうか
045        private Attributes      rendAttri       = null  ;       // 表示用レンデラー追加用属性
046        private Attributes      editAttri       = null  ;       // 編集用エディター追加用属性
047        private boolean         addNoValue      = false ;       // メニューに空の選択リストを追加するかどうか        // 3.5.5.7 (2004/05/10)
048        private String          dbid            = null  ;       // データベース接続先ID
049        private boolean         official ;                              // カラムリソースから作成されたかどうか(再設定可能)            // 5.4.3.4 (2012/01/12)
050
051        private String eventColumn              = null;         // 4.3.6.0 (2009/04/01) イベントカラム
052        private String rawEditParameter = null;         // 4.3.6.0 (2009/04/01) {@XXXX}を変換していないパラメータ
053        private String rawRendParameter = null;         // 5.1.7.0 (2010/06/01) 動的プルダウン実装見直し
054        private String eventURL                 = null;         // 5.1.9.0 (2010/08/01) 動的プルダウン不具合対応
055
056        private String  useSLabel               = "auto";       // 5.5.1.0 (2012/04/03)  MENU系でSLABELを利用するかどうか
057        private String  noDisplayVal    = null;         // 5.6.2.3 (2013/03/22) 非表示文字の設定
058
059        private String  codeKeyVal              = null;         // 5.6.6.0 (2013/07/05) 新規追加(新しいコードセレクトを作成する為の KEY:VAL 文字列)
060
061        private boolean stringOutput    = HybsSystem.sysBool( "USE_STRING_EXCEL_OUTPUT" );      // 5.7.6.3 (2013/05/23) ファイルレンデラ出力時のフラグ
062
063        /**
064         * コンストラクター
065         * 引数は、すべて文字列型で渡します。
066         *
067         * @og.rev 3.4.0.0 (2003/09/01) 表示パラメータ、編集パラメータ、文字パラメータの追加。
068         * @og.rev 3.5.5.7 (2004/05/10) CodeSelection を、codeName を元に構築できるように設定します。
069         * @og.rev 3.6.0.3 (2004/10/05) dbTypePrm は、editorPrm と無関係に設定します。
070         * @og.rev 3.6.0.7 (2004/11/06) カラムリソースから作成されたかどうか(official属性追加)
071         * @og.rev 5.1.6.0 (2010/05/01) DBTypeの初期値を "XK" とします。
072         * @og.rev 5.7.3.0 (2014/02/07) labelData の null 対応
073         *
074         * @param       lang            言語
075         * @param       name            カラム名
076         * @param       labelData       カラムのラベルデータオブジェクト
077         * @param       className       カラムのクラスを文字列にした名称
078         * @param       maxlength       カラムの文字桁数
079         * @param       writable        カラムが書き込み可能かどうか
080         * @param       renderer        データの表示用レンデラー
081         * @param       editor          データの編集用エディター
082         * @param       codeData        メニューの項目オブジェクト
083         * @param       dbType          データのタイプ
084         * @param       dataDef         データのデフォルト値
085         * @param       rendererPrm     表示用レンデラーのパラメータ
086         * @param       editorPrm       編集用エディターのパラメータ
087         * @param       dbTypePrm       データのタイプのパラメータ
088         * @param       roles           カラムロール
089         * @param       official        正規カラムかどうか
090         * @param       dbid            データベース接続先ID
091         */
092        public DBColumnConfig(  final String    lang            ,
093                                                        final String    name            ,
094                                                        final LabelData labelData       ,               // 4.0.0 (2005/01/31)
095                                                        final String    className       ,
096                                                        final String    maxlength       ,               // 3.5.5.5 (2004/04/23)
097                                                        final String    writable        ,
098                                                        final String    renderer        ,
099                                                        final String    editor          ,
100                                                        final CodeData  codeData        ,               // 4.0.0 (2005/01/31)
101                                                        final String    dbType          ,
102                                                        final String    dataDef         ,
103                                                        final String    rendererPrm     ,
104                                                        final String    editorPrm       ,
105                                                        final String    dbTypePrm       ,
106                                                        final String    roles           ,               // 4.0.0 (2005/11/30)
107                                                        final boolean   official        ,               // 3.6.0.7 (2004/11/06)
108                                                        final String    dbid ) {
109                clmData = new String[ColumnData.DATA_SIZE];
110                clmData[ColumnData.CLM           ] = name               ;
111                clmData[ColumnData.CLS_NAME      ] = className  ;
112                clmData[ColumnData.USE_LENGTH    ] = maxlength  ;
113                clmData[ColumnData.RENDERER      ] = renderer   ;
114                clmData[ColumnData.EDITOR        ] = editor             ;
115                clmData[ColumnData.DBTYPE        ] = dbType             ;
116                clmData[ColumnData.DATA_DEFAULT  ] = dataDef    ;
117                clmData[ColumnData.RENDERER_PARAM] = rendererPrm;
118                clmData[ColumnData.TYPE_PARAM    ] = dbTypePrm  ;
119                clmData[ColumnData.ROLES         ] = roles              ;               // 4.0.0 (2005/11/30)
120
121                this.lang               = lang          ;
122                // 5.7.3.0 (2014/02/07) labelData の null 対応
123                this.labelData  = (labelData != null) ? labelData : new LabelData( name ) ;
124                this.writable   = writable      ;
125                this.codeData   = codeData      ;               // 4.0.0 (2005/01/31)
126                this.dbid               = dbid          ;               // 4.0.0 (2005/01/31)
127
128                if( "=".equals(editorPrm) ) {
129                        clmData[ColumnData.EDITOR_PARAM  ] = rendererPrm        ;
130                }
131                else {
132                        clmData[ColumnData.EDITOR_PARAM  ] = editorPrm  ;
133                }
134
135                // 5.1.6.0 (2010/05/01) DBTypeの初期値を "XK" とします。
136                if( dbType == null ) {
137                        clmData[ColumnData.DBTYPE        ] = DBType.DEF_TYPE;
138                }
139
140                this.official = official;               // 3.6.0.7 (2004/11/06)
141        }
142
143        /**
144         * 簡易コンストラクター
145         * キーのみを設定して作成する、簡易的な DBColumnConfig オブジェクトを
146         * 作成します。
147         *
148         * @og.rev 3.4.0.0 (2003/09/01) 表示パラメータ、編集パラメータ、文字パラメータの追加。
149         * @og.rev 3.6.0.7 (2004/11/06) カラムリソースから作成されたかどうか(official属性追加)
150         * @og.rev 5.1.6.0 (2010/05/01) DBTypeの初期値を "XK" とします。
151         * @og.rev 5.7.3.0 (2014/02/07) labelData の null 対応
152         *
153         * @param       name                    カラム名
154         */
155        public DBColumnConfig( final String name ) {
156                this.lang               = "ja"          ;
157                this.labelData  = new LabelData( name );        // 5.7.3.0 (2014/02/07) labelData の null 対応
158                this.writable   = "true"        ;
159                this.codeData   = null          ;                               // 4.0.0 (2005/01/31)
160                this.official   = false         ;                               // 3.6.0.7 (2004/11/06)
161
162                clmData = new String[ColumnData.DATA_SIZE];
163                clmData[ColumnData.CLM           ] = name               ;
164                clmData[ColumnData.CLS_NAME      ] = "VARCHAR2" ;
165                clmData[ColumnData.USE_LENGTH    ] = "60"               ;
166                clmData[ColumnData.RENDERER      ] = null               ;
167                clmData[ColumnData.EDITOR        ] = null               ;
168                clmData[ColumnData.DBTYPE        ] = DBType.DEF_TYPE ;          // 5.1.6.0 (2010/05/01)
169                clmData[ColumnData.DATA_DEFAULT  ] = ""                 ;
170                clmData[ColumnData.RENDERER_PARAM] = ""                 ;
171                clmData[ColumnData.EDITOR_PARAM  ] = ""                 ;
172                clmData[ColumnData.TYPE_PARAM    ] = ""                 ;
173                clmData[ColumnData.ROLES         ] = null               ;                       // 4.0.0 (2005/11/30)
174        }
175
176        /**
177         * 言語を返します。
178         *
179         * @return      言語
180         */
181        public String getLang() {
182                return lang;
183        }
184
185        /**
186         * 言語を設定します。
187         *
188         * @param       lang 言語
189         */
190        public void setLang( final String lang ) {
191                this.lang = lang;
192        }
193
194        /**
195         * カラム名を返します。
196         *
197         * @return      カラム名
198         */
199        public String getName() {
200                return clmData[ColumnData.CLM];
201        }
202
203        /**
204         * カラム名を設定します。
205         *
206         * @param       name カラム名
207         */
208        public void setName( final String name ) {
209                clmData[ColumnData.CLM] = name;
210        }
211
212        /**
213         * ラベル名を返します。
214         *
215         * @return      ラベル名
216         */
217        public String getLabel() {
218                return ( labelData == null ) ? clmData[ColumnData.CLM] : labelData.getLabel() ;
219        }
220
221        /**
222         * カラムのクラスを文字列にした名称を返します。
223         *
224         * @return      カラムのクラスを文字列にした名称
225         */
226        public String getClassName() {
227                return clmData[ColumnData.CLS_NAME];
228        }
229
230        /**
231         * カラムのクラスを文字列にした名称を設定します。
232         *
233         * @param       className カラムのクラス名
234         */
235        public void setClassName( final String className ) {
236                clmData[ColumnData.CLS_NAME] = className;
237        }
238
239        /**
240         * カラムの表示桁数を返します。
241         * viewLength は、設定した場合のみ、使用できます。通常は、null が返ります。
242         *
243         * @og.rev 4.0.0.0 (2005/01/31) メソッド名変更 getSize() → getViewLength()
244         *
245         * @return      カラムの表示桁数
246         */
247        public String getViewLength() {
248                return clmData[ColumnData.VIEW_LENGTH];
249        }
250
251        /**
252         * カラムの表示桁数を設定します。
253         *
254         * @og.rev 4.0.0.0 (2005/01/31) メソッド名変更 setSize() → setViewLength()
255         *
256         * @param       viewLength カラムの表示桁数
257         */
258        public void setViewLength( final String viewLength ) {
259                clmData[ColumnData.VIEW_LENGTH] = viewLength;
260        }
261
262        /**
263         * カラムの文字桁数を返します。
264         *
265         * @og.rev 3.5.5.5 (2004/04/23) 新規追加
266         *
267         * @return      カラムの文字桁数
268         */
269        public String getMaxlength() {
270                return clmData[ColumnData.USE_LENGTH];
271        }
272
273        /**
274         * カラムの文字桁数を設定します。
275         *
276         * @og.rev 3.5.5.5 (2004/04/23) 新規追加
277         *
278         * @param       maxlength カラムの文字桁数
279         */
280        public void setMaxlength( final String maxlength ) {
281                clmData[ColumnData.USE_LENGTH] = maxlength;
282        }
283
284        /**
285         * カラムが書き込み可能かどうか[true/false]を返します。
286         *
287         * @return      カラムが書き込み可能かどうか[true/false]
288         */
289        public boolean isWritable() {
290                return "true".equalsIgnoreCase( writable ) ;
291        }
292
293        /**
294         * カラムが書き込み可能かどうか[true/false]を設定します。
295         *
296         * @param       writable 書き込み可能かどうか[true/false]
297         */
298        public void setWritable( final String writable ) {
299                this.writable = writable;
300        }
301
302        /**
303         * データの表示用レンデラーを返します。
304         *
305         * @og.rev 3.1.0.0 (2003/03/20) Renderer をキーのみ返すように変更
306         *
307         * @return      データの表示用レンデラー
308         */
309        public String getRenderer() {
310                return clmData[ColumnData.RENDERER];
311        }
312
313        /**
314         * データの表示用レンデラーを設定します。
315         *
316         * @param       renderer 表示用レンデラー
317         */
318        public void setRenderer( final String renderer ) {
319                clmData[ColumnData.RENDERER] = renderer;
320        }
321
322        /**
323         * データの編集用エディターを返します。
324         *
325         * @og.rev 3.1.0.0 (2003/03/20) Editor をキーのみ返すように変更
326         *
327         * @return      データの編集用エディター
328         */
329        public String getEditor() {
330                return clmData[ColumnData.EDITOR];
331        }
332
333        /**
334         * データの編集用エディターを設定します。
335         *
336         * @param       editor 編集用エディター
337         */
338        public void setEditor( final String editor ) {
339                clmData[ColumnData.EDITOR] = editor;
340        }
341
342        /**
343         * 文字種別名を返します。
344         *
345         * @return  データの文字種別
346         */
347        public String getDbType() {
348                return clmData[ColumnData.DBTYPE];
349        }
350
351        /**
352         * データのタイプを設定します。
353         *
354         * @og.rev 5.1.6.0 (2010/05/01) DBTypeの初期値を "XK" とします。
355         *
356         * @param       dbType 文字種別
357         */
358        public void setDbType( final String dbType ) {
359                clmData[ColumnData.DBTYPE] = (dbType == null) ? DBType.DEF_TYPE : dbType ;
360        }
361
362        /**
363         * カラムロールを返します。
364         *
365         * @return  カラムロール
366         */
367        public String getRoles() {
368                return clmData[ColumnData.ROLES];
369        }
370
371        /**
372         * カラムロールを設定します。
373         *
374         * @param       roles カラムロール
375         */
376        public void setRoles( final String roles ) {
377                clmData[ColumnData.ROLES] = roles;
378        }
379
380        /**
381         * データのデフォルト値を返します。
382         *
383         * @og.rev 5.1.8.0 (2010/07/01) メソッド名変更(getDefValue ⇒ getDefault)
384         *
385         * @return      データのデフォルト値
386         */
387        public String getDefault() {
388                return ( clmData[ColumnData.DATA_DEFAULT] != null ) ? clmData[ColumnData.DATA_DEFAULT] : "";
389        }
390
391        /**
392         * データのデフォルト値を設定します。
393         *
394         * @og.rev 5.1.8.0 (2010/07/01) メソッド名変更(setDefValue ⇒ setDefault)
395         *
396         * @param       dataDef デフォルト値
397         */
398        public void setDefault( final String dataDef ) {
399                clmData[ColumnData.DATA_DEFAULT] = dataDef;
400        }
401
402        /**
403         * 表示用レンデラーの追加属性を返します。
404         *
405         * @return   属性リスト
406         */
407        public Attributes getRendererAttributes() {
408                return rendAttri ;
409        }
410
411        /**
412         * 表示用レンデラーの追加属性を設定します。
413         *
414         * @param   attri       属性リスト
415         */
416        public void setRendererAttributes( final Attributes attri ) {
417                rendAttri = attri;
418        }
419
420        /**
421         * 編集用エディター用の追加属性を返します。
422         *
423         * @return       追加属性
424         */
425        public Attributes getEditorAttributes() {
426                return editAttri;
427        }
428
429        /**
430         * 編集用エディター用の追加属性を設定します。
431         *
432         * @param   attri       属性リスト
433         */
434        public void setEditorAttributes( final Attributes attri ) {
435                editAttri = attri;
436        }
437
438        /**
439         * パラメータを設定します。
440         * ここで設定された値は、すべて(表示、編集、文字)のパラメータにセットされます。
441         *
442         * @og.rev 3.4.0.0 (2003/09/01) 表示パラメータ、編集パラメータ、文字パラメータの追加。
443         *
444         * @param       inParam 入力パラメータ
445         */
446        public void setParameter( final String inParam ) {
447                clmData[ColumnData.RENDERER_PARAM]      = inParam ;
448                clmData[ColumnData.EDITOR_PARAM]        = inParam ;
449                clmData[ColumnData.TYPE_PARAM]          = inParam ;
450        }
451
452        /**
453         * 表示用レンデラーのパラメータを取得します。
454         *
455         * @og.rev 3.4.0.0 (2003/09/01) 新規追加
456         *
457         * @return      表示用レンデラーのパラメータ
458         */
459        public String getRendererParam() {
460                return clmData[ColumnData.RENDERER_PARAM];
461        }
462
463        /**
464         * 表示用レンデラーのパラメータを設定します。
465         *
466         * @og.rev 3.4.0.0 (2003/09/01) 新規追加
467         *
468         * @param       inParam 表示用レンデラーのパラメータ
469         */
470        public void setRendererParam( final String inParam ) {
471                clmData[ColumnData.RENDERER_PARAM] = inParam;
472        }
473
474        /**
475         * 編集用エディターのパラメータを取得します。
476         *
477         * @og.rev 3.4.0.0 (2003/09/01) 新規追加
478         *
479         * @return      編集用エディターのパラメータ
480         */
481        public String getEditorParam() {
482                return clmData[ColumnData.EDITOR_PARAM];
483        }
484
485        /**
486         * 編集用エディターのパラメータを設定します。
487         *
488         * @og.rev 3.4.0.0 (2003/09/01) 新規追加
489         *
490         * @param       inParam 編集用エディターのパラメータ
491         */
492        public void setEditorParam( final String inParam ) {
493                clmData[ColumnData.EDITOR_PARAM] = inParam      ;
494        }
495
496        /**
497         * データタイプのパラメータを取得します。
498         *
499         * @og.rev 3.4.0.0 (2003/09/01) 新規追加
500         *
501         * @return      データタイプのパラメータ
502         */
503        public String getDbTypeParam() {
504                return clmData[ColumnData.TYPE_PARAM];
505        }
506
507        /**
508         * データタイプのパラメータをします。
509         *
510         * @og.rev 3.4.0.0 (2003/09/01) 新規追加
511         *
512         * @param       inParam データタイプのパラメータ
513         */
514        public void setDbTypeParam( final String inParam ) {
515                clmData[ColumnData.TYPE_PARAM] = inParam ;
516        }
517
518        /**
519         * メニューに空の選択リストを追加するかどうかを取得します。
520         *
521         * @og.rev 3.5.5.7 (2004/05/10) 新規追加
522         *
523         * @return      選択リストを追加するかどうか(true:追加する/false:追加しない)
524         */
525        public boolean isAddNoValue() {
526                return addNoValue ;
527        }
528
529        /**
530         * メニューに空の選択リストを追加するかどうかを設定します。
531         *
532         * @og.rev 3.5.5.7 (2004/05/10) 新規追加
533         *
534         * @param       add     [true:追加する/false:追加しない]
535         */
536        public void setAddNoValue( final boolean add ) {
537                this.addNoValue = add   ;
538        }
539
540        /**
541         * このカラムオブジェクトがカラムリソースより正式に作られたかどうかを取得します。
542         * カラムリソースが無い場合は、仮オブジェクトかデータベースメタデータより作成されます。
543         * その場合は、チェック機能が緩くなるため、正式なカラムオブジェクトと区別する為に
544         * この属性を持ちます。
545         *
546         * @og.rev 3.6.0.7 (2004/11/06) 新規追加
547         *
548         * @return      カラムリソースより正式に作られたかどうか(true:正式/false:暫定)
549         */
550        public boolean isOfficial() {
551                return official;
552        }
553
554        /**
555         * このカラムオブジェクトがカラムリソースより正式に作られたかどうかを設定します。
556         * 従来は、自動判定で、再セット不可能でしたが、動的カラムを実現する場合に、
557         * エラーチェックで引っかかるため、再設定可能にします。
558         *
559         * @og.rev 5.4.3.4 (2012/01/12) 新規追加
560         *
561         * @param       official 正式かどうか [true:正式/false:暫定]
562         */
563        public void setOfficial( final boolean official ) {
564                this.official = official ;
565        }
566
567        /**
568         * 接続先IDを設定します。
569         *
570         * @param dbid 接続先ID
571         */
572        public void setDbid( final String dbid ) {
573                this.dbid = dbid;
574        }
575
576        /**
577         * 接続先IDを返します。
578         *
579         * @return      接続先ID
580         */
581        public String getDbid() {
582                return dbid;
583        }
584
585        /**
586         * カラムデータオブジェクトを取得します。
587         *
588         * @return      カラムデータオブジェクト
589         */
590        public ColumnData getColumnData() {
591                return new ColumnData( clmData );
592        }
593
594        /**
595         * カラムデータオブジェクトを設定します。
596         * ここでは、オブジェクトその物を持つのではなく、設定された値のみ持ちます。
597         *
598         * @param       clmDt カラムデータオブジェクト
599         */
600        public void setColumnData( final ColumnData clmDt ) {
601                clmData = clmDt.getColumnData();
602        }
603
604        /**
605         * コードデータオブジェクトを取得します。
606         *
607         * @og.rev 4.0.0.0 (2005/01/31)  新規作成
608         *
609         * @return      コードデータオブジェクト
610         */
611        public CodeData getCodeData() {
612                return codeData;
613        }
614
615        /**
616         * コードデータオブジェクトを設定します。
617         *
618         * @og.rev 4.0.0.0 (2005/01/31)  新規作成
619         *
620         * @param       codeData コードデータオブジェクト
621         */
622        public void setCodeData( final CodeData codeData ) {
623                this.codeData = codeData;
624        }
625
626        /**
627         * ラベルデータオブジェクトを取得します。
628         *
629         * @return      ラベルデータオブジェクト
630         */
631        public LabelData getLabelData() {
632                return labelData;
633        }
634
635        /**
636         * ラベルデータオブジェクトを設定します。
637         *
638         * @param       labelData ラベルデータオブジェクト
639         */
640        public void setLabelData( final LabelData labelData ) {
641                this.labelData = labelData;
642        }
643
644        /**
645         * イベントカラム(親カラム)のセット
646         *
647         * イベントカラムをセットします。
648         *
649         * @og.rev 4.3.6.0 (2009/04/01)
650         * @param       col     親カラムID
651         */
652        public void setEventColumn( final String col ) {
653                this.eventColumn = col;
654        }
655
656        /**
657         * イベントカラム(親カラム)の取得
658         *
659         * イベントカラムを取得します。
660         *
661         * @og.rev 4.3.6.0 (2009/04/01)
662         *
663         * @return  イベントカラム
664         */
665        public String getEventColumn() {
666                return eventColumn;
667        }
668
669        /**
670         * {@XXXX}を変換していない状態の編集パラメータ
671         *
672         * 生のパラメータを取得します。
673         *
674         * @og.rev 4.3.6.0 (2009/04/01)
675         *
676         * @return  生編集パラメータ
677         */
678        public String getRawEditParameter() {
679                return rawEditParameter;
680        }
681
682        /**
683         * {@XXXX}を変換していない状態の表示パラメータ
684         *
685         * 生のパラメータを取得します。
686         *
687         * @og.rev 5.1.7.0 (2010/06/01) 動的プルダウン実装見直し
688         *
689         * @return  生表示パラメータ
690         */
691        public String getRawRendParameter() {
692                return rawRendParameter;
693        }
694
695        /**
696         * {@XXXX}を変換していない状態のparameterセット用
697         *
698         * 編集種別・表示種別
699         * 生のパラメータをセットします。(編集種別・表示種別の両方に適用されます。)
700         *
701         * @og.rev 4.3.6.0 (2009/04/01)
702         * @og.rev 5.1.7.0 (2010/06/01) 動的プルダウン実装見直し
703         *
704         * @param param パラメータ
705         */
706        public void setRawParameter( final String param ) {
707                rawEditParameter = param;
708                rawRendParameter = param;
709        }
710
711        /**
712         * {@XXXX}を変換していない状態の編集種別 parameterセット用
713         *
714         * DBColumn とのデータ変換のため、内部変数として、編集種別・表示種別を分けて管理します。
715         *
716         * @og.rev 5.1.8.0 (2010/07/01) 新規追加
717         *
718         * @param param パラメータ
719         */
720        public void setRawEditParameter( final String param ) {
721                rawEditParameter = param;
722        }
723
724        /**
725         * {@XXXX}を変換していない状態の表示種別 parameterセット用
726         *
727         * DBColumn とのデータ変換のため、内部変数として、編集種別・表示種別を分けて管理します。
728         *
729         * @og.rev 5.1.8.0 (2010/07/01) 新規追加
730         *
731         * @param param パラメータ
732         */
733        public void setRawRendParameter( final String param ) {
734                rawRendParameter = param;
735        }
736
737        /**
738         * イベントURLのセット
739         *
740         * イベントカラム利用時にコールされるURLのセット
741         *
742         * @og.rev 4.3.6.0 (2009/04/01)
743         * @param url イベントURL
744         */
745        public void setEventURL( final String url ) {
746                this.eventURL = url;
747        }
748
749        /**
750         * イベントURLの取得
751         *
752         * eventColumn利用時のJSから呼び出すためのURL取得
753         *
754         * @og.rev 4.3.6.0 (2009/04/01)
755         *
756         * @return  イベントURL
757         */
758        public String getEventURL() {
759                return eventURL;
760        }
761
762        /**
763         * MENU時にラベル短ベースで表示するかどうか[auto/true/その他]のコントロール
764         *
765         * auto/trueが有効。それ以外はfalse扱いとする。標準auto
766         *
767         * @og.rev 5.5.1.0 (2012/04/03)
768         * @param use 表示するかどうか[auto/true/その他]
769         */
770        public void setUseSLabel( final String use ) {
771                this.useSLabel = use;
772        }
773
774        /**
775         * MENU時にラベル短ベースで表示するかどうかのコントロール
776         *
777         * @og.rev 5.5.1.0 (2012/04/03)
778         *
779         * @return  イベントURL
780         */
781        public String getUseSLabel() {
782                return useSLabel;
783        }
784
785        /**
786         * 非表示文字列を設定します。
787         *
788         * これは、例えば、数字型の場合は、0 がデフォルトなどの場合、
789         * あえて表示したくないなどのケースに使います。
790         * そのような状況が設定されていない場合は、null を設定してください。
791         * 初期値は、null です。
792         *
793         * @og.rev 5.6.2.3 (2013/03/22) 新規追加
794         *
795         * @param val 非表示にする文字列
796         */
797        public void setNoDisplayVal( final String val ) {
798                this.noDisplayVal = val;
799        }
800
801        /**
802         * 非表示文字列を返します。
803         *
804         * これは、例えば、数字型の場合は、0 がデフォルトなどの場合、
805         * あえて表示したくないなどのケースに使います。
806         * そのような状況が設定されていない場合は、null が返されます。
807         * 初期値は、null です。
808         *
809         * @og.rev 5.6.2.3 (2013/03/22) 新規追加
810         *
811         * @return 非表示文字
812         */
813        public String getNoDisplayVal() {
814                return noDisplayVal;
815        }
816
817        /**
818         * 新しいコードセレクトを作成する為の「キー:ラベル キー:ラベル」の文字列を指定します。
819         *
820         * @og.tag
821         * 既存の、CodeData には存在しない、新しいコードリソースを作成する為の、文字列を指定します。
822         * 文字列は、「キー:ラベル キー:ラベル」形式で、スペースで分解後、":" でキーとラベルに分離します。
823         * スペース分解後の文字列に、":" が含まれていない場合は、無視されます。
824         * 内部的には、CodeData を作成しません。DBColumnオブジェクト内で、直接、Selection_KEYVAL を生成します。
825         * codeName 、codeList、codeGroup などが指定された場合は、そちらが優先されます。
826         * ※ この属性は、DBColumnConfig 作成時には設定されません。このメソッドを通してのみ設定可能です。
827         *
828         * @og.rev 5.6.6.0 (2013/07/05)  新規作成
829         *
830         * @param       keyval  新しいコードセレクトを作成する為の KEY:VAL 文字列
831         */
832        public void setCodeKeyVal( final String keyval ) {
833                this.codeKeyVal = keyval;
834        }
835
836        /**
837         * 新しいコードセレクトを作成する為の「キー:ラベル キー:ラベル」の文字列を返します。
838         *
839         * @og.tag
840         * 既存の、CodeData には存在しない、新しいコードリソースを作成する為の、内部文字列を返します。
841         *
842         * @og.rev 5.6.6.0 (2013/07/05)  新規作成
843         *
844         * @return 「キー:ラベル キー:ラベル」の文字列
845         */
846        public String getCodeKeyVal() {
847                return codeKeyVal;
848        }
849
850        /**
851         * 文字タイプ出力フラグを設定します(初期値:true)。
852         *
853         * これは、レンデラーでのExcel出力時のセルタイプに影響します。
854         * trueの場合は数値も全て文字として出力します。
855         * レンデラ時も数値として出力したい場合(doubleに一度変換されます)にfalse設定を行います。
856         * 初期値は、true です。
857         *
858         * @og.rev 5.7.6.3 (2014/05/23) 新規追加
859         *
860         * @param flg 出力フラグ
861         */
862        public void setStringOutput( final boolean flg ) {
863                stringOutput = flg;
864        }
865
866        /**
867         * 文字タイプ出力フラグを返します(初期値:true)。
868         *
869         * これは、レンデラーでのExcel出力時のセルタイプに影響します。
870         * trueの場合は数値も全て文字として出力します。
871         * レンデラ時も数値として出力したい場合(doubleに一度変換されます)にfalse設定を行います。
872         * 初期値は、true です。
873         *
874         * @og.rev 5.7.6.3 (2014/05/23) 新規追加
875         *
876         * @return 出力フラグ
877         */
878        public boolean isStringOutput() {
879                return stringOutput;
880        }
881}