KickJava   Java API By Example, From Geeks To Geeks.

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


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.utils._Reference;
7 import com.daffodilwoods.daffodildb.server.serversystem._ServerSession;
8 import com.daffodilwoods.daffodildb.server.sql99.common.ColumnDetails;
9 import com.daffodilwoods.daffodildb.server.sql99.common.ParameterInfo;
10 import com.daffodilwoods.daffodildb.server.sql99.common.TableDetails;
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.expression.numericvalueexpression.AbstractTerm;
16 import com.daffodilwoods.daffodildb.server.sql99.expression.rowvalueexpression.
17
    AbstractRowValueExpression;
18 import com.daffodilwoods.daffodildb.utils.field.FieldBase;
19 import com.daffodilwoods.daffodildb.server.sql99.common.Datatypes;
20 import com.daffodilwoods.daffodildb.server.sql99.common.GeneralPurposeStaticClass;
21 import com.daffodilwoods.database.general.TypeConverter;
22
23 public class datetimevalueexpressionSplussign_1537298301numericvalueexpression extends AbstractTerm
24     implements com.daffodilwoods.daffodildb.utils.parser.StatementExecuter ,datetimevalueexpression {
25
26      public numericvalueexpression _numericvalueexpression0 ;
27      public Splussign_1537298301 _Splussign_15372983011 ;
28      public datetimevalueexpression _datetimevalueexpression2 ;
29 public String JavaDoc toString() {
30     StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
31     sb.append(" ");
32     sb.append(_datetimevalueexpression2);
33     sb.append(" ");
34     sb.append(_Splussign_15372983011);
35     sb.append(" ");
36     sb.append(_numericvalueexpression0);
37     return sb.toString();
38 }
39
40   /**
41    * getParameters
42    *
43    * @param object Object
44    * @return Object[]
45    */

46
47   /**
48    * clone
49    *
50    * @return Object
51    */

52   public Object JavaDoc clone() throws CloneNotSupportedException JavaDoc {
53    datetimevalueexpressionSplussign_1537298301numericvalueexpression temp = new datetimevalueexpressionSplussign_1537298301numericvalueexpression();
54    temp._datetimevalueexpression2 = (datetimevalueexpression) temp._datetimevalueexpression2.clone();
55    temp._Splussign_15372983011 = (Splussign_1537298301)temp._Splussign_15372983011.clone();
56    temp._numericvalueexpression0 = (numericvalueexpression) temp._numericvalueexpression0.clone();
57    return temp;
58   }
59
60   /**
61    * checkSemantic
62    *
63    * @param ss _ServerSession
64    * @return _Reference[]
65    */

66   public _Reference[] checkSemantic(_ServerSession ss) throws DException {
67     _Reference[] refs = super.checkSemantic(ss);
68           if(refs==null || refs.length==0){
69             ByteComparison bc1 = _numericvalueexpression0.getByteComparison(ss);
70             ByteComparison bc2 = _datetimevalueexpression2.getByteComparison(ss);
71             checkSemantic(ss, bc1, bc2);
72           }
73           checkForQuestion(_datetimevalueexpression2.getColumnDetails(),_numericvalueexpression0.getColumnDetails());
74           return refs;
75     }
76
77
78
79   /**
80    * getCardinality
81    *
82    * @return int
83    */

84
85   /**
86    * getColumnDetails
87    *
88    * @return ColumnDetails[]
89    */

90   public ColumnDetails[] getColumnDetails() throws DException {
91     ColumnDetails cd[] = super.getColumnDetails();
92     if (cd.length == 1)
93       return cd;
94
95     ColumnDetails columnDetail = new ColumnDetails();
96     String JavaDoc str = toString();
97     columnDetail.setColumn(new String JavaDoc[] {str});
98     columnDetail.setType(FUNCTIONAL);
99     columnDetail.setObject(this);
100     columnDetail.setExpression(str);
101     return new ColumnDetails[] {
102         columnDetail};
103
104   }
105
106   /**
107    * getParameterInfo
108    *
109    * @return ParameterInfo[]
110    */

111   public ParameterInfo[] getParameterInfo() throws DException {
112     ParameterInfo[] parameterInfo = super.getParameterInfo();
113   for (int i = 0; i < parameterInfo.length; i++) {
114     if (parameterInfo[i].getQuestionMark()) {
115       parameterInfo[i].setDataType(Datatypes.BIGDECIMAL);
116     }
117   }
118   return parameterInfo;
119
120   }
121
122   /**
123    * getReferences
124    *
125    * @param td TableDetails[]
126    * @return _Reference[]
127    */

128
129   /**
130    * getTablesIncluded
131    *
132    * @param arrayList ArrayList
133    */

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

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

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

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

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

167   public ColumnDetails[] getChildColumnDetails() {
168     return columnDetails;
169   }
170
171   /**
172    * checkForSubQuery
173    *
174    * @return boolean
175    */

176
177   /**
178    * releaseResource
179    */

180   /**
181    * setDefaultValues
182    *
183    * @param variableValueOperations _VariableValueOperations
184    */

185
186   /**
187    * getChilds
188    *
189    * @return AbstractRowValueExpression[]
190    */

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

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

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