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 }