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_GF 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                    init( table, user, gamen, "" );
086            }
087    
088            /**
089             * 初期化情報を設定しますã?
090             *
091             * @param       table   ãƒ??ブルå�?
092             * @param       user    ユーザーID
093             * @param       gamen   画面ID
094             * @param       pgamen  親画面ID
095             */
096            public void init( final String table, final String user, final String gamen, final String pgamen ) {
097                    if( isUseClm( table ) ) {
098                            String userID    = "'" + user + "'";
099                            String gamenID   = "'" + gamen + "'";
100                            String pgamenID  = "'" + pgamen + "'";
101                            String timestamp = "'" + HybsSystem.getDate( "yyyyMMddHHmmss" ) + "'" ;
102    
103                            insKeys = MSTR_INSKEYS;
104                            insVals = new String[] {
105                                                             "'1'"                  // FGJ
106                                                            ,timestamp              // DYSET
107                                                            ,timestamp              // DYUPD
108                                                            ,userID                 // USRSET
109                                                            ,userID                 // USRUPD
110                                                            ,gamenID                // PGSET
111                                                            ,gamenID                // PGUPD
112                                                            ,pgamenID               // PGPSET
113                                                            ,pgamenID               // PGPUPD
114                            };
115    
116                            updKeys = MSTR_UPDKEYS;
117                            updVals = new String[] {
118                                                             "'1'"                  // FGJ
119                                                            ,timestamp              // DYUPD
120                                                            ,userID                 // USRUPD
121                                                            ,gamenID                // PGUPD
122                                                            ,pgamenID               // PGPUPD
123                            };
124    
125                            // 4.3.7.0 (2009/06/01)
126                            logDelKeys = MSTR_LOGDELKEYS;
127                            logDelVals = new String[] {
128                                                             "'9'"                  // FGJ
129                                                            ,timestamp              // DYUPD
130                                                            ,userID                 // USRUPD
131                                                            ,gamenID                // PGUPD
132                                                            ,pgamenID               // PGPUPD
133                            };
134                    }
135            }
136    
137            /**
138             * インサートするå?合ã?キー配å?を返しますã?
139             *
140             * æŒ?®šã?値がなければã€?•·さゼロ配å?を返しますã?
141             *
142             * @og.rev 4.3.1.1 (2008/08/23) 変更可能なオブジェクトã?参ç?を直接返さなã�?‚ˆã�?�«しますã?
143             *
144             * @return      インサートするå?合ã?値配å?(非null)
145             */
146            public String[] getInsertKeys() {
147    //              return insKeys ;
148                    return insKeys.clone();
149            }
150    
151            /**
152             * インサートするå?合ã?値配å?を返しますã?
153             *
154             * æŒ?®šã?値がなければã€?•·さゼロ配å?を返しますã?
155             *
156             * @og.rev 4.3.1.1 (2008/08/23) 変更可能なオブジェクトã?参ç?を直接返さなã�?‚ˆã�?�«しますã?
157             *
158             * @return      インサートするå?合ã?値配å?(非null)
159             */
160            public String[] getInsertVals() {
161    //              return insVals ;
162                    return insVals.clone();
163            }
164    
165            /**
166             *アãƒ??ãƒ??トするå?合ã?キー配å?を返しますã?
167             *
168             * æŒ?®šã?値がなければã€?•·さゼロ配å?を返しますã?
169             *
170             * @og.rev 4.3.1.1 (2008/08/23) 変更可能なオブジェクトã?参ç?を直接返さなã�?‚ˆã�?�«しますã?
171             *
172             * @return      アãƒ??ãƒ??トするå?合ã?キー配å?(非null)
173             */
174            public String[] getUpdateKeys() {
175    //              return updKeys ;
176                    return updKeys.clone();
177            }
178    
179            /**
180             * アãƒ??ãƒ??トするå?合ã?値配å?を返しますã?
181             *
182             * æŒ?®šã?値がなければã€?•·さゼロ配å?を返しますã?
183             *
184             * @og.rev 4.3.1.1 (2008/08/23) 変更可能なオブジェクトã?参ç?を直接返さなã�?‚ˆã�?�«しますã?
185             *
186             * @return      アãƒ??ãƒ??トするå?合ã?キー配å?(非null)
187             */
188            public String[] getUpdateVals() {
189    //              return updVals ;
190                    return updVals.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[] getLogicalDeleteKeys() {
203                    return logDelKeys.clone();
204            }
205    
206            /**
207             * ãƒ?ƒªーãƒ?論理削除) する場合ã?値配å?を返しますã?
208             *
209             * æŒ?®šã?値がなければã€?•·さゼロ配å?を返しますã?
210             *
211             * @og.rev 4.3.7.0 (2009/06/01) 新規作æ?
212             *
213             * @return      ãƒ?ƒªートするå?合ã?キー配å?(非null)
214             */
215            public String[] getLogicalDeleteVals() {
216    //              return updVals ;
217                    return logDelVals.clone();
218            }
219    
220            /**
221             * カラãƒ?‚’返すかどã�?�‹を決めるロジãƒ?‚¯
222             *
223             * ãƒ??ブル名よりã?ロジãƒ?‚¯çš?�«導き出しますã?
224             *
225             * @param       table   ãƒ??ブルå�?
226             *
227             * @return      カラãƒ?‚’返すかどã�?�‹(true:カラãƒ?‚’生æ?/false:カラãƒ??生æ?しなã�?
228             */
229            private boolean isUseClm( final String table ) {
230                    boolean flag = ( table != null ) ;
231    
232                    return flag ;
233            }
234    }