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