001    /*
002     * Copyright (c) 2009 The openGion Project.
003     *
004     * Licensed under the Apache License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     *
008     *     http://www.apache.org/licenses/LICENSE-2.0
009     *
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
013     * either express or implied. See the License for the specific language
014     * governing permissions and limitations under the License.
015     */
016    package org.opengion.plugin.query;
017    
018    import org.opengion.hayabusa.common.HybsSystem;
019    import org.opengion.hayabusa.db.DBConstValue;
020    
021    /**
022     * ãƒ??タベã?ス登録時に、固定å?カラãƒ??設定を行うæƒ??を管ç�?�™るクラスですã?
023     * こã?クラスは、GrowingMIS用の管ç�?‚¯ラスですã?
024     * 具体的にはã€?
025     *     更新フラグ  FGJ
026     *     作æ?日æ™?   DYSET
027     *     作æ?社員    USRSET
028     *     更新日æ™?   DYUPD
029     *     更新社員    DYUPD
030     *     更新?°?§    PGUPD
031     * などのæƒ??をã?INSERT、UPDATE の状況に応じて提供しますã?
032     * INSERT には、すべてのæƒ??(XXUPD)にもå?をセãƒ?ƒˆしますã?
033     * これは、UPDATE された日付や時刻で、ä¸?¦§検索できるようにする為でã€?
034     * null にしておくと、IS NULL で問い合わせるå¿?¦�がありますã?
035     * INSERT ãƒ??タã�?�‘取å?すå?合ã?、WHERE DYSET = DYUPD としますã?
036     *
037     * コンストラクターでは、テーブル名ã?ユーザーID,画面ID を受け取りますã?
038     * 登録時刻は、このオブジェクトが生æ?された時間を通常は使用しますã?
039     * ãƒ??ブル名を渡すã?は、ワークなど、テーブル単位に処ç�?�™るカラãƒ?�Œ
040     * 異なるã?で、それへの対応ですã?
041     * 処ç�?�Œ簡ç´?Œ–できるように、ルールを規定すべきですã?
042     *
043     * @og.rev 4.1.2.0 (2008/03/12) 新規追åŠ?
044     * @og.group ãƒ??タ登録
045     *
046     * @version  4.0
047     * @author   Kazuhiko Hasegawa
048     * @since    JDK5.0,
049     */
050    public class DBConstValue_GE implements DBConstValue {
051            //* こã?プログラãƒ??VERSIONæ–?­—å?を設定しますã?       {@value} */
052            private static final String VERSION = "4.3.7.0 (2009/06/01)" ;
053    
054            private static final String[] MSTR_INSKEYS =
055                    new String[] { "FGJ","DYSET","DYUPD","USRSET","USRUPD","PGUPD" };
056    
057            private static final String[] MSTR_UPDKEYS =
058                    new String[] { "FGJ","DYUPD","USRUPD","PGUPD" };
059    
060            private static final String[] MSTR_LOGDELKEYS = // 4.3.7.0 (2009/06/01)
061                    new String[] { "FGJ","DYUPD","USRUPD","PGUPD" };
062    
063            private static final String[] ZERO = new String[0] ;
064    
065            private String[] insKeys = ZERO;
066            private String[] insVals = ZERO;
067    
068            private String[] updKeys = ZERO;
069            private String[] updVals = ZERO;
070    
071            private String[] logDelKeys = ZERO; // 4.3.7.0 (2009/06/01)
072            private String[] logDelVals = ZERO; // 4.3.7.0 (2009/06/01)
073    
074            /**
075             * 初期化情報を設定しますã?
076             *
077             * @param       table   ãƒ??ブルå�?
078             * @param       user    ユーザーID
079             * @param       gamen   画面ID
080             */
081            public void init( final String table, final String user, final String gamen ) {
082                    if( isUseClm( table ) ) {
083                            String userID  = "'" + user + "'";
084                            String gamenID = "'" + gamen + "'";
085                            String timestamp = "'" + HybsSystem.getDate( "yyyyMMddHHmmss" ) + "'" ;
086    
087                            insKeys = MSTR_INSKEYS;
088                            insVals = new String[] {
089                                                             "'1'"                  // FGJ
090                                                            ,timestamp              // DYSET
091                                                            ,timestamp              // DYUPD
092                                                            ,userID                 // USRSET
093                                                            ,userID                 // USRUPD
094                                                            ,gamenID                // PGUPD
095                            };
096    
097                            updKeys = MSTR_UPDKEYS;
098                            updVals = new String[] {
099                                                             "'1'"                  // FGJ
100                                                            ,timestamp              // DYUPD
101                                                            ,userID                 // USRUPD
102                                                            ,gamenID                // PGUPD
103                            };
104    
105                            // 4.3.7.0 (2009/06/01)
106                            logDelKeys = MSTR_LOGDELKEYS;
107                            logDelVals = new String[] {
108                                                             "'9'"                  // FGJ
109                                                            ,timestamp              // DYUPD
110                                                            ,userID                 // USRUPD
111                                                            ,gamenID                // PGUPD
112                            };
113                    }
114            }
115    
116            /**
117             * インサートするå?合ã?キー配å?を返しますã?
118             *
119             * æŒ?®šã?値がなければã€?•·さゼロ配å?を返しますã?
120             *
121             * @og.rev 4.3.1.1 (2008/08/23) 変更可能なオブジェクトã?参ç?を直接返さなã�?‚ˆã�?�«しますã?
122             *
123             * @return      インサートするå?合ã?キー配å?(非null)
124             */
125            public String[] getInsertKeys() {
126    //              return insKeys ;
127                    return insKeys.clone();
128            }
129    
130            /**
131             * インサートするå?合ã?値配å?を返しますã?
132             *
133             * æŒ?®šã?値がなければã€?•·さゼロ配å?を返しますã?
134             *
135             * @og.rev 4.3.1.1 (2008/08/23) 変更可能なオブジェクトã?参ç?を直接返さなã�?‚ˆã�?�«しますã?
136             *
137             * @return      インサートするå?合ã?キー配å?(非null)
138             */
139            public String[] getInsertVals() {
140    //              return insVals ;
141                    return insVals.clone();
142            }
143    
144            /**
145             * アãƒ??ãƒ??トするå?合ã?キー配å?を返しますã?
146             *
147             * æŒ?®šã?値がなければã€?•·さゼロ配å?を返しますã?
148             *
149             * @og.rev 4.3.1.1 (2008/08/23) 変更可能なオブジェクトã?参ç?を直接返さなã�?‚ˆã�?�«しますã?
150             *
151             * @return      アãƒ??ãƒ??トするå?合ã?キー配å?(非null)
152             */
153            public String[] getUpdateKeys() {
154    //              return updKeys ;
155                    return updKeys.clone();
156            }
157    
158            /**
159             * アãƒ??ãƒ??トするå?合ã?値配å?を返しますã?
160             *
161             * æŒ?®šã?値がなければã€?•·さゼロ配å?を返しますã?
162             *
163             * @og.rev 4.3.1.1 (2008/08/23) 変更可能なオブジェクトã?参ç?を直接返さなã�?‚ˆã�?�«しますã?
164             *
165             * @return      アãƒ??ãƒ??トするå?合ã?キー配å?(非null)
166             */
167            public String[] getUpdateVals() {
168    //              return updVals ;
169                    return updVals.clone();
170            }
171    
172            /**
173             * ãƒ?ƒªーãƒ?論理削除) する場合ã?キー配å?を返しますã?
174             *
175             * æŒ?®šã?値がなければã€?•·さゼロ配å?を返しますã?
176             *
177             * @og.rev 4.3.7.0 (2009/06/01) 新規作æ?
178             *
179             * @return      ãƒ?ƒªートするå?合ã?キー配å?(非null)
180             */
181            public String[] getLogicalDeleteKeys() {
182                    return logDelKeys.clone();
183            }
184    
185            /**
186             * ãƒ?ƒªーãƒ?論理削除) する場合ã?値配å?を返しますã?
187             *
188             * æŒ?®šã?値がなければã€?•·さゼロ配å?を返しますã?
189             *
190             * @og.rev 4.3.7.0 (2009/06/01) 新規作æ?
191             *
192             * @return      ãƒ?ƒªートするå?合ã?キー配å?(非null)
193             */
194            public String[] getLogicalDeleteVals() {
195    //              return updVals ;
196                    return logDelVals.clone();
197            }
198    
199            /**
200             * カラãƒ?‚’返すかどã�?�‹を決めるロジãƒ?‚¯
201             *
202             * ãƒ??ブル名よりã?ロジãƒ?‚¯çš?�«導き出しますã?
203             *
204             * @param       table   ãƒ??ブルå�?
205             *
206             * @return      カラãƒ?‚’返すかどã�?�‹(true:カラãƒ?‚’生æ?/false:カラãƒ??生æ?しなã�?
207             */
208            private boolean isUseClm( final String table ) {
209                    boolean flag = ( table != null &&
210                                                     table.startsWith( "GE" ) ) ;
211    
212                    return flag ;
213            }
214    }