KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > daffodildb > server > sql99 > expression > datetimevalueexpression > datetimevalueexpressionSminussign1770466157numericvalueexpression


1 package com.daffodilwoods.daffodildb.server.sql99.expression.datetimevalueexpression;
2
3 import com.daffodilwoods.database.resource.*;
4 import com.daffodilwoods.daffodildb.server.sql99.token.*;
5 import com.daffodilwoods.daffodildb.server.sql99.expression.numericvalueexpression.numericvalueexpression;
6 import com.daffodilwoods.daffodildb.server.sql99.common.ColumnDetails;
7 import com.daffodilwoods.daffodildb.server.sql99.common.ParameterInfo;
8 import com.daffodilwoods.daffodildb.server.sql99.utils._Reference;
9 import com.daffodilwoods.daffodildb.server.sql99.common.TableDetails;
10 import com.daffodilwoods.daffodildb.server.serversystem._ServerSession;
11 import java.util.ArrayList JavaDoc;
12 import com.daffodilwoods.daffodildb.server.sql99.utils._VariableValues;
13 import com.daffodilwoods.daffodildb.server.sql99.utils.ByteComparison;
14 import com.daffodilwoods.daffodildb.server.sql99.utils._VariableValueOperations;
15 import com.daffodilwoods.daffodildb.server.sql99.common.GeneralPurposeStaticClass;
16 import com.daffodilwoods.daffodildb.server.sql99.expression.AbstractValueExpression;
17 import com.daffodilwoods.daffodildb.server.sql99.expression.rowvalueexpression.
18
    AbstractRowValueExpression;
19 import com.daffodilwoods.daffodildb.server.sql99.common.Datatypes;
20 import com.daffodilwoods.daffodildb.utils.field.FieldBase;
21 import com.daffodilwoods.daffodildb.server.sql99.expression.numericvalueexpression.AbstractTerm;
22 import com.daffodilwoods.database.general.TypeConverter;
23
24 public class datetimevalueexpressionSminussign1770466157numericvalueexpression extends AbstractTerm
25     implements com.daffodilwoods.daffodildb.utils.parser.StatementExecuter ,datetimevalueexpression {
26
27      public numericvalueexpression _numericvalueexpression0 ;
28      public Sminussign1770466157 _Sminussign17704661571 ;
29      public datetimevalueexpression _datetimevalueexpression2 ;
30
31
32 public String JavaDoc toString() {
33     StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
34     sb.append(" ");
35     sb.append(_datetimevalueexpression2);
36     sb.append(" ");
37     sb.append(_Sminussign17704661571);
38     sb.append(" ");
39     sb.append(_numericvalueexpression0);
40     return sb.toString();
41 }
42
43   /**
44    * getParameters
45    *
46    * @param object Object
47    * @return Object[]
48    */

49
50   /**
51    * clone
52    *
53    * @return Object
54    */

55   public Object JavaDoc clone() throws CloneNotSupportedException JavaDoc {
56     datetimevalueexpressionSminussign1770466157numericvalueexpression tempClass = new datetimevalueexpressionSminussign1770466157numericvalueexpression();
57     tempClass._datetimevalueexpression2 = (datetimevalueexpression) _datetimevalueexpression2.clone();
58     tempClass._Sminussign17704661571 = (Sminussign1770466157) _Sminussign17704661571.clone();
59     tempClass._numericvalueexpression0 = (numericvalueexpression) _numericvalueexpression0.clone();
60     return tempClass;
61
62   }
63
64   /**
65    * getColumnDetails
66    *
67    * @return ColumnDetails[]
68    */

69   public ColumnDetails[] getColumnDetails() throws DException {
70     ColumnDetails[] cd = super.getColumnDetails();
71     if( cd.length == 1)
72       return cd;
73
74     ColumnDetails columnDetail = new ColumnDetails();
75      String JavaDoc str = toString();
76      columnDetail.setColumn(new String JavaDoc[] {str});
77      columnDetail.setType(FUNCTIONAL);
78      columnDetail.setObject(this);
79      columnDetail.setExpression(str);
80       return new ColumnDetails[] {columnDetail};
81
82
83   }
84
85   /**
86    * getParameterInfo
87    *
88    * @return ParameterInfo[]
89    */

90   public ParameterInfo[] getParameterInfo() throws DException {
91    ParameterInfo[] parameterInfo = super.getParameterInfo();
92    for (int i = 0; i < parameterInfo.length; i++) {
93       if(parameterInfo[i].getQuestionMark()){
94          parameterInfo[i].setDataType(Datatypes.BIGDECIMAL);
95       }
96    }
97    return parameterInfo;
98   }
99
100   /**
101    * getCardinality
102    *
103    * @return int
104    */

105
106   /**
107    * getReferences
108    *
109    * @param td TableDetails[]
110    * @return _Reference[]
111    */

112
113   /**
114    * checkSemantic
115    *
116    * @param ss _ServerSession
117    * @return _Reference[]
118    */

119   public _Reference[] checkSemantic(_ServerSession ss) throws DException {
120     _Reference[] refs = super.checkSemantic(ss);
121           if(refs==null || refs.length==0){
122             ByteComparison bc1 = _numericvalueexpression0.getByteComparison(ss);
123             ByteComparison bc2 = _datetimevalueexpression2.getByteComparison(ss);
124             checkSemantic(ss, bc1, bc2);
125           }
126           checkForQuestion(_datetimevalueexpression2.getColumnDetails(),_numericvalueexpression0.getColumnDetails());
127           return refs;
128        }
129
130   /**
131    * getTablesIncluded
132    *
133    * @param arrayList ArrayList
134 // */

135
136   /**
137    * getColumnsIncluded
138    *
139    * @param aList ArrayList
140    */

141
142   /**
143    * getByte
144    *
145    * @param variableValues _VariableValues
146    * @return byte[][]
147    */

148
149   /**
150    * getObject
151    *
152    * @param variableValues _VariableValues
153    * @return Object
154    */

155
156   /**
157    * getByteComparison
158    *
159    * @param object Object
160    * @return ByteComparison
161    */

162
163   /**
164    * getChildColumnDetails
165    *
166    * @return ColumnDetails[]
167    */

168   public ColumnDetails[] getChildColumnDetails() {
169     return columnDetails;
170   }
171
172   /**
173    * setDefaultValues
174    *
175    * @param variableValueOperations _VariableValueOperations
176    */

177
178   /**
179    * checkForSubQuery
180    *
181    * @return boolean
182    */

183
184   /**
185    * releaseResource
186    */

187
188   /**
189    * getChilds
190    *
191    * @return AbstractRowValueExpression[]
192    */

193   public AbstractRowValueExpression[] getChilds() {
194     return new AbstractRowValueExpression[]{ (AbstractRowValueExpression)_datetimevalueexpression2 ,( AbstractRowValueExpression)_numericvalueexpression0};
195   }
196
197   /**
198    * getObject
199    *
200    * @param type1 int
201    * @param type2 int
202    * @param result1 Object
203    * @param result2 Object
204    * @return FieldBase
205    */

206   public FieldBase getObject(int type1, int type2, Object JavaDoc result1,
207                              Object JavaDoc result2) throws DException {
208
209     return GeneralPurposeStaticClass.dateMinusTerm(type1, type2, result1, result2);
210   }
211
212
213   /**
214   * This method returns appropriate data type corresponding to operand data type .
215   *
216   * @author Manoj Kr. | Jan . 24 , 2005 (-)
217   *
218   */

219      protected int getAppropriateDataType(Object JavaDoc object) throws DException {
220          int dataType1 = getDataTypeForByte(childs[0].getByteComparison(object));
221          int dataType2 = getDataTypeForByte(childs[1].getByteComparison(object));
222          /*Date <--> Date returns Integer*/
223          if (dataType1 == DATE && dataType2 == DATE)
224              return INTEGER;
225          /*Date <--> Numeric Family returns DATE */
226          if (dataType1 == DATE &&
227              GeneralPurposeStaticClass.isfromNumericFamily(dataType2))
228              return DATE;
229          /*Timestamp <--> Timestamp returns INTEGER */
230          if (dataType1 == TIMESTAMP && dataType2 == TIMESTAMP)
231              return INTEGER;
232           /*Timestamp <--> Numeric Family returns TIMESTAMP */
233          if (dataType1 == TIMESTAMP &&
234              GeneralPurposeStaticClass.isfromNumericFamily(dataType2))
235              return TIMESTAMP;
236          throw new DException("DSE87",
237                               new Object JavaDoc[] {TypeConverter.
238                               getDataBaseTypeName(dataType1),
239                               TypeConverter.getDataBaseTypeName(dataType2)});
240      }
241
242 }
243
Popular Tags