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