KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > daffodildb > server > sql99 > dcl > sqlcontrolstatement > SearchConditionUtility


1 package com.daffodilwoods.daffodildb.server.sql99.dcl.sqlcontrolstatement;
2
3 import com.daffodilwoods.daffodildb.server.serversystem.*;
4 import com.daffodilwoods.daffodildb.server.sql99.*;
5 import com.daffodilwoods.daffodildb.server.sql99.utils.*;
6 import com.daffodilwoods.daffodildb.utils.*;
7 import com.daffodilwoods.daffodildb.utils.byteconverter.*;
8 import com.daffodilwoods.daffodildb.utils.field.*;
9 import com.daffodilwoods.daffodildb.utils.parser.*;
10 import com.daffodilwoods.database.resource.*;
11
12 public class SearchConditionUtility {
13
14    public static Object JavaDoc executeExpression(StatementExecuter searchCon,
15                                           _Reference[] searchConRefs,
16                                           _VariableValues variableValues,
17                                           _ServerSession serverSession) throws DException {
18       Object JavaDoc returnValue;
19       if (searchConRefs != null) {
20          Object JavaDoc[] values = new Object JavaDoc[searchConRefs.length];
21          Object JavaDoc[][] beforeExecuteRefValuePair = variableValues.getReferenceAndValuePair();
22          if (beforeExecuteRefValuePair != null) {
23             for (int i = 0; i < beforeExecuteRefValuePair.length; i++) {
24                _Reference vvRef = (_Reference) beforeExecuteRefValuePair[i][0];
25                for (int j = 0; j < searchConRefs.length; j++) {
26                   if (vvRef.getQualifiedColumnName().equalsIgnoreCase(searchConRefs[j].getQualifiedColumnName())) {
27                      searchConRefs[j].setDatatype(vvRef.getDatatype());
28                      /**
29                       * setSize by Harvinder after classcast from compiere. */

30                      searchConRefs[j].setSize(vvRef.getSize());
31                      values[j] = beforeExecuteRefValuePair[i][1];
32                   }
33                }
34             }
35          }
36
37          for (int i = 0; i < values.length; i++) {
38             FieldBase fb = (FieldBase) values[i];
39             if (!fb.isNull()) {
40                if (fb.getBufferRange() == null) {
41                   byte[] by = CCzufDpowfsufs.getBytes(fb.getObject(), fb.getDatatype(), -1, false);
42                   fb.setBufferRange(new BufferRange(by));
43                }
44             }
45          }
46
47          VariableValues tempVV = new VariableValues(searchConRefs, serverSession);
48          tempVV.setConditionVariableValue(searchConRefs, values, 1);
49          returnValue = searchCon.run(tempVV);
50
51          /** @todo getOutparmaeters value from VV
52           * and set the changed value in global varibale parametersValues */

53          Object JavaDoc[][] afterExecuteRefValuePair = tempVV.getReferenceAndValuePair();
54          Object JavaDoc[][] valueToSetPair = variableValues.getReferenceAndValuePair();
55          if (afterExecuteRefValuePair != null) {
56             for (int i = 0; i < afterExecuteRefValuePair.length; i++) {
57                _Reference vvRef = (_Reference) afterExecuteRefValuePair[i][0];
58                if (valueToSetPair != null) {
59                   for (int j = 0; j < valueToSetPair.length; j++) {
60                      _Reference toSetRef = (_Reference) valueToSetPair[j][0];
61                      if (vvRef.getQualifiedColumnName().equalsIgnoreCase(toSetRef.getQualifiedColumnName())) {
62                         variableValues.setConditionVariableValue(
63                             new _Reference[] {toSetRef}
64                             ,
65                             new Object JavaDoc[] {afterExecuteRefValuePair[i][1]}
66                             ,
67                             1);
68                      }
69                   }
70                }
71             }
72          }
73       } else {
74          VariableValues tempVV = new VariableValues(searchConRefs, serverSession);
75          returnValue = searchCon.run(tempVV);
76       }
77       return returnValue;
78    }
79
80    public static Object JavaDoc executeStatements(_Executer stt,
81                                           _Reference[] searchConRefs,
82                                           _VariableValues variableValues,
83                                           _ServerSession serverSession) throws
84        DException {
85
86       Object JavaDoc returnValue;
87       if (searchConRefs != null) {
88          Object JavaDoc[] values = new Object JavaDoc[searchConRefs.length];
89          Object JavaDoc[][] beforeExecuteRefValuePair = variableValues.getReferenceAndValuePair();
90          if (beforeExecuteRefValuePair != null) {
91             for (int i = 0; i < beforeExecuteRefValuePair.length; i++) {
92                _Reference vvRef = (_Reference) beforeExecuteRefValuePair[i][0];
93                for (int j = 0; j < searchConRefs.length; j++) {
94                  if (vvRef.getQualifiedColumnName().equalsIgnoreCase(searchConRefs[j].
95                      getQualifiedColumnName())) {
96                    searchConRefs[j].setDatatype(vvRef.getDatatype());
97                    /**
98                     * setSize by Harvinder after classcast from compiere. */

99                    searchConRefs[j].setSize(vvRef.getSize());
100                    values[j] = beforeExecuteRefValuePair[i][1];
101                  }
102                }
103             }
104          }
105
106          for (int i = 0; i < values.length; i++) {
107             FieldBase fb = (FieldBase) values[i];
108             if (!fb.isNull()) {
109                if (fb.getBufferRange() == null) {
110                   byte[] by = CCzufDpowfsufs.getBytes(fb.getObject(), fb.getDatatype(), -1, false);
111                   fb.setBufferRange(new BufferRange(by));
112                }
113             }
114          }
115          VariableValues tempVV = new VariableValues(searchConRefs, serverSession);
116          tempVV.setConditionVariableValue(searchConRefs, values, 1);
117          returnValue = stt.execute(tempVV);
118
119          /** @todo getOutparmaeters value from VV
120           * and set the changed value in global varibale parametersValues */

121          Object JavaDoc[][] afterExecuteRefValuePair = tempVV.getReferenceAndValuePair();
122          Object JavaDoc[][] valueToSetPair = variableValues.getReferenceAndValuePair();
123          if (afterExecuteRefValuePair != null) {
124             for (int i = 0; i < afterExecuteRefValuePair.length; i++) {
125                _Reference vvRef = (_Reference) afterExecuteRefValuePair[i][0];
126                if (valueToSetPair != null) {
127                   for (int j = 0; j < valueToSetPair.length; j++) {
128                      _Reference toSetRef = (_Reference) valueToSetPair[j][0];
129                      if (vvRef.getQualifiedColumnName().equalsIgnoreCase(toSetRef.getQualifiedColumnName())) {
130                         variableValues.setConditionVariableValue(
131                             new _Reference[] {toSetRef}
132                             ,
133                             new Object JavaDoc[] {afterExecuteRefValuePair[i][1]}
134                             ,
135                             1);
136                      }
137                   }
138                }
139             }
140          }
141       } else {
142          VariableValues tempVV = new VariableValues(searchConRefs, serverSession);
143          returnValue = stt.execute(tempVV);
144       }
145       return returnValue;
146    }
147
148    public static void printReferences(_Reference[] refs) {
149       if (refs != null)
150          for (int i = 0; i < refs.length; i++) {
151          ;//// Removed By Program ** System.out.println("reference :: [" + refs[i] + "] HashCode :: [" + refs[i].hashCode() + "]");
152
}
153    }
154
155    public static Object JavaDoc executeForAliasStatements(_Executer stt,
156                                                   _Reference[] searchConRefs,
157                                                   _VariableValues variableValues,
158                                                   _ServerSession serverSession) throws DException {
159
160       Object JavaDoc returnValue;
161       if (searchConRefs != null) {
162          Object JavaDoc[] values = new Object JavaDoc[searchConRefs.length];
163          VariableValues tempVV = new VariableValues(searchConRefs, serverSession);
164          tempVV.setConditionVariableValue(searchConRefs, values, 1);
165          returnValue = stt.execute(tempVV);
166
167          /** @todo getOutparmaeters value from VV
168           * and set the changed value in global varibale parametersValues */

169          Object JavaDoc[][] afterExecuteRefValuePair = tempVV.getReferenceAndValuePair();
170          Object JavaDoc[][] valueToSetPair = variableValues.getReferenceAndValuePair();
171          if (afterExecuteRefValuePair != null) {
172             for (int i = 0; i < afterExecuteRefValuePair.length; i++) {
173                _Reference vvRef = (_Reference) afterExecuteRefValuePair[i][0];
174                if (valueToSetPair != null) {
175                   for (int j = 0; j < valueToSetPair.length; j++) {
176                      _Reference toSetRef = (_Reference) valueToSetPair[j][0];
177                      if (vvRef.getQualifiedColumnName().equalsIgnoreCase(toSetRef.getQualifiedColumnName())) {
178                         variableValues.setConditionVariableValue(
179                             new _Reference[] {toSetRef}
180                             ,
181                             new Object JavaDoc[] {afterExecuteRefValuePair[i][1]}
182                             ,
183                             1);
184                      }
185                   }
186                }
187             }
188          }
189       } else {
190          VariableValues tempVV = new VariableValues(searchConRefs, serverSession);
191          returnValue = stt.execute(tempVV);
192       }
193       return returnValue;
194    }
195 }
196
Popular Tags