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.hayabusa.taglib;
017
018 import org.opengion.hayabusa.common.HybsSystem;
019 import org.opengion.hayabusa.common.HybsSystemException;
020 import org.opengion.hayabusa.db.DBColumn;
021 import org.opengion.hayabusa.db.DBTableModel;
022 import org.opengion.hayabusa.db.DBTableModelUtil;
023
024 import org.opengion.fukurou.util.StringUtil;
025 import static org.opengion.fukurou.util.StringUtil.nval ;
026
027 import java.util.Map;
028 import java.util.LinkedHashMap;
029 import java.util.Locale ;
030
031 /**
032 * ?ć¤ć® DBTableModel ć® é?å¦ē?č”ććæć°ć§ćć?
033 *
034 * ćć¹ćæćØć¹ć¬ć¼ćć?ććććć® DBTableModel ćåå¾ććć?ć¼ćøćå·®å??ęä»ćŖć©ć®
035 * ć??ćæå¦ē?č”ćć¾ćć?ēµęćć?ę?®ć? tableId 㨠scope ć«ęøćå?ćć¾ćć?
036 * ćć¹ćæć??ćć«ćÆćmasterTableId 㨠masterScope ććåćåŗćć¾ćć?ć¹ć¬ć¼ććć¼ćć«ćÆć?
037 * slaveTableId 㨠slaveScope ććåćåŗćć¾ćć?
038 * åćåŗććć?DBTableModel ćÆćć?ć¹ćæć??ćć«ć«åƾćć¦ćć¹ć¬ć¼ććć¼ćć«ę??ćåē
§ććå½¢ć§č”ććć?
039 * ēµęćÆćć¹ćæć??ćć«ć«äøęøććććå½¢ć§č”ććć¾ćć?
040 * ę?®ć§ććć¢ćÆć·ć§ć³ćÆćå?ä½éå?UNION_ALL)ćåé?(UNION)ćē©éå?INTERSECT)ć?
041 * å·®é?(MINUS)ćå·®å?å?DIFFERENCE)ćå?åę?(UNION_CLM)ć?åčæ½å?ADD_CLM)ć?ć°ć«ć¼ć?GROUP)ć§ćć?
042 * ååęćØåčæ½å??ć°ć«ć¼ć仄å¤ć?å¦ē?§ćÆćć«ć©ć??ćØć«ć©ć?°ćÆåę°ć§ćŖććć°ćŖćć¾ććć?
043 * primaryKeys ć?unionClms ćŖć©ć®ę?®ć?ćć¼åć?ćć?ć¹ćæć??ćć«ć«ååØććåæ?¦ćććć¾ćć?
044 * ćć¹ćæć??ćć«ćØåćć«ć©ć?Ŗå·ć§ć¹ć¬ć¼ććć¼ćć«ććć??ćæćčŖćæåŗćć¾ćć?
045 * (ć«ć©ć?ć?±ę?ćÆćē°ćŖć£ć¦ććć¾ć?¾ćććć?ćć¹ćæć??ćć«ć«ęŗę ćć¾ćć?)
046 * ć¾ćć?åē¬(ćć¹ćæć??ćć«ć®ćæ)ć§ćåé?ćØåēć?ćć°ć«ć¼ć?GROUP)ć使ēØćććØćęå®ć?
047 * ć«ć©ć?§ć®ć¦ćć?ćÆåćč”ćććØćåÆč½ć«ćŖćć¾ćć?ć°ć«ć¼ćå?ē?§ćÆćå?č”åŖå
ćØćć?
048 * ?åē®ć«ē¾ććę??ćåé¤ććććØć«ćŖćć¾ćć?ć°ć«ć¼ć?ćęå®ćććå “åć?ć?
049 * ć¹ć¬ć¼ććć¼ćć«ćÆē”č¦ććć¾ćć?ć?ćć?å¦ē?«ććć¦ćć?é?å¦ē?č”ćäø»ćć¼ć§
050 * äø?¦ć°ć«ć¼ćåććć¾ćć?å
Øä½éå?UNION_ALL)ć§å¦ē?ćå?åć§ćć?äø»ćć¼ćć¦ćć?ćÆć§
051 * ćŖć??åć?ćć?ć¹ćæć¼ćć¹ć¬ć¼ćć?å?ć¼ćć«ć§äø?¦ć°ć«ć¼ćåćććå¾ć§ćć?ć¼ćøććć¾ćć?
052 * (ćć?ćøå¾ć«ćÆćåäø?ø»ćć¼ćęć¤č”ć?ååØćć¾ćć?)
053 * å
Øä½éå?UNION_ALL)ć®å “åć?ćæćmergeKeys ćęå®ććåæ?¦ć?ććć¾ććććć®å “åć?ć?
054 * ćć¼ćŖćć?ćććć?ć¹ćæć¼ćØć¹ć¬ć¼ćć?ć??ćć«ćåć«åę?ććć?ć«ćŖćć¾ćć?
055 *
056 * å¦ē?å¾ć§ć®DBTableModelć®ä»¶ę°ćÆć仄äøć?å¤ę°ć§åå¾ććććØćåÆč½ć§ćć?
057 * å¦ē?ć®ćć¹ćæć¼ć??ćć« : {@DB.MASTER_COUNT}
058 * å¦ē?ć®ć¹ć¬ć¼ććć¼ćć« : {@DB.SLAVE_COUNT}
059 * å¦ē?¾? : {@DB.COUNT}
060 *
061 * @og.formSample
062 * āå½¢å¼ļ¼?
063 * ć»<og:tableMerge
064 * action = "UNION_ALL|UNION|INTERSECT|MINUS|DIFFERENCE|UNION_CLM|ADD_CLM|GROUP|UNION_SELROW"
065 * tableId = "DEFAULT" åŗåćć¼ćć«ć® tableId
066 * scope = "session" åŗåćć¼ćć«ć® scope
067 * masterTableId = "DEFAULT" ćć¹ćæć??ćć«ć® tableId
068 * masterScope = "session" ćć¹ćæć??ćć«ć® scope
069 * slaveTableId = "DEFAULT" ć¹ć¬ć¼ććć¼ćć«ć® tableId
070 * slaveScope = "request" ć¹ć¬ć¼ććć¼ćć«ć® scope
071 * masterKeys = "AA,BB,CC" ćć¹ćæć??ćć«ć®é?å¦ē?č”ćäø»ćć¼
072 * slaveKeys = "AA,BB,CC" ć¹ć¬ć¼ććć¼ćć«ć®é?å¦ē?č”ćäø»ćć¼(nullę?masterKeys)
073 * diffKeys = "DD,EE" ćć¹ćæć??ćć«ć®DIFFERENCEęć?å·®å?«ć©ć?
074 * unionClms = "DD,EE" UNION_CLM,ADD_CLMęć«ć¹ć¬ć¼ćććć?ć¹ćæćøčæ½å?ćć«ć©ć?
075 * modifyClms = "FF,GG" DIFFERENCEęć«ć¹ć¬ć¼ćććć?ć¹ćæćøå¤ćę“ę°ććć«ć©ć?
076 * noSideEffect = "false" ć??ćć«ć¢ć?«ć«åƾććåÆä½ēØ(true:ćŖć?false:ćć)
077 * useDiffData = "true" DIFFERENCEęć«å·®å??ć¹ć¬ć¼ććć¼ćæćčæ½å?ććć©ć?
078 * useCheckOnly = "false" ćć¹ćæć??ćć«ć®éøęč”ć?ć??ćæć®ćæć対豔ć«å¦ē?č”ććć©ć?
079 * groupAddClms = "FF,GG" masterKeysć§é?å¦ē?ććØćć«ćēøéćć¼ćæćCSVé£ēµćć¦ę®ćć«ć©ć?
080 * display = "true" å¦ē?¦č¦ć蔨示ćććć©ć?
081 * />
082 * ābody?ćŖć?
083 *
084 * āTagå®ē¾©??
085 * <og:tableMerge
086 * command ćTAGćć³ćć³ć?NEW,RENEW)ćć»ć?ćć¾ć?åęå¤:NEW)
087 * action ćTAGćć¢ćÆć·ć§ć³ćęå®ćć¾ć?UNION_ALL|UNION|INTERSECT|MINUS|DIFFERENCE|UNION_CLM|ADD_CLM|GROUP|UNION_SELROW)
088 * tableId ćTAGćå?åå?ć®tableIdćęå®ćć¾ć?(åęå¤:HybsSystem#TBL_MDL_KEY[=h_tblmdl])
089 * scope ćTAGćå?åå?ć®scopećęå®ćć¾ć?åęå¤:session)
090 * masterTableId ćTAGćć?ć¹ćæć??ćć«ć®tableIdćęå®ćć¾ć?(åęå¤:HybsSystem#TBL_MDL_KEY[=h_tblmdl])
091 * masterScope ćTAGćć?ć¹ćæć??ćć«ć®scopećęå®ćć¾ć?åęå¤:session)
092 * slaveTableId ćTAGćć¹ć¬ć¼ććć¼ćć«ć®tableIdćęå®ćć¾ć?(åęå¤:HybsSystem#TBL_MDL_KEY[=h_tblmdl])
093 * slaveScope ćTAGćć¹ć¬ć¼ććć¼ćć«ć®scopećęå®ćć¾ć?åęå¤:session)
094 * masterKeys ćTAGćć?ć¹ćæć??ćć«ć®é?å¦ē?č”ćäø»ćć¼ćęå®ćć¾ć?
095 * slaveKeys ćTAGćć¹ć¬ć¼ććć¼ćć«ć®é?å¦ē?č”ćäø»ćć¼ćęå®ćć¾ć?
096 * diffKeys ćTAGćć?ć¹ćæć??ćć«ć®DIFFERENCEęć?å·®å?«ć©ć?ć?CSVå½¢å¼?ę?®ćć¾ć?
097 * unionClms ćTAGćć¹ć¬ć¼ćććć?ć¹ćæćøčæ½å?ćć«ć©ć?ćCSVå½¢å¼ć§ę?®ćć¾ć?
098 * modifyClms ćTAGćć¹ć¬ć¼ćććć?ć¹ćæćøå¤ćę“ę°ććć«ć©ć?ćCSVå½¢å¼ć§ę?®ćć¾ć?
099 * groupAddClms ćTAGćéåå?ē?ććØćć«ćēøéćć¼ćæćCSVé£ēµćć¦ę®ćć«ć©ć?ćCSVå½¢å¼ć§ę?®ćć¾ć?
100 * noSideEffect ćTAGććć¼ćć«ć¢ć?«ć«åƾććåÆä½ēØć®ęē”[true:ćŖć?false:ćć]ćęå®ćć¾ć?åęå¤:false:ćć)
101 * useDiffData ćTAGćå·®å??ć¹ć¬ć¼ććć¼ćæćēµęć??ćć«ć«čæ½å?ććć©ć?ćęå®ćć¾ć?åęå¤:true)
102 * useCheckOnly ćTAGćć?ć¹ćæć??ćć«ć®éøęč”ć?ć??ćæć®ćæć対豔ć«å¦ē?č”ććć©ć?ćęå®ćć¾ć?åęå¤:false)
103 * stopZero ćTAGćę¤ē“¢ēµęćļ¼ä»¶ć®ćØćå?ē?ē¶č”ćććć©ć?[true/false]ćęå®ćć¾ć?åęå¤:false[ē¶č”ćć])
104 * display ćTAGćć?ć¼ćøć®ēµęć蔨示ćććć©ć?ćęå®ćć¾ć?åęå¤:true)
105 * mainTrans ćTAGć?é常使ć?¾ćć)ćæć°ć§å¦ē?ććå¦ē?ć”ć¤ć³ćØćŖććć©ć³ć¶ćÆć·ć§ć³å¦ē?ć©ć?ćęå®ćć¾ć?åęå¤:false)
106 * caseKey ćTAGććć®ćæć°čŖä½ćå©ēØćććć©ć?ć®ę”ä»¶ćć¼ćęå®ćć¾ć?åęå¤:null)
107 * caseVal ćTAGććć®ćæć°čŖä½ćå©ēØćććć©ć?ć®ę”ä»¶å¤ćęå®ćć¾ć?åęå¤:null)
108 * caseNN ćTAGćęå®ć?å¤ćć?null/ć¼ćę?å? ć§ćŖć??å?Not Null=NN)ćÆććć®ćæć°ćÆä½æēØććć¾ć?åęå¤:true)
109 * caseNull ćTAGćęå®ć?å¤ćć?null/ć¼ćę?å? ć®å “åć?ććć®ćæć°ćÆä½æēØććć¾ć?åęå¤:true)
110 * separator ćTAGćgroupAddClmsć§ę?å?ćé?ēµććé?ē®åŗå?ę?ćć»ć?ćć¾ć?åęå¤:",")
111 * debug ćTAGććććć°ę??ćå?åćććć©ć?[true/false]ćęå®ćć¾ć?åęå¤:false)
112 * />
113 *
114 * ā使ēØä¾?
115 * ä¾ļ¼?ć?ć©ć«ć仄å¤ć«åæ?¦ćŖå±ę?ć®ćæę?®ćććµć³ćć«
116 * <og:tableMerge action="UNION"
117 * slaveScope = "request" masterKeys = "AA,BB,CC"
118 * />
119 *
120 * ć»åŗåå?ćć?ć¹ćæć¼ćØćć«åęå¤ćÆćtableId="DEFAULT" scope="session" ć§ćć?
121 * ć¹ć¬ć¼ćć?ćtableId ć?scope ćććåæ?¦ćććēŗćscope="request" ćęå®ćć¦ć?¾ćć?
122 * ęÆč¼?ćć«ć©ć?ćÆćć?ć¹ćæćć¹ć¬ć¼ćåćć§ććć°ćć?ć¹ćæć®ćæę?®ć§ćć¾ć?¾ććć?
123 *
124 * ä¾ļ¼?ćć¹ćæćć¹ć¬ć¼ććØćć”ć¢ćŖć«ę®ććŖć?ć?« request ć§ä½ę?ćć¾ćć?
125 * <og:tableMerge action="INTERSECT"
126 * masterScope = "request"
127 * slaveScope = "request"
128 * slaveTableId = "SLAVE"
129 * masterKeys = "AA,BB,CC"
130 * />
131 *
132 * ć»ćć¹ćæćć¹ć¬ć¼ććØćć”ć¢ćŖć«ę®ććŖć?ć?« request ć§ä½ę?ććå “åć?ć?
133 * ć©ć”ććć® TableId ćå¤ććåæ?¦ćććć¾ćć?
134 * åŗåå?ćÆåęå¤ć®ćtableId="DEFAULT" scope="session" ć§ćć?
135 *
136 * @og.rev 3.8.0.9 (2005/10/17) ę°č¦čæ½å?
137 * @og.group ?¤?¢ē»é²
138 *
139 * @version 0.9.0 2000/10/17
140 * @author Kazuhiko Hasegawa
141 * @since JDK5.0,
142 */
143 public class TableMergeTag extends CommonTagSupport {
144 //* ćć?ććć°ć©ć??VERSIONę?å?ćčØå®ćć¾ćć? {@value} */
145 private static final String VERSION = "5.7.6.2 (2014/05/16)" ;
146
147 private static final long serialVersionUID = 576220140516L ;
148
149 /** action å¼ę°ć«ęø”ćäŗć?åŗę„ć?ć¢ćÆć·ć§ć³ć³ćć³ć? å
Øä½éå?{@value} */
150 public static final String ACT_UNION_ALL = "UNION_ALL" ;
151 /** action å¼ę°ć«ęø”ćäŗć?åŗę„ć?ć¢ćÆć·ć§ć³ć³ćć³ć? åéå?{@value} */
152 public static final String ACT_UNION = "UNION" ;
153 /** action å¼ę°ć«ęø”ćäŗć?åŗę„ć?ć¢ćÆć·ć§ć³ć³ćć³ć? ē©éå?{@value} */
154 public static final String ACT_INTERSECT = "INTERSECT" ;
155 /** action å¼ę°ć«ęø”ćäŗć?åŗę„ć?ć¢ćÆć·ć§ć³ć³ćć³ć? å·®é?{@value} */
156 public static final String ACT_MINUS = "MINUS" ;
157 /** action å¼ę°ć«ęø”ćäŗć?åŗę„ć?ć¢ćÆć·ć§ć³ć³ćć³ć? å·®å?å?@value} */
158 public static final String ACT_DIFFERENCE = "DIFFERENCE" ;
159 /** action å¼ę°ć«ęø”ćäŗć?åŗę„ć?ć¢ćÆć·ć§ć³ć³ćć³ć? ååę{@value} */
160 public static final String ACT_UNION_CLM = "UNION_CLM" ;
161 /** action å¼ę°ć«ęø”ćäŗć?åŗę„ć?ć¢ćÆć·ć§ć³ć³ćć³ć? ååę{@value} */
162 public static final String ACT_ADD_CLM = "ADD_CLM" ;
163 /** action å¼ę°ć«ęø”ćäŗć?åŗę„ć?ć¢ćÆć·ć§ć³ć³ćć³ć? ć°ć«ć¼ć?{@value} */
164 public static final String ACT_GROUP = "GROUP" ;
165 /** action å¼ę°ć«ęø”ćäŗć?åŗę„ć?ć¢ćÆć·ć§ć³ć³ćć³ć? ć°ć«ć¼ć?{@value} */
166 public static final String ACT_UNION_SELROW = "UNION_SELROW" ;// 4.3.2.0 (2008/09/11)
167
168 /** action å¼ę°ć«ęø”ćäŗć?åŗę„ć?ć¢ćÆć·ć§ć³ć³ćć³ć?ćŖć¹ć? */
169 private static final String[] ACTION_LIST = new String[] {
170 ACT_UNION_ALL , ACT_UNION , ACT_INTERSECT , ACT_MINUS , ACT_DIFFERENCE , ACT_UNION_CLM , ACT_ADD_CLM , ACT_GROUP, ACT_UNION_SELROW };
171
172 /** command å¼ę°ć«ęø”ćäŗć?åŗę„ć?ć³ćć³ć? ę°č¦?{@value} */
173 public static final String CMD_NEW = "NEW" ;
174 /** command å¼ę°ć«ęø”ćäŗć?åŗę„ć?ć³ćć³ć? åę¤ē“¢ {@value} */
175 public static final String CMD_RENEW = "RENEW" ;
176 /** command å¼ę°ć«ęø”ćäŗć?åŗę„ć?ć³ćć³ć?ćŖć¹ć? */
177 private static final String[] COMMAND_LIST = new String[] { CMD_NEW , CMD_RENEW };
178
179 private String command = CMD_NEW;
180
181 private String action = null;
182 private String tableId = HybsSystem.TBL_MDL_KEY; // åŗåå?ć® tableId
183 private String scope = "session"; // åŗåå?ć® scope
184
185 private String masterTableId = HybsSystem.TBL_MDL_KEY; // ćć¹ćæć??ćć«ć® tableId
186 private String masterScope = "session"; // ćć¹ćæć??ćć«ć® scope
187 private String slaveTableId = HybsSystem.TBL_MDL_KEY; // ć¹ć¬ć¼ććć¼ćć«ć® tableId
188 private String slaveScope = "request"; // ć¹ć¬ć¼ććć¼ćć«ć® scope
189 private String masterKeys = null; // ćć¹ćæć??ćć«ć®é?å¦ē?č”ćäø»ćć¼
190 private String slaveKeys = null; // ć¹ć¬ć¼ććć¼ćć«ć®é?å¦ē?č”ćäø»ćć¼(nullę?masterKeys)
191 private String diffKeys = null; // ćć¹ćæć??ćć«ć®DIFFERENCEęć?å·®å?«ć©ć?
192 private String unionClms = null; // UNION_CLMęć«ć¹ć¬ć¼ćććć?ć¹ćæćøčæ½å?ćć«ć©ć?
193 private String modifyClms = null; // DIFFERENCEęć«ć¹ć¬ć¼ćććć?ć¹ćæćøå¤ćę“ę°ććć«ć©ć?
194 private String groupAddClms = null; // 5.1.4.0 (2010/03/01) masterKeysć§é?å¦ē?ććØćć«ćēøéćć¼ćæćCSVé£ēµćć¦ę®ćć«ć©ć?
195 private boolean noSideEffect = false; // ć??ćć«ć¢ć?«ć«åƾććåÆä½ēØ(true:ćŖć?false:ćć)
196 private boolean useDiffData = true; // DIFFERENCEęć«å·®å??ć¹ć¬ć¼ććć¼ćæćčæ½å?ććć©ć?
197 private boolean useCheckOnly = false; // ćć¹ćæć??ćć«ć®éøęč”ć?ć??ćæć®ćæć対豔ć«å¦ē?č”ććć©ć?
198 private boolean display = true;
199 private boolean isMainTrans = true; // 5.1.6.0 (2010/05/01) DBLastSqlć®å¦ē??č¦ē“ć?
200 private String separator = ","; // 5.3.1.0 (2011/01/01) groupAddClmnsć§ēµåććéć?åŗå?ę??
201 private boolean stopZero = false; // 5.7.6.2 (2014/05/16) stopZeroå±ę?čæ½å?
202
203 /**
204 * Taglibć®ēµäŗ?æć°ćč¦ć¤ćć£ććØćć«å¦ē?ć?doEndTag() ć?ćŖć¼ćć?ć©ć¤ććć¾ćć?
205 *
206 * @og.rev 4.3.2.0 (2008/09/11) UNION_SELROWć¢ćÆć·ć§ć³åƾåæ?
207 * @og.rev 4.3.3.0 (2008/10/01) å¦ē?å¾ć?ć??ćć«ä»¶ę°ćåå¾ć§ććććć«ćć
208 * @og.rev 4.3.3.1 (2008/10/08) ć¹ć¬ć¼ćć?nullćć§ć?Æčæ½å?
209 * @og.rev 5.1.6.0 (2010/05/01) DBLastSqlć®å¦ē??ćDBTableModelćę°č¦ä½ę?ćććå?ē?§ć®ćæč”ćć?
210 * @og.rev 5.2.2.0 (2010/11/01) caseKey ćcaseVal å±ę?対åæ?
211 * @og.rev 5.7.6.2 (2014/05/16) stopZeroå±ę?ćDB.COUNT ćć¼ć§ę¤ē“¢ä»¶ę°ććŖćÆćØć¹ćć«ć»ć?ććć?
212 *
213 * @return å¾ē¶å?ē??ę?¤ŗ
214 */
215 @Override
216 public int doEndTag() {
217 debugPrint(); // 4.0.0 (2005/02/28)
218 // 5.2.2.0 (2010/11/01) caseKey ćcaseVal å±ę?対åæ?
219 if( !useTag() || ! check( command, COMMAND_LIST ) ) { return EVAL_PAGE ; }
220
221 // ę“åę?ćć§ć?Æ?ć¢ćÆć·ć§ć³ćŖć¹ććØć®ååØćć§ć?Æ
222 if( !check( action, ACTION_LIST ) ) {
223 String errMsg = "ę?®ć?ć¢ćÆć·ć§ć³ćÆå®č”ć§ćć¾ćććć¢ćÆć·ć§ć³ćØć©ć¼"
224 + HybsSystem.CR
225 + "action=[" + action + "] "
226 + HybsSystem.CR
227 + "ę?®åÆč½ćŖć¢ćÆć·ć§ć³:"
228 + StringUtil.array2csv( ACTION_LIST ) ;
229 throw new HybsSystemException( errMsg );
230 }
231
232 // ć¹ć¬ć¼ććć¼ćć«ć®é?å¦ē?č”ćäø»ćć¼(nullę?masterKeys)
233 if( slaveKeys == null ) { slaveKeys = masterKeys; }
234
235 super.setScope( masterScope );
236 DBTableModel masterTable = (DBTableModel)getObject( masterTableId );
237
238 // ę“åę?ćć§ć?Æ?ć?ć¹ćæć??ćć«ćÆåæ??
239 if( masterTable == null ) {
240 String errMsg = "ćć¹ćæć??ćć«ćÆåæ??ć§ćć?"
241 + HybsSystem.CR
242 + "action=[" + action + "] "
243 + "masterTableId=[" + masterTableId + "] "
244 + "masterScope=[" + masterScope + "] " ;
245 throw new HybsSystemException( errMsg );
246 }
247 if( noSideEffect ) { masterTable = cloneTable( masterTable ); }
248 Map<String,Integer> masterMap = makeKeyMap( masterTable,masterKeys,useCheckOnly );
249
250 DBTableModel slaveTable = null;
251 Map<String,Integer> slaveMap = null;
252
253 // ę“åę?ćć§ć?Æ?action="GROUP" 㨠"ADD_CLM" 仄å¤ć§ćÆćć¹ć¬ć¼ććć¼ćć«ćÆåæ??
254 if( ! ACT_GROUP.equalsIgnoreCase( action ) && !ACT_ADD_CLM.equalsIgnoreCase( action ) ) {
255 super.setScope( slaveScope );
256 slaveTable = (DBTableModel)getObject( slaveTableId );
257
258 if( slaveTable == null ) {
259 String errMsg = "action=\"" + action + "\" ęć«ćÆćć¹ć¬ć¼ććć¼ćć«ćåæ?¦ć§ćć?"
260 + HybsSystem.CR
261 + "slaveTableId=[" + slaveTableId + "] "
262 + "slaveScope=[" + slaveScope + "] " ;
263 throw new HybsSystemException( errMsg );
264 }
265 if( noSideEffect ) { slaveTable = cloneTable( slaveTable ); }
266 slaveMap = makeKeyMap( slaveTable,slaveKeys,false ); // ć¹ć¬ć¼ćć?useCheckOnlyē”é¢äæ?
267
268 // ćć?å “åć?ćć¹ćæćØć¹ć¬ć¼ććåäø?”ć¢ćŖäøć?ć??ćć«(ē©ē?ć«åć)ć§ćŖć?ŗć?
269 if( slaveTable == masterTable ) {
270 String errMsg = "ćć¹ćæćØć¹ć¬ć¼ććåäø?”ć¢ćŖć«ćŖć£ć¦ć?¾ćć?"
271 + "éåøøćę¤ē“¢ēµę㯠TableId 㨠Scope ćå„ć?«ę?®ćć¾ćć?"
272 + HybsSystem.CR
273 + "action=[" + action + "] "
274 + "masterTableId=[" + masterTableId + "] "
275 + "slaveTableId=[" + slaveTableId + "] "
276 + "masterScope=[" + masterScope + "] "
277 + "slaveScope=[" + slaveScope + "] " ;
278 throw new HybsSystemException( errMsg );
279 }
280 }
281
282 super.setScope( scope );
283 useMainTrans( isMainTrans ); // 5.1.6.0 (2010/05/01) DBLastSqlć®å¦ē??č¦ē“ć?
284 startQueryTransaction( tableId ); // 3.6.0.8 (2004/11/19)
285
286 // čØå®å?ć®ę“åę?ćć§ć?Æ
287 // ę“åę?ćć§ć?Æ?action="UNION_ALL" 㨠"GROUP"㨠"ADD_CLM"㨠"UNION_CLM" 仄å¤ć§ćÆćmasterKeys ćåæ??
288 if( ! ACT_UNION_ALL.equalsIgnoreCase( action )
289 && !ACT_UNION_SELROW.equalsIgnoreCase( action ) // 4.3.2.0 (2008/09/11)
290 && !ACT_GROUP.equalsIgnoreCase( action )
291 && !ACT_ADD_CLM.equalsIgnoreCase( action )
292 && !ACT_UNION_CLM.equalsIgnoreCase( action )
293 && masterKeys == null ) {
294 String errMsg = "action=\"" + action + "\" ęć«ćÆćmasterKeys ćåæ??ć§ćć?"
295 + HybsSystem.CR
296 + "masterKeys=[" + masterKeys + "] ";
297 throw new HybsSystemException( errMsg );
298 }
299
300 // čØå®å?ć®ę“åę?ćć§ć?Æ
301 // ę“åę?ćć§ć?Æ?action="DIFFERENCE" ć§ćÆćdiffKeys ćåæ??
302 if( ACT_DIFFERENCE.equalsIgnoreCase( action ) && diffKeys == null ) {
303 String errMsg = "action=\"" + action + "\" ęć«ćÆćdiffKeys ćåæ??ć§ćć?"
304 + HybsSystem.CR
305 + "diffKeys=[" + diffKeys + "] ";
306 throw new HybsSystemException( errMsg );
307 }
308
309 // čØå®å?ć®ę“åę?ćć§ć?Æ
310 // ę“åę?ćć§ć?Æ?å?åę?(UNION_CLM) 㨠ć°ć«ć¼ć?GROUP) 㨠åčæ½å?ADD_CLM) 仄å¤ć§ćÆććć¼ćć«ć«ć©ć?°ćåćć§ććåæ?¦ćććć?
311 if( ! ACT_UNION_CLM.equalsIgnoreCase( action )
312 && !ACT_GROUP.equalsIgnoreCase( action )
313 && !ACT_ADD_CLM.equalsIgnoreCase( action ) ) {
314 int mClmSize = masterTable.getColumnCount();
315 int sClmSize = slaveTable.getColumnCount();
316
317 if( mClmSize != sClmSize ) {
318 String errMsg = "action=\"" + action + "\" ęć«ćÆććć¼ćć«ć«ć©ć?°ćē°ćŖć£ć¦ćÆć?ć¾ććć?
319 + HybsSystem.CR
320 + "Master=" + mClmSize + " ,["
321 + StringUtil.array2csv( masterTable.getNames() ) + "]"
322 + HybsSystem.CR
323 + "Slave =" + sClmSize + " ,["
324 + StringUtil.array2csv( slaveTable.getNames() ) + "]";
325 throw new HybsSystemException( errMsg );
326 }
327 }
328
329 StringBuilder buf = null;
330 if( display ) {
331 buf = new StringBuilder();
332 buf.append( action ).append( "(" );
333 buf.append( " M[" ).append( masterTable.getRowCount() ).append( "]" );
334 if( slaveTable != null ) {
335 buf.append( ",S[" ).append( slaveTable.getRowCount() ).append( "]" );
336 }
337 }
338
339 // 4.3.3.0 (2008/10/01)
340 setRequestAttribute( "DB.MASTER_COUNT" , String.valueOf( masterTable.getRowCount() ) );
341 // 4.3.3.1 (2008/10/08) nullćć§ć?Æ
342 if( slaveTable != null ) {
343 setRequestAttribute( "DB.SLAVE_COUNT", String.valueOf( slaveTable.getRowCount() ) );
344 }
345
346 DBTableModel table = null;
347 if( ACT_UNION_ALL.equalsIgnoreCase( action ) ) { // å
Øä½éå?
348 table = makeUnionAll( masterTable,slaveTable );
349 }
350 else if( ACT_UNION_SELROW.equalsIgnoreCase( action ) ) { // 4.3.2.0 (2008/09/11) å
Øä½éå?slave蔨ćmaster蔨ć®ćć§ć?Æč”ććčæ½å?
351 table = makeUnionSelrow( masterTable,slaveTable );
352 }
353 else if( ACT_UNION.equalsIgnoreCase( action ) ) { // åéå?
354 table = makeUnion( masterTable,masterMap,slaveTable,slaveMap );
355 }
356 else if( ACT_INTERSECT.equalsIgnoreCase( action ) ) { // ē©éå?
357 table = makeIntersect( masterTable,masterMap,slaveMap );
358 }
359 else if( ACT_MINUS.equalsIgnoreCase( action ) ) { // å·®é?
360 table = makeMinus( masterTable,masterMap,slaveMap );
361 }
362 else if( ACT_DIFFERENCE.equalsIgnoreCase( action ) ) { // å·®å?å?
363 table = makeDifference( masterTable,masterMap,slaveTable,slaveMap );
364 }
365 else if( ACT_UNION_CLM.equalsIgnoreCase( action ) ) { // ååę?
366 if( unionClms == null ) {
367 String errMsg = "action=\"UNION_CLM\" ęć«ćÆćunionClms ćåæ??ć§ćć?" ;
368 throw new HybsSystemException( errMsg );
369 }
370
371 table = makeUnionClm( masterTable,slaveKeys,slaveTable,slaveMap );
372 }
373 else if( ACT_ADD_CLM.equalsIgnoreCase( action ) ) { // åčæ½å?
374 if( unionClms == null ) {
375 String errMsg = "action=\"ADD_CLM\" ęć«ćÆćunionClms ćåæ??ć§ćć?" ;
376 throw new HybsSystemException( errMsg );
377 }
378
379 table = makeAddClm( masterTable );
380 }
381 else if( ACT_GROUP.equalsIgnoreCase( action ) ) { // ć°ć«ć¼ć?
382 table = makeGroup( masterTable );
383 }
384
385 if( table != null ) {
386 // 3.6.0.8 (2004/11/19) ćć©ć³ć¶ćÆć·ć§ć³ćć§ć?Æćč”ćć¾ćć?
387 super.setScope( scope );
388 if( ! commitTableObject( tableId, table ) ) {
389 return SKIP_PAGE ;
390 }
391 }
392
393 // 5.7.6.2 (2014/05/16) ćć?ćøććēµęć® DBTableModel ć®ć??ćæä»¶ę°
394 int rowCnt = table.getRowCount();
395
396 if( display ) {
397 // buf.append( " ) = [" ).append( table.getRowCount() ).append( "]" );
398 buf.append( " ) = [" ).append( rowCnt ).append( "]" );
399 jspPrint( buf.toString() );
400 }
401
402 // 5.7.6.2 (2014/05/16) ę¤ē“¢ēµęć®ä»¶ę°ćć?"DB.COUNT" ćć¼ć§ćŖćÆćØć¹ćć«ć»ć?ććć?
403 setRequestAttribute( "DB.COUNT" , String.valueOf( rowCnt ) );
404
405 // 5.7.6.2 (2014/05/16) ä»¶ę°?ä»¶ć㤠stopZero = true
406 if( rowCnt == 0 && stopZero ) { return SKIP_PAGE; }
407
408 // 4.3.4.4 (2009/01/01)
409 // setRequestAttribute( "DB.COUNT" , ( table == null ? 0 :String.valueOf( table.getRowCount() ) ) );
410
411 return EVAL_PAGE ; // ćć?ćøć®ę®ććč©ä¾”ććć?
412 }
413
414 /**
415 * ćæć°ćŖććŖććøć§ćÆćććŖćŖć¼ć¹ćć¾ćć?
416 * ćć£ć?·ć„ććć¦åå©ēØćććć?ć§ććć£ć¼ć«ćć?åęčØå®ćč”ćć¾ćć?
417 *
418 * @og.rev 5.1.4.0 (2010/03/01) groupAddClms čæ½å?
419 * @og.rev 5.1.6.0 (2010/05/01) DBLastSqlć®å¦ē??ćDBTableModelćę°č¦ä½ę?ćććå?ē?§ć®ćæč”ćć?
420 * @og.rev 5.3.1.0 (2011/01/01) separatorčæ½å?
421 * @og.rev 5.7.6.2 (2014/05/16) stopZeroå±ę?čæ½å?
422 */
423 @Override
424 protected void release2() {
425 super.release2();
426 command = CMD_NEW;
427 action = null;
428 tableId = HybsSystem.TBL_MDL_KEY; // åŗåå?ć® tableId
429 scope = "session"; // åŗåå?ć® scope
430 masterTableId = HybsSystem.TBL_MDL_KEY; // ćć¹ćæć??ćć«ć® tableId
431 masterScope = "session"; // ćć¹ćæć??ćć«ć® scope
432 slaveTableId = HybsSystem.TBL_MDL_KEY; // ć¹ć¬ć¼ććć¼ćć«ć® tableId
433 slaveScope = "request"; // ć¹ć¬ć¼ććć¼ćć«ć® scope
434 masterKeys = null; // ćć¹ćæć??ćć«ć®é?å¦ē?č”ćäø»ćć¼
435 slaveKeys = null; // ć¹ć¬ć¼ććć¼ćć«ć®é?å¦ē?č”ćäø»ćć¼(nullę?masterKeys)
436 diffKeys = null; // ćć¹ćæć??ćć«ć®DIFFERENCEęć?å·®å?«ć©ć?
437 unionClms = null; // ć¹ć¬ć¼ćććć?ć¹ćæćøčæ½å?ćć«ć©ć?
438 modifyClms = null; // ć¹ć¬ć¼ćććć?ć¹ćæćøå¤ćę“ę°ććć«ć©ć?
439 groupAddClms = null; // 5.1.4.0 (2010/03/01) masterKeysć§é?å¦ē?ććØćć«ćēøéćć¼ćæćCSVé£ēµćć¦ę®ćć«ć©ć?
440 noSideEffect = false; // ć??ćć«ć¢ć?«ć«åƾććåÆä½ēØ(true:ćŖć?false:ćć)
441 useDiffData = true; // DIFFERENCEęć«å·®å??ć¹ć¬ć¼ććć¼ćæćčæ½å?ććć©ć?
442 useCheckOnly = false; // ćć¹ćæć??ćć«ć®éøęč”ć?ć??ćæć®ćæć対豔ć«å¦ē?č”ććć©ć?
443 display = true;
444 stopZero = false; // 5.7.6.2 (2014/05/16) stopZeroå±ę?čæ½å?
445 isMainTrans = true; // 5.1.6.0 (2010/05/01) DBLastSqlć®å¦ē??č¦ē“ć?
446 separator = ",";
447 }
448
449 /**
450 * ę?®ć?ć??ćć«ć®ę?®ć?ć«ć©ć?CSV)ćććč”ēŖå·ćć?ć??åćć¾ćć?
451 * ćŖćć?å¼ę°ć®ć??ćć«ć«ć¤ć?¦ćÆćäø»ćć¼ć«ććć°ć«ć¼ćå?ē?č”ććć¾ćć?(åÆä½ēØćć)
452 *
453 * @og.rev 4.3.2.0 (2008/09/11) ćć¹ćæćć¼ęŖę?®ęćÆä½ćććŖć?
454 * @og.rev 5.1.4.0 (2010/03/01) groupAddClms čæ½å?
455 * @og.rev 5.3.1.0 (2011/01/01) groupAddClms 㮠separator�対�
456 * @og.rev 5.5.8.5 (2012/11/27) 大ę?ć?å°ęåćåŗå„ććŖć??
457 *
458 * @param table ćććä½ę?å
??ć??ćæć??ćć«(åÆä½ēØćć)
459 * @param keys ćććä½ę?ć®äø»ćć¼(CSVå½¢å¼?
460 * @param useCheckOnly ćć§ć?Æč”ć?ćæć対豔ć«ćććć©ć?
461 *
462 * @return ćććåćććäø»ćć¼ćØč”ēŖå·
463 */
464 private Map<String,Integer> makeKeyMap( final DBTableModel table, final String keys, final boolean useCheckOnly ) {
465
466 // ć«ć©ć?ćć«ć©ć?Ŗå·ć«å¤ęćć¾ćć?
467 int[] clmNo = makeColumnNo( table,keys );
468 int clmSize = clmNo.length;
469 if( clmSize == 0 ) { // ćć¹ćæćć¼ęŖę?®ęć«ćÆå
Øć«ć©ć?使ēØćć¾ćć?
470 return null; // 4.3.2.0 (2008/09/11)
471 }
472
473 // groupAddClms ćć«ć©ć?Ŗå·ć«å¤ęćć¾ćć?
474 int[] grpClmNo = makeColumnNo( table,groupAddClms );
475 int grpClmSize = grpClmNo.length;
476
477 Map<String,Integer> tempMap = new LinkedHashMap<String,Integer>();
478
479 // 注ęļ¼GROUPåć?éēØć§ ć??ćć«ä»¶ę°ćåē?«å¤åćć¾ćć?
480 StringBuilder buf ;
481 for( int row=0; row<table.getRowCount(); row++ ) {
482 if( useCheckOnly && table.getModifyType( row ).length() == 0 ) {
483 continue;
484 }
485
486 buf = new StringBuilder();
487 for( int i=0; i<clmSize; i++ ) {
488 buf.append( table.getValue( row,clmNo[i] ) ).append( "|" );
489 }
490 // äø»ćć¼é£ēµęåå?
491 String key = buf.toString().toUpperCase(Locale.JAPAN); // 5.5.8.5 (2012/11/27) 大ę?ć?å°ęåćåŗå„ććŖć??
492 if( tempMap.containsKey( key ) ) {
493 // 5.1.4.0 (2010/03/01) groupAddClms čæ½å?
494 int orgRow = tempMap.get( key ).intValue() ; // čæ½å?øćæć®č”ēŖå·ćåå¾?
495 for( int i=0; i<grpClmSize; i++ ) {
496 int clm = grpClmNo[i];
497 String val1 = table.getValue( orgRow,clm ) ; // ę¢åć?č”ć?ć«ć©ć??ć??ćæ
498 String val2 = table.getValue( row,clm ) ; // åé¤ććč”ć?ć«ć©ć??ć??ćæ
499 // 5.3.1.0 (2011/01/01)
500 table.setValueAt( val1 + separator + val2,orgRow,clm ); // CSV é£ēµć?ć??ćæćę»ćć?
501 }
502 table.removeValue( row );
503 row-- ;
504 }
505 else { // ć¾ć??ęŖē»é²ć®å “å?
506 tempMap.put( key,Integer.valueOf( row ) );
507 }
508 }
509
510 return tempMap;
511 }
512
513 /**
514 * ę?®ć?ćć¹ćæ,ć¹ć¬ć¼ććć¼ćć«ć使ēØć㦠å
Øä½éå?å¦ē?å®č”ćć¾ćć?
515 *
516 * @param masterTbl ćć¹ćæć¼ć??ćć«ć¢ć?«
517 * @param slaveTbl ć¹ć¬ć¼ććć¼ćć«ć¢ć?«
518 *
519 * @return å¦ē?µęć®ć??ćć«ć¢ć?«
520 */
521 private DBTableModel makeUnionAll( final DBTableModel masterTbl,final DBTableModel slaveTbl ) {
522 DBTableModel table = masterTbl;
523
524 for( int row=0; row<slaveTbl.getRowCount(); row++ ) {
525 String[] vals = slaveTbl.getValues( row );
526 table.addColumnValues( vals );
527 }
528
529 return table;
530 }
531
532 /**
533 * ę?®ć?ćć¹ćæ,ć¹ć¬ć¼ććć¼ćć«ć使ēØć㦠å
Øä½éå?å¦ē?å®č”ćć¾ćć?
534 * ć¹ć¬ć¼ć蔨ćÆćć?ć¹ćæč”Øć®ćć§ć?Æćććč”ćčµ·ē¹ćØćć¦ē»é²ććć¾ćć?
535 * ćć§ć?Æććć¦ć?Ŗć??åć?ćć¹ć¬ć¼ć蔨ćÆå
é?ććčæ½å?ćć¾ćć?
536 *
537 * @og.rev 4.3.2.0 (2008/09/11) ę°č¦ä½ę?
538 *
539 * @param masterTbl ćć¹ćæć¼ć??ćć«ć¢ć?«
540 * @param slaveTbl ć¹ć¬ć¼ććć¼ćć«ć¢ć?«
541 *
542 * @return å¦ē?µęć®ć??ćć«ć¢ć?«
543 */
544 private DBTableModel makeUnionSelrow( final DBTableModel masterTbl,final DBTableModel slaveTbl ) {
545 DBTableModel table = masterTbl;
546
547 int insRowNo = ( getParameterRows().length > 0 ) ? getParameterRows()[0] + 1 : 0 ;
548 for( int row=0; row<slaveTbl.getRowCount(); row++ ) {
549 String[] vals = slaveTbl.getValues( row );
550 table.addValues( vals, insRowNo + row, false );
551 }
552
553 return table;
554 }
555
556 /**
557 * ę?®ć?ćć¹ćæ,ć¹ć¬ć¼ććć¼ćć«ć使ēØć㦠åéå?å¦ē?å®č”ćć¾ćć?
558 *
559 * @og.rev 5.5.8.5 (2012/11/27) 大ę?ć?å°ęåćåŗå„ććŖć??
560 *
561 * @param masterTbl ćć¹ćæć¼ć??ćć«ć¢ć?«
562 * @param masterMap ćć¹ćæć¼ć??ćć«ć®äø»ćć¼ććć?
563 * @param slaveTbl ć¹ć¬ć¼ććć¼ćć«ć¢ć?«
564 * @param slaveMap ć¹ć¬ć¼ććć¼ćć«ć®äø»ćć¼ććć?
565 *
566 * @return å¦ē?µęć®ć??ćć«ć¢ć?«
567 */
568 private DBTableModel makeUnion( final DBTableModel masterTbl,final Map<String,Integer> masterMap,
569 final DBTableModel slaveTbl,final Map<String,Integer> slaveMap ) {
570 DBTableModel table = masterTbl;
571
572 @SuppressWarnings("rawtypes")
573 Map.Entry[] entry = slaveMap.entrySet().toArray( new Map.Entry[slaveMap.size()] );
574
575 int size = entry.length;
576 for( int i=0; i<size; i++ ) {
577 String key = (String)entry[i].getKey();
578 if( key != null ) { key = key.toUpperCase(Locale.JAPAN); } // 5.5.8.5 (2012/11/27) 大ę?ć?å°ęåćåŗå„ććŖć??
579 if( ! masterMap.containsKey( key ) ) { // ćć¹ćæć«ć¹ć¬ć¼ććć¼ćæćååØććŖć?
580 int row = ((Integer)entry[i].getValue()).intValue();
581 String[] vals = slaveTbl.getValues( row );
582 table.addColumnValues( vals );
583 }
584 }
585 return table;
586 }
587
588 /**
589 * ę?®ć?ćć¹ćæ,ć¹ć¬ć¼ććć¼ćć«ć使ēØć㦠ē©éå?å¦ē?å®č”ćć¾ćć?
590 *
591 * @og.rev 5.5.8.5 (2012/11/27) 大ę?ć?å°ęåćåŗå„ććŖć??
592 *
593 * @param masterTbl ćć¹ćæć¼ć??ćć«ć¢ć?«
594 * @param masterMap ćć¹ćæć¼ć??ćć«ć®äø»ćć¼ććć?
595 * @param slaveMap ć¹ć¬ć¼ććć¼ćć«ć®äø»ćć¼ććć?
596 *
597 * @return å¦ē?µęć®ć??ćć«ć¢ć?«
598 */
599 private DBTableModel makeIntersect( final DBTableModel masterTbl,final Map<String,Integer> masterMap, final Map<String,Integer> slaveMap ) {
600 DBTableModel table = masterTbl;
601
602 @SuppressWarnings("rawtypes")
603 Map.Entry[] entry = masterMap.entrySet().toArray( new Map.Entry[masterMap.size()] );
604
605 int size = entry.length;
606 for( int i=0; i<size; i++ ) {
607 String key = (String)entry[i].getKey();
608 if( key != null ) { key = key.toUpperCase(Locale.JAPAN); } // 5.5.8.5 (2012/11/27) 大ę?ć?å°ęåćåŗå„ććŖć??
609 if( ! slaveMap.containsKey( key ) ) { // ć¹ć¬ć¼ćć«ćć¹ćæćååØććŖć?
610 int row = ((Integer)entry[i].getValue()).intValue();
611 table.rowDelete( row ); // č«ēåé¤
612 }
613 }
614
615 // č”ēŖå·ćå¤ćććŖć?ć?«é??åé¤ćć¾ćć?
616 for( int row=table.getRowCount()-1; row>=0; row-- ) {
617 if( DBTableModel.DELETE_TYPE.equalsIgnoreCase( table.getModifyType( row ) ) ) { // 5.5.8.5 (2012/11/27) 大ę?ć?å°ęåćåŗå„ććŖć??
618 table.removeValue( row );
619 }
620 }
621
622 return table;
623 }
624
625 /**
626 * ę?®ć?ćć¹ćæ,ć¹ć¬ć¼ććć¼ćć«ć使ēØć㦠差é? å¦ē?å®č”ćć¾ćć?
627 *
628 * @og.rev 5.5.8.5 (2012/11/27) 大ę?ć?å°ęåćåŗå„ććŖć??
629 *
630 * @param masterTbl ćć¹ćæć¼ć??ćć«ć¢ć?«
631 * @param masterMap ćć¹ćæć¼ć??ćć«ć®äø»ćć¼ććć?
632 * @param slaveMap ć¹ć¬ć¼ććć¼ćć«ć®äø»ćć¼ććć?
633 *
634 * @return å¦ē?µęć®ć??ćć«ć¢ć?«
635 */
636 private DBTableModel makeMinus( final DBTableModel masterTbl,final Map<String,Integer> masterMap,
637 final Map<String,Integer> slaveMap ) {
638 DBTableModel table = masterTbl;
639
640 @SuppressWarnings("rawtypes")
641 Map.Entry[] entry = masterMap.entrySet().toArray( new Map.Entry[masterMap.size()] );
642
643 int size = entry.length;
644 for( int i=0; i<size; i++ ) {
645 String key = (String)entry[i].getKey();
646 if( key != null ) { key = key.toUpperCase(Locale.JAPAN); } // 5.5.8.5 (2012/11/27) 大ę?ć?å°ęåćåŗå„ććŖć??
647 if( slaveMap.containsKey( key ) ) { // ć¹ć¬ć¼ćć«ćć¹ćæćååØćć
648 int row = ((Integer)entry[i].getValue()).intValue();
649 table.rowDelete( row ); // č«ēåé¤
650 }
651 }
652
653 // č”ēŖå·ćå¤ćććŖć?ć?«é??åé¤ćć¾ćć?
654 for( int row=table.getRowCount()-1; row>=0; row-- ) {
655 if( DBTableModel.DELETE_TYPE.equalsIgnoreCase( table.getModifyType( row ) ) ) { // 5.5.8.5 (2012/11/27) 大ę?ć?å°ęåćåŗå„ććŖć??
656 table.removeValue( row );
657 }
658 }
659
660 return table;
661 }
662
663 /**
664 * ę?®ć?ćć¹ćæ,ć¹ć¬ć¼ććć¼ćć«ć使ēØć㦠差å?å?å¦ē?å®č”ćć¾ćć?
665 *
666 * @og.rev 5.5.8.5 (2012/11/27) 大ę?ć?å°ęåćåŗå„ććŖć??
667 *
668 * @param masterTbl ćć¹ćæć¼ć??ćć«ć¢ć?«
669 * @param masterMap ćć¹ćæć¼ć??ćć«ć®äø»ćć¼ććć?
670 * @param slaveTbl ć¹ć¬ć¼ććć¼ćć«ć¢ć?«
671 * @param slaveMap ć¹ć¬ć¼ććć¼ćć«ć®äø»ćć¼ććć?
672 *
673 * @return å¦ē?µęć®ć??ćć«ć¢ć?«
674 */
675 private DBTableModel makeDifference( final DBTableModel masterTbl,final Map<String,Integer> masterMap,
676 final DBTableModel slaveTbl ,final Map<String,Integer> slaveMap ) {
677 DBTableModel table = masterTbl;
678
679 // ć??ćć«ć®å·®å?±ę?ć®ć«ć©ć?Ŗå·ćę±ćć¾ćć?(ćć¹ćæćć¹ć¬ć¼ćå?é?
680 int[] diffClmNo = makeColumnNo( table,diffKeys );
681 int diffClmSize = diffClmNo.length;
682
683 // ć¹ć¬ć¼ćććć?ć¹ćæćøå¤ć®åć»ć?ćč”ćć«ć©ć?Ŗå·ćę±ćć¾ćć?(ćć¹ćæćć¹ć¬ć¼ćå?é?
684 int[] modClmNo = makeColumnNo( table,modifyClms );
685 int modClmSize = modClmNo.length;
686
687 int clmSize = table.getColumnCount();
688 DBTableModel newTable = DBTableModelUtil.newDBTable();
689 newTable.init( clmSize );
690
691 // ć??ćć«ć®å
Øć«ć©ć?ę°ćć«ä½ę?ććć??ćć«ć«ć³ćć?ćć¾ćć?
692 for( int i=0; i<clmSize; i++ ) {
693 newTable.setDBColumn( i,table.getDBColumn( i ) );
694 }
695
696 // ć¹ć¬ć¼ćć?å
é?ć«ć©ć?ćWRITABLE ćć©ć?
697 boolean writeFlag = "WRITABLE".equalsIgnoreCase( slaveTbl.getColumnName(0) );
698
699 @SuppressWarnings("rawtypes")
700 Map.Entry[] entry = masterMap.entrySet().toArray( new Map.Entry[masterMap.size()] );
701
702 int size = entry.length;
703 for( int i=0; i<size; i++ ) {
704 String key = (String)entry[i].getKey();
705 if( key != null ) { key = key.toUpperCase(Locale.JAPAN); } // 5.5.8.5 (2012/11/27) 大ę?ć?å°ęåćåŗå„ććŖć??
706 if( slaveMap.containsKey( key ) ) { // ć¹ć¬ć¼ćć«ćć¹ćæćååØćć
707 int mrow = ((Integer)entry[i].getValue()).intValue();
708 int srow = slaveMap.get( key ).intValue();
709 boolean unmatched = false;
710 for( int j=0; j<diffClmSize; j++ ) {
711 String mval = table.getValue( mrow,diffClmNo[j] );
712 String sval = slaveTbl.getValue( srow,diffClmNo[j] );
713 if( mval != null && !mval.equalsIgnoreCase( sval ) ) { unmatched = true; break; } // 5.5.8.5 (2012/11/27) 大ę?ć?å°ęåćåŗå„ććŖć??
714 }
715
716 if( unmatched ) { // å±ę?ę??ćē°ćŖćå?åć?ćæå¦ē?
717 // ć??ćæć®ć³ćć?
718 String[] mvals = new String[clmSize];
719 System.arraycopy( table.getValues( mrow ),0,mvals,0 ,clmSize );
720
721 // ć¹ć¬ć¼ćć?å¤ćć?ć¹ćæć®å¤ć«ć»ć?ććć?
722 for( int j=0; j<modClmSize; j++ ) {
723 String val = slaveTbl.getValue( srow,modClmNo[j] );
724 mvals[modClmNo[j]] = val;
725 }
726 newTable.addColumnValues( mvals );
727
728 if( useDiffData ) {
729 // ć??ćæć®ć³ćć?
730 String[] svals = new String[clmSize];
731 System.arraycopy( slaveTbl.getValues( srow ),0,svals,0 ,clmSize );
732 if( writeFlag ) { svals[0] = "0"; } // ęøćč¾¼ćæäøčرåÆ
733 for( int j=0; j<diffClmSize; j++ ) {
734 int dclmNo = diffClmNo[j];
735 String mval = mvals[dclmNo];
736 String sval = svals[dclmNo];
737 if( mval != null && !mval.equalsIgnoreCase( sval ) ) { // 5.5.8.5 (2012/11/27) 大ę?ć?å°ęåćåŗå„ććŖć??
738 svals[dclmNo] = "<span class=\"unmatched\">" + sval + "</span>" ;
739 }
740 }
741 newTable.addColumnValues( svals );
742 // newTable.setRowWritable( newTable.getRowCount()-1,false ); // ęøćč¾¼ćæäøčرåÆ
743 }
744 }
745 }
746 }
747 return newTable;
748 }
749
750 /**
751 * ę?®ć?ćć¹ćæ,ć¹ć¬ć¼ććć¼ćć«ć使ēØć㦠ååę?å¦ē?å®č”ćć¾ćć?
752 *
753 * ćć§ć«ćć?ć¹ćæ ć«ć«ć©ć?ååØćć¦ć?å “åć?ćå?ć®ęøćęććć?
754 * ć«ć©ć?ååØććŖććć°ćć«ć©ć?čæ½å?ć¾ćć?
755 * ćć¹ćæćØć¹ć¬ć¼ćć?ć??ćæēŖåćęć®ćć¼ćÆćslaveKeys ć«ćŖćć¾ćć?
756 * ćććÆćmasterMap ć使ēØććŖć?ćØćęå³ćć¾ćć?(masterKeys ę?®ć«ććGROUPåć?
757 * č”ćć¾ćć?masterKeys ćęå®ććŖć??åć?ććµćć©ć¤ćŗćŖćć§å¦ē?ć¾ćć?)
758 * å
·ä½ēć«ćÆćć?ć¹ćæć??ćć«ć®č¤?°ć®č”ć«åƾćć¦ćć¹ć¬ć¼ććć¼ćæć®å¤ćčØå®?
759 * ćććåÆč½ę§ćććććØćęå³ćć¾ćć?
760 *
761 * @og.rev 5.5.8.5 (2012/11/27) 大ę?ć?å°ęåćåŗå„ććŖć??
762 *
763 * @param masterTbl ćć¹ćæć¼ć??ćć«ć¢ć?«
764 * @param slaveKeys ć¹ć¬ć¼ććć¼
765 * @param slaveTbl ć¹ć¬ć¼ććć¼ćć«ć¢ć?«
766 * @param slaveMap ć¹ć¬ć¼ććć¼ćć«ć®äø»ćć¼ććć?
767 *
768 * @return å¦ē?µęć®ć??ćć«ć¢ć?«
769 */
770 private DBTableModel makeUnionClm( final DBTableModel masterTbl ,final String slaveKeys ,
771 final DBTableModel slaveTbl ,final Map<String,Integer> slaveMap ) {
772
773 DBTableModel table = makeAddClm( masterTbl );
774
775 // ć«ć©ć?ćć«ć©ć?Ŗå·ć«å¤ęćć¾ćć?
776 int[] keyClmNo = makeColumnNo( table,slaveKeys );
777
778 int[] mClmNo = makeColumnNo( table ,unionClms );
779 int[] sClmNo = makeColumnNo( slaveTbl,unionClms );
780 int addSize = mClmNo.length; // unionClms ć®åę°ćŖć®ć§ćć?ć¹ćæćć¹ć¬ć¼ćć?åäø?
781
782 // ēŖåććč”ććć?ć?ććć«ć©ć?«ć¤ć?¦ćå?ćć»ć?ćē“ćć¾ćć?
783 for( int row=0; row<table.getRowCount(); row++ ) {
784 String[] mvals = table.getValues( row );
785 StringBuilder buf = new StringBuilder();
786 for( int i=0; i<keyClmNo.length; i++ ) {
787 buf.append( mvals[keyClmNo[i]] ).append( "|" );
788 }
789 // äø»ćć¼é£ēµęåå?
790 String key = buf.toString().toUpperCase(Locale.JAPAN); // 5.5.8.5 (2012/11/27) 大ę?ć?å°ęåćåŗå„ććŖć??
791 if( slaveMap.containsKey( key ) ) { // ć¹ć¬ć¼ćć«ćć¹ćæć«åƾåæćććć¼ćæćååØćć
792 int slvRow = slaveMap.get( key ).intValue();
793 String[] svals = slaveTbl.getValues( slvRow ); // ć¹ć¬ć¼ćć?č”ēŖå·
794 for( int j=0; j<addSize; j++ ) {
795 mvals[mClmNo[j]] = svals[sClmNo[j]];
796 }
797 table.setValues( mvals,row );
798 }
799 }
800 table.resetModify();
801
802 return table;
803 }
804
805 /**
806 * ę?®ć?ćć¹ćæć??ćć«ć« åčæ½å?å¦ē?å®č”ćć¾ćć?
807 *
808 * ćć§ć«ćć?ć¹ćæ ć«ć«ć©ć?ååØćć¦ć?å “åć?ćå?ć®ęøćęććć?
809 * ć«ć©ć?ååØććŖććć°ćć«ć©ć?čæ½å?ć¾ćć?
810 *
811 * @param masterTbl ćć¹ćæć¼ć??ćć«ć¢ć?«
812 *
813 * @return å¦ē?µęć®ć??ćć«ć¢ć?«
814 */
815 private DBTableModel makeAddClm( final DBTableModel masterTbl ) {
816 String[] addClms = StringUtil.csv2Array( unionClms );
817 int addClmSize = addClms.length;
818 boolean[] useAdd = new boolean[addClmSize];
819 int addSize = 0;
820 for( int i=0; i<addClmSize; i++ ) {
821 if( masterTbl.getColumnNo( addClms[i],false ) < 0 ) { // ååØććŖććć° -1
822 useAdd[i] = true;
823 addSize++ ;
824 }
825 else {
826 useAdd[i] = false; // ćć¹ćæć«ååØććć°ćčæ½å?øč¦?
827 }
828 }
829
830 int mstrClmSize = masterTbl.getColumnCount();
831 int clmSize = mstrClmSize + addSize;
832
833 DBTableModel table = DBTableModelUtil.newDBTable();
834 table.init( clmSize );
835 int clmNo = 0;
836 // ćć¹ćæć??ćć«ć®å
Øć«ć©ć?ę°ćć«ä½ę?ććć??ćć«ć«ć³ćć?ćć¾ćć?
837 for( int i=0; i<mstrClmSize; i++ ) {
838 table.setDBColumn( clmNo++,masterTbl.getDBColumn( i ) );
839 }
840 // čæ½å?ćć«ć©ć?ę°ćć«ä½ę?ććć??ćć«ć«čæ½å?ć¾ćć?
841 String[] addClmVal = new String[addSize]; // čæ½å??ć®ćæ
842 int addCnt = 0;
843 for( int i=0; i<addClmSize; i++ ) {
844 if( useAdd[i] ) {
845 DBColumn column = getDBColumn( addClms[i] );
846 addClmVal[addCnt++] = nval( column.getDefault(),"" );
847 table.setDBColumn( clmNo++,column );
848 }
849 }
850 // äø?¦ććć¹ć¦ć®ćć¹ćæć??ćæćę°ć??ćć«ć«ć³ćć?ćć¾ćć?
851 for( int row=0; row<masterTbl.getRowCount(); row++ ) {
852 String[] vals = new String[clmSize];
853 System.arraycopy( masterTbl.getValues( row ),0,vals,0 ,mstrClmSize ); // ćć¹ćæć??ćæć®ć³ćć?
854 System.arraycopy( addClmVal,0,vals,mstrClmSize ,addSize ); // čæ½å??ę??ć®åęå¤
855 table.addColumnValues( vals );
856 }
857
858 return table;
859 }
860
861 /**
862 * ę?®ć?ćć¹ćæć??ćć«ć使ēØć㦠ć°ć«ć¼ć?å¦ē?å®č”ćć¾ćć?
863 *
864 * @param masterTbl ćć¹ćæć¼ć??ćć«ć¢ć?«
865 *
866 * @return å¦ē?µęć®ć??ćć«ć¢ć?«
867 */
868 private DBTableModel makeGroup( final DBTableModel masterTbl ) {
869 DBTableModel table = masterTbl;
870
871 return table;
872 }
873
874 /**
875 * ę?®ć?ć??ćć«ćØåćć??ćć«ćå„ćŖććøć§ćÆććØćć¦ä½ę?ćć¾ćć?
876 *
877 * @param tbl ć³ćć?å
?ć¼ćć«ć¢ć?«
878 *
879 * @return ć³ćć?ćććę°ć??ćć«ć¢ć?«
880 */
881 private DBTableModel cloneTable( final DBTableModel tbl ) {
882 int clmSize = tbl.getColumnCount();
883
884 DBTableModel table = DBTableModelUtil.newDBTable();
885 table.init( clmSize );
886
887 // ć??ćć«ć®å
Øć«ć©ć?ę°ćć«ä½ę?ććć??ćć«ć«ć³ćć?ćć¾ćć?
888 for( int i=0; i<clmSize; i++ ) {
889 table.setDBColumn( i,tbl.getDBColumn( i ) );
890 }
891 // ćć¹ć¦ć®ć??ćæćę°ć??ćć«ć«ć³ćć?ćć¾ćć?
892 for( int row=0; row<tbl.getRowCount(); row++ ) {
893 String[] vals = new String[clmSize];
894 System.arraycopy( tbl.getValues( row ),0,vals,0 ,clmSize ); // ć??ćæć®ć³ćć?
895 table.addColumnValues( vals );
896 }
897 return table;
898 }
899
900 /**
901 * ę?®ć?ć??ćć«ćććć«ć©ć??åć«åƾåæććć«ć©ć?Ŗå·é
å?ćä½ę?ćć¾ćć?
902 *
903 * ć«ć©ć?ć®CSVć??ćæć?ę?®ćććŖć??å?clmcsv == null)ćÆć?·ćļ¼ć?é
å?ćčæćć¾ćć?
904 *
905 * @param table ć??ćć«ć¢ć?«
906 * @param clmcsv ć«ć©ć?ć®CSVć??ćæ
907 *
908 * @return ć«ć©ć?ć«åƾåæććć?åēŖå·é
å?(ćŖććć°ć?·ćļ¼é?å?
909 */
910 private int[] makeColumnNo( final DBTableModel table,final String clmcsv ) {
911
912 // ćć¹ćæć??ćć«ć®å·®å?±ę?ć®ć«ć©ć?Ŗå·ćę±ćć¾ćć?
913 String[] clms = StringUtil.csv2Array( clmcsv );
914 int[] clmNo = new int[clms.length];
915
916 // ć«ć©ć?ćć«ć©ć?Ŗå·ć«å¤ęćć¾ćć?
917 for( int i=0; i<clms.length; i++ ) {
918 clmNo[i] = table.getColumnNo( clms[i] );
919 }
920
921 return clmNo;
922 }
923
924 /**
925 * ćTAGćć³ćć³ć?NEW,RENEW)ćć»ć?ćć¾ć?åęå¤:NEW)ć?
926 *
927 * @og.tag
928 * ć³ćć³ćć?,HTMLćć(get/post)ę?®ććć¾ćć?ć§,CMD_xxx ć§čØå®ććć
929 * ćć£ć¼ć«ćå®ę°å¤ć®ć?„ćććć?ę?®ć§ćć¾ćć?
930 * åęå¤ćÆ NEW ć§ćć?
931 *
932 * @param cmd ć³ćć³ć?public static final 宣čØ?ćć¦ć?ę?å?)
933 * @see <a href="../../../../constant-values.html#org.opengion.hayabusa.taglib.TableMergeTag.CMD_NEW">ć³ćć³ćå®ę°</a>
934 */
935 public void setCommand( final String cmd ) {
936 String cmd2 = getRequestParameter( cmd );
937 if( cmd2 != null && cmd2.length() > 0 ) { command = cmd2.toUpperCase(Locale.JAPAN); }
938 }
939
940 /**
941 * ćTAGćć¢ćÆć·ć§ć³ćęå®ćć¾ć?UNION_ALL|UNION|INTERSECT|MINUS|DIFFERENCE|UNION_CLM|ADD_CLM|GROUP|UNION_SELROW)ć?
942 *
943 * @og.tag
944 * ę?®ć§ććć¢ćÆć·ć§ć³ćÆćå?ä½éå?UNION_ALL)ćå?ä½éå?ęæå
„ä½ē½®ę?®?(UNION_SELROW)ćåé?(UNION)
945 * ćē©éå?INTERSECT)ćå·®é?(MINUS)ćå·®å?å?DIFFERENCE)ćå?åę?(UNION_CLM)ćå?čæ½å?ADD_CLM)ć?ć°ć«ć¼ć?GROUP)ć§ćć?
946 * ååęćØć°ć«ć¼ć仄å¤ć?å¦ē?§ćÆćć«ć©ć??ćØć«ć©ć?°ćÆåę°ć§ćŖććć°ćŖćć¾ććć?
947 * primaryKeys ć?unionClms ćŖć©ć®ę?®ć?ćć¼åć?ćć?ć¹ćæć??ćć«ć«ååØććåæ?¦ćććć¾ćć?
948 * ćć¹ćæć??ćć«ćØåćć«ć©ć?Ŗå·ć§ć¹ć¬ć¼ććć¼ćć«ććć??ćæćčŖćæåŗćć¾ćć?
949 * (ć«ć©ć?ć?±ę?ćÆćē°ćŖć£ć¦ććć¾ć?¾ćććć?ćć¹ćæć??ćć«ć«ęŗę ćć¾ćć?)
950 * ć¾ćć?åē¬(ćć¹ćæć??ćć«ć®ćæ)ć§ćåé?ćØåēć?ćć°ć«ć¼ć?GROUP)ć使ēØćććØćęå®ć?
951 * ć«ć©ć?§ć®ć¦ćć?ćÆåćč”ćććØćåÆč½ć«ćŖćć¾ćć?ć°ć«ć¼ćå?ē?§ćÆćå?č”åŖå
ćØćć?
952 * ?åē®ć«ē¾ććę??ćåé¤ććććØć«ćŖćć¾ćć?ć°ć«ć¼ć?ćęå®ćććå “åć?ć?
953 * ć¹ć¬ć¼ććć¼ćć«ćÆē”č¦ććć¾ćć?ć?ćć?å¦ē?«ććć¦ćć?é?å¦ē?č”ćäø»ćć¼ć§
954 * äø?¦ć°ć«ć¼ćåććć¾ćć?å
Øä½éå?UNION_ALL)ć§å¦ē?ćå?åć§ćć?äø»ćć¼ćć¦ćć?ćÆć§
955 * ćŖć??åć?ćć?ć¹ćæć¼ćć¹ć¬ć¼ćć?å?ć¼ćć«ć§äø?¦ć°ć«ć¼ćåćććå¾ć§ćć?ć¼ćøććć¾ćć?
956 * (ćć?ćøå¾ć«ćÆćåäø?ø»ćć¼ćęć¤č”ć?ååØćć¾ćć?)
957 * å
Øä½éå?UNION_ALL)ć®å “åć?ćæćmergeKeys ćęå®ććåæ?¦ć?ććć¾ććććć®å “åć?ć?
958 * ćć¼ćŖćć?ćććć?ć¹ćæć¼ćØć¹ć¬ć¼ćć?ć??ćć«ćåć«åę?ććć?ć«ćŖćć¾ćć?
959 *
960 * <table border="1" frame="box" rules="all" >
961 * <caption>ć¢ćÆć·ć§ć³ć®čŖ¬ę?/caption>
962 * <tr><th>action </th><th>åē§° </th><th>å¦ē?¦č¦? </th><th>??/th><th>??/th><th>??/th><th>??/th><tr>
963 * <tr><td>UNION_ALL </td><td>å
Øä½éå?/td><td>ćć¹ćæćØć¹ć¬ć¼ććåę?
964 * <tr><td>UNION_SELROW</td><td>å
Øä½éå?/td><td>ćć¹ćæćØć¹ć¬ć¼ććåę?(ćć¹ćæč”Øć®ćć§ć?Æč”ćčµ·ē¹ć«čæ½å?/td><td>ā?/td><td>ć?/td><td>ć?/td><td>ć?/td><tr>
965 * <tr><td>UNION </td><td>åéå? </td><td>ćć¹ćæćØć¹ć¬ć¼ćć?ć¦ćć?ćÆéØć®ćæåę? </td><td>ā?/td><td>ā?/td><td>ć?/td><td>ć?/td><tr>
966 * <tr><td>INTERSECT </td><td>ē©éå? </td><td>ćć¹ćæćØć¹ć¬ć¼ćć?ć¦ćć?ćÆéØćäø??ćććć¹ćæć®ćæéøę?</td><td>ā?/td><td>ā?/td><td>ć?/td><td>ć?/td><tr>
967 * <tr><td>MINUS </td><td>å·®é? </td><td>ćć¹ćæććć¹ć¬ć¼ćć«ååØććć¦ćć?ćÆéØćåé¤ććę®ć </td><td>ā?/td><td>ā?/td><td>ć?/td><td>ć?/td><tr>
968 * <tr><td>DIFFERENCE </td><td>å·®å?å?/td><td>ć¦ćć?ćÆéØćäø??ćć?å·®å?«ć©ć?ē°ćŖćć?ć¹ćæć®ćæéøę?</td><td>ā?/td><td>ā?/td><td>ć?/td><td>ā?/td><tr>
969 * <tr><td>UNION_CLM </td><td>ååę? </td><td>ćć¹ćæćØćć¼äø??ććć¹ć¬ć¼ćć?ć«ć©ć?
å ±ćčæ½å? </td><td>ā?/td><td>ā?/td><td>ā?/td><td>ć?/td><tr>
970 * <tr><td>ADD_CLM </td><td>åčæ½å? </td><td>UNION_CLMćØć®éććÆćć«ć©ć??ćæčæ½å?ćććØć§ćć? </td><td>ć?/td><td>ć?/td><td>ā?/td><td>ć?/td><tr>
971 * <tr><td>GROUP </td><td>ć°ć«ć¼ć?/td><td>ćć¹ćæć®ć¦ćć?ćÆéØå? </td><td>ć?/td><td>ć?/td><td>ć?/td><td>ć?/td><tr>
972 * </table>
973 *
974 * ā»?ć?ć¹ćæć??ćć«ćŖććøć§ćÆćć?ćåøøć«åæ??
975 * ?ļ¼ć¹ć¬ć¼ććć¼ćć«ćŖććøć§ćÆćåæ??
976 * ?ļ¼masterKeys å±ę?åæ??
977 * ?ļ¼unionClms å±ę?åæ??(ć¹ć¬ć¼ććć¼ćć«ć®ć«ć©ć?ć¾ćć?čæ½å?ćć«ć©ć?)
978 * ?ļ¼diffKeys å±ę?åæ??(DIFFERENCEęć?å·®å?«ć©ć?)ćmodifyClms å±ę?使ēØåÆč½
979 *
980 * @param action ć¢ćÆć·ć§ć³(UNION_ALL|UNION|INTERSECT|MINUS|DIFFERENCE|UNION_CLM|ADD_CLM|GROUP|UNION_SELROW)
981 */
982 public void setAction( final String action ) {
983 this.action = nval( getRequestParameter( action ),this.action );
984 }
985
986 /**
987 * ćTAGćå?åå?ć®tableIdćęå®ćć¾ć?
988 * (åęå¤:HybsSystem#TBL_MDL_KEY[={@og.value HybsSystem#TBL_MDL_KEY}])ć?
989 *
990 * @og.tag
991 * é?å¦ē?µęć® DBTableModel ćć”ć¢ćŖć«ć»ć?ććå “åć?ćć¼(tableId)ćęå®ćć¾ćć?
992 * (åęå¤:HybsSystem#TBL_MDL_KEY[={@og.value HybsSystem#TBL_MDL_KEY}])ć?
993 *
994 * @param tableId åŗåå?ć®tableId
995 * @see org.opengion.hayabusa.common.HybsSystem#TBL_MDL_KEY
996 */
997 public void setTableId( final String tableId ) {
998 this.tableId = nval( getRequestParameter( tableId ),this.tableId );
999 }
1000
1001 /**
1002 * ćTAGćå?åå?ć®scopećęå®ćć¾ć?åęå¤:session)ć?
1003 *
1004 * @og.tag
1005 * é?å¦ē?µęć® DBTableModel ćć”ć¢ćŖć«ć»ć?ććå “åć?ć¹ć³ć¼ććę?®ćć¾ćć?
1006 * ććć§ćÆćć?ć¹ćæć?¹ć¬ć¼ćć?ć¹ć³ć¼ćčØå®ćåæ?¦ćŖēŗćsuperćÆć©ć¹ć®ć”ć½ć?ć?
1007 * ćŖć¼ćć?ć©ć¤ććć¦ćć?ćŖććøć§ćÆćå?ć§ćć¼ććć¦ć?¾ćć?
1008 * åęå¤ćÆćsession ć§ćć?
1009 *
1010 * @param scope åŗåå?ć®scope
1011 */
1012 @Override
1013 public void setScope( final String scope ) {
1014 this.scope = nval( getRequestParameter( scope ),this.scope );
1015 }
1016
1017 /**
1018 * ćTAGćć?ć¹ćæć??ćć«ć®tableIdćęå®ćć¾ć?
1019 * (åęå¤:HybsSystem#TBL_MDL_KEY[={@og.value HybsSystem#TBL_MDL_KEY}])ć?
1020 *
1021 * @og.tag
1022 * é?å¦ē??ćć¹ćæćØćŖć?DBTableModel ćć”ć¢ćŖććåćåŗćå?åć?ćć¼(tableId)ćęå®ćć¾ćć?
1023 * (åęå¤:HybsSystem#TBL_MDL_KEY[={@og.value HybsSystem#TBL_MDL_KEY}])ć?
1024 *
1025 * @param masterTableId ćć¹ćæć??ćć«ć®tableId
1026 * @see org.opengion.hayabusa.common.HybsSystem#TBL_MDL_KEY
1027 */
1028 public void setMasterTableId( final String masterTableId ) {
1029 this.masterTableId = nval( getRequestParameter( masterTableId ),this.masterTableId );
1030 }
1031
1032 /**
1033 * ćTAGćć?ć¹ćæć??ćć«ć®scopećęå®ćć¾ć?åęå¤:session)ć?
1034 *
1035 * @og.tag
1036 * é?å¦ē??ćć¹ćæćØćŖć?DBTableModel ćć”ć¢ćŖććåćåŗćå?åć?ć¹ć³ć¼ććę?®ćć¾ćć?
1037 * åęå¤ćÆćsession ć§ćć?
1038 *
1039 * @param masterScope ćć¹ćæć??ćć«ć®scope
1040 */
1041 public void setMasterScope( final String masterScope ) {
1042 this.masterScope = nval( getRequestParameter( masterScope ),this.masterScope );
1043 }
1044
1045 /**
1046 * ćTAGćć?ć¹ćæć??ćć«ć®é?å¦ē?č”ćäø»ćć¼ćęå®ćć¾ćć?
1047 *
1048 * @og.tag
1049 * é?å¦ē?č”ćå “åć?ćć«ć©ć?ćć?ć«ć³ćåŗå?ę??CSVå½¢å¼?ć§ę?®ćć¾ćć?
1050 * ćć?ćć¼ć®ēµ?æåćććå
?«ć?åå?ē??ēŖåććč”ćć¾ćć?
1051 * ćŖćć?ć¢ćÆć·ć§ć³ćć°ć«ć¼ć?GROUP)仄å¤ć?å¦ē?§ćÆćć?ć¹ćæćØć¹ć¬ć¼ćć?ć«ć©ć?°ćØ
1052 * äø¦ć³é ??ćåćć§ćŖććć°ćŖćć¾ćććć«ć©ć?ćÆćåć?„ć?§ććć¾ć?¾ććć?
1053 * ć¢ćÆć·ć§ć³ćå?ä½éå?UNION_ALL)仄å¤ć?å “åć?ćåæ??å±ę?ć«ćŖćć¾ćć?
1054 *
1055 * @param masterKeys ćć¹ćæć??ćć«ć®äø»ćć¼ćCSVå½¢å¼ć§ę?®?
1056 */
1057 public void setMasterKeys( final String masterKeys ) {
1058 this.masterKeys = nval( getRequestParameter( masterKeys ),this.masterKeys );
1059 }
1060
1061 /**
1062 * ćTAGćć¹ć¬ć¼ććć¼ćć«ć®é?å¦ē?č”ćäø»ćć¼ćęå®ćć¾ćć?
1063 *
1064 * @og.tag
1065 * é?å¦ē?č”ćå “åć?ćć«ć©ć?ćć?ć«ć³ćåŗå?ę??CSVå½¢å¼?ć§ę?®ćć¾ćć?
1066 * ćć?ćć¼ć®ēµ?æåćććå
?«ć?åå?ē??ēŖåććč”ćć¾ćć?
1067 * ćŖćć?ć¢ćÆć·ć§ć³ćć°ć«ć¼ć?GROUP)仄å¤ć?å¦ē?§ćÆćć?ć¹ćæćØć¹ć¬ć¼ćć?ć«ć©ć?°ćØ
1068 * äø¦ć³é ??ćåćć§ćŖććć°ćŖćć¾ćććć«ć©ć?ćÆćåć?„ć?§ććć¾ć?¾ććć?
1069 * null ć®å “åć?ćmasterKeys ćØåććØćć¾ćć?
1070 *
1071 * @param slaveKeys ć¹ć¬ć¼ććć¼ćć«ć®äø»ćć¼ćCSVå½¢å¼ć§ę?®?
1072 */
1073 public void setSlaveKeys( final String slaveKeys ) {
1074 this.slaveKeys = nval( getRequestParameter( slaveKeys ),this.slaveKeys );
1075 }
1076
1077 /**
1078 * ćTAGćć?ć¹ćæć??ćć«ć®DIFFERENCEęć?å·®å?«ć©ć?ć?CSVå½¢å¼?ę?®ćć¾ćć?
1079 *
1080 * @og.tag
1081 * ć¢ćÆć·ć§ć³ćå·®å??ē?DIFFERENCE)ć®å “åć«ćå·®å?ć§ć?Æćč”ćć«ć©ć?ćć?
1082 * ć«ć³ćåŗå?ę??CSVå½¢å¼?ć§ę?®ćć¾ćć?
1083 * å·®å??ē?ØćÆćmasterKeys ć§ę?®ććććć¼ć§ćÆćć?ć¹ćæćć¹ć¬ć¼ććØćć«ååØć?
1084 * ćć¤ććć®ćć¼(diffKeys)ć§ę?®ććććć¼ć®å¤ćē°ćŖćć?ć¹ćæć¬ć³ć¼ćć
1085 * ęćåŗćć¾ćć?
1086 * ć¤ć¾ćć?äø»ćć¼ćÆååØćć?å±ę?ćē°ćŖćę
å ±ć®ćććÆć¢ć??ć«ćŖćć¾ćć?ć§ć?
1087 * ć??ćæę“ę°(UPDATE)対豔ćč¦ć¤ććå “åć«ä½æēØć§ćć¾ćć?
1088 * ć¢ćÆć·ć§ć³ćå·®å??ē?DIFFERENCE)ć®å “åć?ćåæ??å±ę?ć«ćŖćć¾ćć?
1089 *
1090 * @param diffKeys ćć¹ćæć??ćć«ć®å·®å?«ć©ć?ćCSVå½¢å¼ć§ę?®?
1091 * @see #setMasterKeys( String )
1092 */
1093 public void setDiffKeys( final String diffKeys ) {
1094 this.diffKeys = nval( getRequestParameter( diffKeys ),this.diffKeys );
1095 }
1096
1097 /**
1098 * ćTAGćć¹ć¬ć¼ććć¼ćć«ć®tableIdćęå®ćć¾ć?
1099 * (åęå¤:HybsSystem#TBL_MDL_KEY[={@og.value HybsSystem#TBL_MDL_KEY}])ć?
1100 *
1101 * @og.tag
1102 * é?å¦ē??ć¹ć¬ć¼ććØćŖć?DBTableModel ćć”ć¢ćŖććåćåŗćå?åć?ćć¼(tableId)ćęå®ćć¾ćć?
1103 * ćŖćć?ć¢ćÆć·ć§ć³ćć°ć«ć¼ć?GROUP)ć®å “åć?ćć¹ć¬ć¼ććć¼ćć«ćÆä½æēØććć¾ććć?
1104 * (åęå¤:HybsSystem#TBL_MDL_KEY[={@og.value HybsSystem#TBL_MDL_KEY}])ć?
1105 *
1106 * @param slaveTableId ć¹ć¬ć¼ććć¼ćć«ć®tableId
1107 * @see org.opengion.hayabusa.common.HybsSystem#TBL_MDL_KEY
1108 */
1109 public void setSlaveTableId( final String slaveTableId ) {
1110 this.slaveTableId = nval( getRequestParameter( slaveTableId ),this.slaveTableId );
1111 }
1112
1113 /**
1114 * ćTAGćć¹ć¬ć¼ććć¼ćć«ć®scopećęå®ćć¾ć?åęå¤:session)ć?
1115 *
1116 * @og.tag
1117 * é?å¦ē??ć¹ć¬ć¼ććØćŖć?DBTableModel ćć”ć¢ćŖććåćåŗćå?åć?ć¹ć³ć¼ććę?®ćć¾ćć?
1118 * ćŖćć?ć¢ćÆć·ć§ć³ćć°ć«ć¼ć?GROUP)ć®å “åć?ćć¹ć¬ć¼ććć¼ćć«ćÆä½æēØććć¾ććć?
1119 * åęå¤ćÆćsession ć§ćć?
1120 *
1121 * @param slaveScope ć¹ć¬ć¼ććć¼ćć«ć®scope
1122 */
1123 public void setSlaveScope( final String slaveScope ) {
1124 this.slaveScope = nval( getRequestParameter( slaveScope ),this.slaveScope );
1125 }
1126
1127 /**
1128 * ćTAGćć¹ć¬ć¼ćććć?ć¹ćæćøčæ½å?ćć«ć©ć?ćCSVå½¢å¼ć§ę?®ćć¾ćć?
1129 *
1130 * @og.tag
1131 * ć¢ćÆć·ć§ć³ćå?åę?(UNION_CLM)ć¾ćć?åčæ½å?ADD_CLM)ć®å “åć«ä½æēØććć¾ćć?
1132 * ååę?UNION_CLM)ćÆćć?ć¹ćæćØć¹ć¬ć¼ćć?äø»ćć¼ć«åƾćć¦ćććć§ę?®ć?ć¹ć¬ć¼ćć?
1133 * ć«ć©ć??åććć?ć¹ćæć®åć«čæ½å?ć¾ćć?äø»ćć¼ćć?ć?ććŖć?”ć«é¢ćć¦ćÆć?
1134 * ć«ć©ć??åęå¤ćé©ēØććććć¼ćæćä½ę?ćć¾ćć?
1135 * åčæ½å?ADD_CLM)ćÆćć?ć¹ćæć??ćć«ć«ę?®ć?ć«ć©ć?čæ½å?ćć ćć§ćć?ć¹ć¬ć¼ććć¼ćć«ćÆ
1136 * åē?ćć¾ććććć£ć¦ćäø»ćć¼ćęå®äøč¦ć§ćć?
1137 *
1138 * @param unionClms ååęććć«ć©ć?ćCSVå½¢å¼ć§ę?®?
1139 */
1140 public void setUnionClms( final String unionClms ) {
1141 this.unionClms = nval( getRequestParameter( unionClms ),this.unionClms );
1142 }
1143
1144 /**
1145 * ćTAGćć¹ć¬ć¼ćććć?ć¹ćæćøå¤ćę“ę°ććć«ć©ć?ćCSVå½¢å¼ć§ę?®ćć¾ćć?
1146 *
1147 * @og.tag
1148 * ć¢ćÆć·ć§ć³ćå·®å??ē?DIFFERENCE)ć®å “åć«ćēµęć«ćć¹ćæć??ćć«ćęćå?ććć¾ććć?
1149 * ę“ę°ććå “åć«ćć¹ć¬ć¼ćē¹ęć?ć¦ćć?ćÆćć¼(ä¾ļ¼UNIQ)ćēØć?¦ę“ę°ććå “åć?
1150 * ę?®ć?ć«ć©ć??ćÆćć¹ć¬ć¼ćć?å¤ć«ć»ć?ćć¦ććććå “åćććć¾ćć?
1151 * ććć§ćÆćęå®ć?ć«ć©ć?«ć¤ć?¦ćå?ć?ć¹ć¬ć¼ćććć?ć¹ćæćøć»ć?ćć¾ćć?
1152 * ćŖćć?å¤ć®ę“ę°ć«ć¤ć?¦ćÆćć?ć¹ćæćØć¹ć¬ć¼ććåäø?ć¼ćØć?å¶ē“?ććć¾ćć?
1153 *
1154 * @param modifyClms å¤ćę“ę°ććć«ć©ć?ćCSVå½¢å¼ć§ę?®?
1155 */
1156 public void setModifyClms( final String modifyClms ) {
1157 this.modifyClms = nval( getRequestParameter( modifyClms ),this.modifyClms );
1158 }
1159
1160 /**
1161 * ćTAGćéåå?ē?ććØćć«ćēøéćć¼ćæćCSVé£ēµćć¦ę®ćć«ć©ć?ćCSVå½¢å¼ć§ę?®ćć¾ćć?
1162 *
1163 * @og.tag
1164 * masterKeysć§é?å¦ē?ććØćć«ć??åøøćęåć«č¦ć¤ćć£ćč”ćć¼ćæć®ćæę®ćć¾ććć?
1165 * ććć«ę?®ććć«ć©ć?«ć¤ć?¦ćÆćēŗēé?åŗ¦ćč?å??čŗ«ć®ę??ć«ćCSVå½¢å¼ć§é£ēµćć¦
1166 * ć?ć¾ćć?
1167 * ćć?ęä½ć«ćććę¬ę„åé¤ćććę
å ±ćć??č”ć?CSVå½¢å¼ć§åå¾ć§ććå¹ęćå¾ććć¾ćć?
1168 * ćććÆćvalue ćæć°ć® action="APPEND" ćć?DBTableModel ć«åƾćć¦å®ę½ćććććŖęćć§ćć?
1169 *
1170 * @og.rev 5.1.4.0 (2010/03/01) ę°č¦čæ½å?
1171 *
1172 * @param groupAddClms ēøéćć¼ćæćCSVé£ēµćć¦ę®ćć«ć©ć?ćCSVå½¢å¼ć§ę?®?
1173 */
1174 public void setGroupAddClms( final String groupAddClms ) {
1175 this.groupAddClms = nval( getRequestParameter( groupAddClms ),this.groupAddClms );
1176 }
1177
1178 /**
1179 * ćTAGććć¼ćć«ć¢ć?«ć«åƾććåÆä½ēØć®ęē”[true:ćŖć?false:ćć]ćęå®ćć¾ć?åęå¤:false:ćć)ć?
1180 *
1181 * @og.tag
1182 * ćć¹ć¦ć®å¦ē?§ćDBTableModel ć«åƾćć¦ćć¦ćć?ćÆåćć°ć«ć¼ćåćŖć©ć®é?å¦ē?
1183 * č”ćéēØć§ćć?ć¹ćæć??ćć«ć«åƾćć¦ē“ę„å¦ē?č”ććØćåÆä½ēØćēŗēćć¾ćć?
1184 * åę§ć«ćć¹ć¬ć¼ććć¼ćć«ć«ććć¦ćć?äø?¦ćć¼åć§ć°ć«ć¼ćåćććććć?åÆä½ēØć?
1185 * ēŗēćć¾ćć?ćććÆćē”é§?Ŗć”ć¢ćŖé åć®ē¢ŗäæćØććć¼ćć«(ćć¹ćæćć¹ć¬ć¼ććØć?ć®
1186 * ć³ćć?å¦ē?éć?ēÆ?“?«ćŖćć¾ćć?åęå¤ć®čØå®ćåÆä½ēØćććē¶ę
ć«ćŖć£ć¦ć?¾ćć?
1187 * ćØćććć?é½åć«ćć£ć¦ćÆćč²ć?Ŗ action ćé?ē¶ćć¦č”ćććå “åćŖć©ćęÆåć?
1188 * ć??ćæćć?ć¹ćę¤ē“¢ćććććć”ć¢ćŖäøć§ć³ćć?ććć»ć?é½åćććć±ć¼ć¹ć§ćÆć?
1189 * åÆä½ēØćå?ćŖć?ć?«ćnoSideEffect="true" ć«čØå®ćć¾ćć?
1190 * ćć ćć?ćć¹ćæćć¹ć¬ć¼ććØććć¼ćć«ćć³ćć?ćč”ććēµęć®ć??ćć«ć擾ēććēŗć?
1191 * éåøøć?¼ć¤ć®é å(ćć¹ćæćØēµęćÆåćć??ćć«ć«ęøććć?ć§čÆć?ćć??ć¤ć®é åć?
1192 * ä½ę?ććć¾ćć?
1193 * åęå¤ćÆćåÆä½ēØććć?noSideEffect="false")ć§ćć?
1194 *
1195 * @param noSideEffect ć??ćć«ć¢ć?«ć«åƾććåÆä½ēØ [true:ćŖć?false:ćć]
1196 */
1197 public void setNoSideEffect( final String noSideEffect ) {
1198 this.noSideEffect = nval( getRequestParameter( noSideEffect ),this.noSideEffect );
1199 }
1200
1201 /**
1202 * ćTAGćå·®å??ć¹ć¬ć¼ććć¼ćæćēµęć??ćć«ć«čæ½å?ććć©ć?ćęå®ćć¾ć?åęå¤:true)ć?
1203 *
1204 * @og.tag
1205 * ć¢ćÆć·ć§ć³ćå·®å??ē?DIFFERENCE)ć®å “åć«ćēµęć«ćć¹ćæć??ćć«ćęćå?ććć¾ććć?
1206 * å·®å?Æ¾č±”ć®ć¹ć¬ć¼ććć¼ćæćØęÆč¼?ććå “åćććć¾ćć?
1207 * ćć?ćć©ć°ć?true ć«ć»ć?ćććØćęøč¾¼ćæē¦ę¢å±ę?ćä»ććē¶ę
ć§ćć¹ć¬ć¼ććć¼ćæć?
1208 * ēµęć??ćć«ć«čæ½å?ćć¾ćć?
1209 * ćŖćć?ćć?å¦ē?§ćÆć??åøøćØē°ćŖćć?ćć¹ćæć??ćć«ć«ćÆć°ć«ć¼ćåć®åÆä½ēØćÆēŗēćć¾ććć?
1210 * ēµęć??ćć«ćÆę°č¦ć«ä½ę?ćććå?é č”ć«åæ? WRITABLE ć«ć©ć?ä»å ććć¾ćć?
1211 * åęå¤ćÆćtrue?čæ½å?ć?ć§ćć?
1212 *
1213 * @param flag ć¹ć¬ć¼ććć¼ćæćēµęć??ćć«ć«čæ½å?ććć©ć?(åęå¤:true)
1214 */
1215 public void setUseDiffData( final String flag ) {
1216 useDiffData = nval( getRequestParameter( flag ),useDiffData );
1217 }
1218
1219 /**
1220 * ćTAGćć?ć¹ćæć??ćć«ć®éøęč”ć?ć??ćæć®ćæć対豔ć«å¦ē?č”ććć©ć?ćęå®ćć¾ć?åęå¤:false)ć?
1221 *
1222 * @og.tag
1223 * å¦ē?Æ¾č±”ć®ćć¹ćæć??ćć«ć«ć¤ć?¦ć?øęč”ćę?®ćććå “åć«ć?øęč”ć?ćæćå?ē?Æ¾č±”ć«
1224 * ćććć?å
Øä»¶ć対豔ć«ććććę?®ćć¾ćć?
1225 * ē©éåćå·®å?åćŖć©éåøøćÆćå?ä»¶ć対豔ć«ććććØć«ćŖćć¾ćććå?åę?ć??čæ½å?Ŗć©ć?
1226 * ćć¹ćæć??ćć«ć«åƾćć¦ć®ćæä½ēØćåć¼ćå?ē?§ćÆć?øęč”ć?ćæć対豔ć«å¦ē?č”ćäŗć
1227 * č?ććć¾ćć?ćć?å “åć?åęć°ć«ć¼ćåćØåćć§ć対豔ćØććč”ćéøęč”ć?ćæć«ćŖćć¾ćć?
1228 * åęå¤ćÆćfalse?å?件対豔 ć§ćć?
1229 *
1230 * @param flag ćć¹ćæć??ćć«ć®éøęč”ć?ć??ćæć®ćæć対豔ć«å¦ē?č”ććć©ć?(åęå¤:false)
1231 */
1232 public void setUseCheckOnly( final String flag ) {
1233 useCheckOnly = nval( getRequestParameter( flag ),useCheckOnly );
1234 }
1235
1236 /**
1237 * ćTAGćć?ć¼ćøć®ēµęć蔨示ćććć©ć?ćęå®ćć¾ć?åęå¤:true)ć?
1238 *
1239 * @og.tag
1240 * true ć§ćć?ć¼ćøēµęć蔨示ćć¾ćć? false ć§ćÆćä½ć蔨示ćć¾ćć(åęå¤:true)
1241 * ćć¹ćæć??ćć«ć®ä»¶ę°ćÆć??åøøććć¼ć§ć°ć«ć¼ćåćććććć?å
„åä»¶ę°ćØē°ćŖćć¾ćć?
1242 * åę§ć«ćć¹ć¬ć¼ćä»¶ę°ćē°ćŖćć¾ćć?ēµęć®ä»¶ę°ćÆćå?ē?µęćē¾å®ēćć©ć?ć®
1243 * å¤ęć«ä½æēØććć¾ćć?
1244 * åęå¤ćÆćtrue?蔨示ćć ć§ćć?
1245 *
1246 * @param flag ę„ē¶ć?ēµęć蔨示ćććć©ć?(åęå¤:false)
1247 */
1248 public void setDisplay( final String flag ) {
1249 display = nval( getRequestParameter( flag ),display );
1250 }
1251
1252 /**
1253 * ćTAGćę¤ē“¢ēµęćļ¼ä»¶ć®ćØćå?ē?ē¶č”ćććć©ć?[true/false]ćęå®ćć¾ć?åęå¤:false[ē¶č”ćć])ć?
1254 *
1255 * @og.tag
1256 * åęå¤ćÆćfalse(ē¶č”ćć?ć§ćć?
1257 *
1258 * @og.rev 5.7.6.2 (2014/05/16) ę°č¦čæ½å?
1259 *
1260 * @param cmd ę¤ē“¢ēµęćļ¼ä»¶ć®ćØćć?[true:å¦ē?äøę¢ćć/false:ē¶č”ćć]
1261 */
1262 public void setStopZero( final String cmd ) {
1263 stopZero = nval( getRequestParameter( cmd ),stopZero );
1264 }
1265
1266 /**
1267 * ćTAGć?é常使ć?¾ćć)ćæć°ć§å¦ē?ććå¦ē?ć”ć¤ć³ćØćŖććć©ć³ć¶ćÆć·ć§ć³å¦ē?ć©ć?ćęå®ćć¾ć?åęå¤:false)ć?
1268 *
1269 * @og.tag
1270 * ćć?å¤ćÆććć”ć¤ć«ć?¦ć³ćć¼ćå?ē?«å½±éæćć¾ćć?ćć?å¤ćtrueć«ę?®ćććęć«commitćććDBTableModelć?
1271 * ćć”ć¤ć«ć?¦ć³ćć¼ćć?対豔ć®č”Øć«ćŖćć¾ćć?
1272 *
1273 * ćć?ćć©ć”ć¼ćæć¼ćÆć??åøøćåćæć°ć«ććå®č£?ćć?ć¦ć¼ć¶ć¼ćęå®ććåæ?¦ć?ććć¾ććć?
1274 * ä½?ć?ć¤ć®JSPå?§DBTableModelćč¤?°ēę?ćććå?åć«ćåć«å¦ē?ćDBTableModelć«ć¤ć?¦ćć”ć¤ć«ć?¦ć³ćć¼ćććććć
1275 * å “åć?ćå¾ćć§DBTableModelćēęćććæć°ć§ćę?示ē?«ćć?å¤ćfalseć«ę?®ććććØć§ććć”ć¤ć«ć?¦ć³ćć¼ćå?ē??対豔ćć
1276 * é¤å¤ććććØćć§ćć¾ćć?
1277 *
1278 * @og.rev 5.1.6.0 (2010/05/01) ę°č¦ä½ę?
1279 *
1280 * @param flag ć”ć¤ć³ćć©ć³ć¶ćÆć·ć§ć³ćć©ć?
1281 */
1282 public void setMainTrans( final String flag ) {
1283 isMainTrans = nval( getRequestParameter( flag ),isMainTrans );
1284 }
1285
1286 /**
1287 * ćTAGćgroupAddClmsć§ę?å?ćé?ēµććé?ē®åŗå?ę?ćć»ć?ćć¾ć?åęå¤:",")ć?
1288 *
1289 * @og.tag
1290 * groupAddClmsć§ę?å?ćé?ēµććé?ē®åŗå?ę?ćć»ć?ćć¾ć?åęå¤:",")ć?
1291 * åęå¤ćÆć?," ć«čØå®ććć¦ć?¾ćć?
1292 *
1293 * @og.rev 5.3.1.0 (2011/01/01)
1294 *
1295 * @param sepa é ?®åŗå?ę??åęå¤:",")
1296 */
1297 public void setSeparator( final String sepa ) {
1298 separator = nval( getRequestParameter( sepa ),separator );
1299 }
1300
1301 /**
1302 * ćć?ćŖććøć§ćÆćć?ę?å?蔨ē¾ćčæćć¾ćć?
1303 * åŗę¬ē?«ć?ć?°ē®ē?«ä½æēØćć¾ćć?
1304 *
1305 * @return ćć?ćÆć©ć¹ć®ę?å?蔨ē¾
1306 */
1307 @Override
1308 public String toString() {
1309 return org.opengion.fukurou.util.ToString.title( this.getClass().getName() )
1310 .println( "VERSION" ,VERSION )
1311 .println( "action" ,action )
1312 .println( "tableId" ,tableId )
1313 .println( "scope" ,scope )
1314 .println( "masterTableId" ,masterTableId )
1315 .println( "masterScope" ,masterScope )
1316 .println( "slaveTableId" ,slaveTableId )
1317 .println( "slaveScope" ,slaveScope )
1318 .println( "masterKeys" ,masterKeys )
1319 .println( "diffKeys" ,diffKeys )
1320 .println( "unionClms" ,unionClms )
1321 .println( "modifyClms" ,modifyClms )
1322 .println( "noSideEffect" ,noSideEffect )
1323 .println( "useDiffData" ,useDiffData )
1324 .println( "useCheckOnly" ,useCheckOnly )
1325 .println( "display" ,display )
1326 .println( "ACTION_LIST" ,ACTION_LIST )
1327 .println( "Other..." ,getAttributes().getAttribute() )
1328 .fixForm().toString() ;
1329 }
1330 }