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     * こã?クラスは、MISシスãƒ?ƒ 共通ã?管ç�?‚¯ラスですã?
024     * 具体的にはã€?
025     *     更新フラグ  FGJ
026     *     作æ?日æ™?   DYSET
027     *     作æ??°?§    PGSET
028     *     作æ?親?°?§  PGPSET
029     *     作æ?社員    USRSET
030     *     更新日æ™?   DYUPD
031     *     更新?°?§    PGUPD
032     *     更新親?°?§  PGPUPD
033     *     更新社員    USRUPD
034     * などのæƒ??をã?INSERT、UPDATE の状況に応じて提供しますã?
035     * INSERT には、すべてのæƒ??(XXUPD)にもå?をセãƒ?ƒˆしますã?
036     * これは、UPDATE された日付や時刻で、ä¸?¦§検索できるようにする為でã€?
037     * null にしておくと、IS NULL で問い合わせるå¿?¦�がありますã?
038     * INSERT ãƒ??タã�?�‘取å?すå?合ã?、WHERE DYSET = DYUPD としますã?
039     *
040     * コンストラクターでは、テーブル名ã?ユーザーID,画面ID を受け取りますã?
041     * 登録時刻は、このオブジェクトが生æ?された時間を通常は使用しますã?
042     * ãƒ??ブル名を渡すã?は、ワークなど、テーブル単位に処ç�?�™るカラãƒ?�Œ
043     * 異なるã?で、それへの対応ですã?
044     * 処ç�?�Œ簡ç´?Œ–できるように、ルールを規定すべきですã?
045     *
046     * @og.rev 4.3.7.5 (2009/07/08) 新規追åŠ?
047     * @og.group ãƒ??タ登録
048     *
049     * @version  4.0
050     * @author   Kazuhiko Hasegawa
051     * @since    JDK5.0,
052     */
053    public class DBConstValue_UA implements DBConstValue {
054            //* こã?プログラãƒ??VERSIONæ–?­—å?を設定しますã?       {@value} */
055            private static final String VERSION = "4.3.7.5 (2009/07/08)" ;
056    
057            private static final String[] MSTR_INSKEYS =
058                    new String[] { "FGJ","DYSET","DYUPD","USRSET","USRUPD","PGSET","PGUPD","PGPSET","PGPUPD" };
059    
060            private static final String[] MSTR_UPDKEYS =
061                    new String[] { "FGJ","DYUPD","USRUPD","PGUPD","PGPUPD" };
062    
063            private static final String[] MSTR_LOGDELKEYS = // 4.3.7.0 (2009/06/01)
064                    new String[] { "FGJ","DYUPD","USRUPD","PGUPD","PGPUPD" };
065    
066            private static final String[] ZERO = new String[0] ;
067    
068            private String[] insKeys = ZERO;
069            private String[] insVals = ZERO;
070    
071            private String[] updKeys = ZERO;
072            private String[] updVals = ZERO;
073    
074            private String[] logDelKeys = ZERO; // 4.3.7.0 (2009/06/01)
075            private String[] logDelVals = ZERO; // 4.3.7.0 (2009/06/01)
076    
077            /**
078             * 初期化情報を設定しますã?
079             *
080             * @param       table   ãƒ??ブルå�?
081             * @param       user    ユーザーID
082             * @param       gamen   画面ID
083             */
084            public void init( final String table, final String user, final String gamen ) {
085                    if( isUseClm( table ) ) {
086                            String userID  = "'" + user + "'";
087                            String gamenID = "'" + gamen + "'";
088                            String timestamp = "'" + HybsSystem.getDate( "yyyyMMddHHmmss" ) + "'" ;
089    
090                            insKeys = MSTR_INSKEYS;
091                            insVals = new String[] {
092                                                             "'1'"                  // FGJ
093                                                            ,timestamp              // DYSET
094                                                            ,timestamp              // DYUPD
095                                                            ,userID                 // USRSET
096                                                            ,userID                 // USRUPD
097                                                            ,gamenID                // PGSET
098                                                            ,gamenID                // PGUPD
099                                                            ,gamenID                // PGPSET
100                                                            ,gamenID                // PGPUPD
101                            };
102    
103                            updKeys = MSTR_UPDKEYS;
104                            updVals = new String[] {
105                                                             "'1'"                  // FGJ
106                                                            ,timestamp              // DYUPD
107                                                            ,userID                 // USRUPD
108                                                            ,gamenID                // PGUPD
109                                                            ,gamenID                // PGPUPD
110                            };
111    
112                            // 4.3.7.0 (2009/06/01)
113                            logDelKeys = MSTR_LOGDELKEYS;
114                            logDelVals = new String[] {
115                                                             "'9'"                  // FGJ
116                                                            ,timestamp              // DYUPD
117                                                            ,userID                 // USRUPD
118                                                            ,gamenID                // PGUPD
119                                                            ,gamenID                // PGPUPD
120                            };
121                    }
122            }
123    
124            /**
125             * インサートするå?合ã?キー配å?を返しますã?
126             *
127             * æŒ?®šã?値がなければã€?•·さゼロ配å?を返しますã?
128             *
129             * @og.rev 4.3.1.1 (2008/08/23) 変更可能なオブジェクトã?参ç?を直接返さなã�?‚ˆã�?�«しますã?
130             *
131             * @return      インサートするå?合ã?値配å?(非null)
132             */
133            public String[] getInsertKeys() {
134    //              return insKeys ;
135                    return insKeys.clone();
136            }
137    
138            /**
139             * インサートするå?合ã?値配å?を返しますã?
140             *
141             * æŒ?®šã?値がなければã€?•·さゼロ配å?を返しますã?
142             *
143             * @og.rev 4.3.1.1 (2008/08/23) 変更可能なオブジェクトã?参ç?を直接返さなã�?‚ˆã�?�«しますã?
144             *
145             * @return      インサートするå?合ã?値配å?(非null)
146             */
147            public String[] getInsertVals() {
148    //              return insVals ;
149                    return insVals.clone();
150            }
151    
152            /**
153             * アãƒ??ãƒ??トするå?合ã?キー配å?を返しますã?
154             *
155             * æŒ?®šã?値がなければã€?•·さゼロ配å?を返しますã?
156             *
157             * @og.rev 4.3.1.1 (2008/08/23) 変更可能なオブジェクトã?参ç?を直接返さなã�?‚ˆã�?�«しますã?
158             *
159             * @return      アãƒ??ãƒ??トするå?合ã?キー配å?(非null)
160             */
161            public String[] getUpdateKeys() {
162    //              return updKeys ;
163                    return updKeys.clone();
164            }
165    
166            /**
167             * アãƒ??ãƒ??トするå?合ã?値配å?を返しますã?
168             *
169             * æŒ?®šã?値がなければã€?•·さゼロ配å?を返しますã?
170             *
171             * @og.rev 4.3.1.1 (2008/08/23) 変更可能なオブジェクトã?参ç?を直接返さなã�?‚ˆã�?�«しますã?
172             *
173             * @return      アãƒ??ãƒ??トするå?合ã?キー配å?(非null)
174             */
175            public String[] getUpdateVals() {
176    //              return updVals ;
177                    return updVals.clone();
178            }
179    
180            /**
181             * ãƒ?ƒªーãƒ?論理削除) する場合ã?キー配å?を返しますã?
182             *
183             * æŒ?®šã?値がなければã€?•·さゼロ配å?を返しますã?
184             *
185             * @og.rev 4.3.7.0 (2009/06/01) 新規作æ?
186             *
187             * @return      ãƒ?ƒªートするå?合ã?キー配å?(非null)
188             */
189            public String[] getLogicalDeleteKeys() {
190                    return logDelKeys.clone();
191            }
192    
193            /**
194             * ãƒ?ƒªーãƒ?論理削除) する場合ã?値配å?を返しますã?
195             *
196             * æŒ?®šã?値がなければã€?•·さゼロ配å?を返しますã?
197             *
198             * @og.rev 4.3.7.0 (2009/06/01) 新規作æ?
199             *
200             * @return      ãƒ?ƒªートするå?合ã?キー配å?(非null)
201             */
202            public String[] getLogicalDeleteVals() {
203    //              return updVals ;
204                    return logDelVals.clone();
205            }
206    
207            /**
208             * カラãƒ?‚’返すかどã�?�‹を決めるロジãƒ?‚¯
209             *
210             * ãƒ??ブル名よりã?ロジãƒ?‚¯çš?�«導き出しますã?
211             *
212             * @param       table   ãƒ??ブルå�?
213             *
214             * @return      カラãƒ?‚’返すかどã�?�‹(true:カラãƒ?‚’生æ?/false:カラãƒ??生æ?しなã�?
215             */
216            private boolean isUseClm( final String table ) {
217                    boolean flag = ( table != null &&
218                                                     table.startsWith( "UA" ) ) ;
219    
220                    return flag ;
221            }
222    }