KickJava   Java API By Example, From Geeks To Geeks.

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


1 package com.daffodilwoods.daffodildb.server.sql99.expression.datetimevalueexpression;
2
3 import java.sql.*;
4 import java.sql.Date JavaDoc;
5 import java.util.*;
6
7 import com.daffodilwoods.daffodildb.server.datasystem.interfaces.*;
8 import com.daffodilwoods.daffodildb.server.serversystem.*;
9 import com.daffodilwoods.daffodildb.server.sql99.common.*;
10 import com.daffodilwoods.daffodildb.server.sql99.expression.rowvalueexpression.*;
11 import com.daffodilwoods.daffodildb.server.sql99.token.*;
12 import com.daffodilwoods.daffodildb.server.sql99.utils.*;
13 import com.daffodilwoods.daffodildb.utils.*;
14 import com.daffodilwoods.daffodildb.utils.field.*;
15 import com.daffodilwoods.database.resource.*;
16 import com.daffodilwoods.daffodildb.server.sql99.expression.numericvalueexpression.numericvaluefunction;
17 import com.daffodilwoods.daffodildb.server.sql99.expression.numericvalueexpression.AbstractNumericValueFunction;
18
19 public class minutefunction extends /*AbstractDateTimeValueFunction*/ AbstractNumericValueFunction implements com.daffodilwoods.daffodildb.utils.parser.StatementExecuter,/* datetimevaluefunction*/numericvaluefunction , TypeConstants, Datatypes {
20    public Srightparen_1874859514 _Srightparen_18748595140;
21    public datetimevalueexpression _datetimevalueexpression1;
22    public Sleftparen653880241 _Sleftparen6538802412;
23    public SRESERVEDWORD1206543922 _SRESERVEDWORD12065439223;
24
25
26    protected ParameterInfo[] getThisParameterInfo() throws DException {
27       ParameterInfo parameterInfo = new ParameterInfo();
28       parameterInfo.setName(toString());
29       parameterInfo.setDataType(INTEGER);
30       return new ParameterInfo[] {parameterInfo};
31    }
32
33    protected Object JavaDoc getResult(int type, Object JavaDoc object) throws DException {
34       if (object == null) {
35          return new FieldLiteral(FieldUtility.NULLBUFFERRANGE, Datatype.INTEGER);
36       }
37       GregorianCalendar calendar = new GregorianCalendar();
38       switch (type) {
39          case BYTE:
40          case TINYINT:
41          case INTEGER:
42          case INT:
43          case SHORT:
44          case SMALLINT:
45             Number JavaDoc operand = (Number JavaDoc) object;
46             calendar.set(Calendar.MINUTE, operand.intValue());
47             return new FieldLiteral(new Integer JavaDoc(calendar.get(Calendar.MINUTE)), Datatype.INTEGER);
48          case REAL:
49          case DOUBLE:
50          case FLOAT:
51          case DOUBLEPRECISION:
52          case LONG:
53          case BIGINT:
54          case BIGDECIMAL:
55          case DEC:
56          case DECIMAL:
57          case NUMERIC:
58             throw new DException("DSE8106", new Object JavaDoc[] {StaticClass.getDataTypeName(type)});
59          case CHARACTER:
60          case VARCHAR:
61          case CHAR:
62          case CHARACTERVARYING:
63            String JavaDoc string = (String JavaDoc) object;
64            try {
65              Time time =TypeValidityHandler.getTime(string);
66              Date JavaDoc d = new com.daffodilwoods.daffodildb.utils.DBDate(time.getTime());
67              calendar.setTime(d);
68              return new FieldLiteral(new Integer JavaDoc(calendar.get(Calendar.MINUTE)), Datatype.INTEGER);
69            }
70            catch (DException ex) {
71              try {
72                Timestamp time1 = TypeValidityHandler.getTimestamp(string);
73                Date JavaDoc d1 = new com.daffodilwoods.daffodildb.utils.DBDate(time1.getTime());
74                calendar.setTime(d1);
75                return new FieldLiteral(new Integer JavaDoc(calendar.get(Calendar.MINUTE)), Datatype.INTEGER);
76              }
77              catch (DException ex1) {
78                try {
79                  Date JavaDoc d2 = TypeValidityHandler.getDBDate(string);
80                  calendar.setTime(d2);
81                  return new FieldLiteral(new Integer JavaDoc(calendar.get(Calendar.MINUTE)), Datatype.INTEGER);
82                }
83                catch (DException ex2) {
84                  try {
85                    calendar.set(Calendar.MINUTE,new Integer JavaDoc(string).intValue());
86                    return new FieldLiteral(new Integer JavaDoc(calendar.get(Calendar.MINUTE)), Datatype.INTEGER);
87                  }
88                  catch (Exception JavaDoc ex3) {
89                    throw new DException("DSE419", new Object JavaDoc[]{string});
90                  }
91                }
92              }
93            }
94          case DATE:
95             Date JavaDoc d2 = (Date JavaDoc) object;
96             calendar.setTime(d2);
97             return new FieldLiteral(new Integer JavaDoc(calendar.get(Calendar.MINUTE)), Datatype.INTEGER);
98          case TIME:
99             Time time = (Time) object;
100             Date JavaDoc d = new com.daffodilwoods.daffodildb.utils.DBDate(time.getTime());
101             calendar.setTime(d);
102             return new FieldLiteral(new Integer JavaDoc(calendar.get(Calendar.MINUTE)), Datatype.INTEGER);
103          case TIMESTAMP:
104             Timestamp time1 = (Timestamp) object;
105             Date JavaDoc d1 = new com.daffodilwoods.daffodildb.utils.DBDate(time1.getTime());
106             calendar.setTime(d1);
107             return new FieldLiteral(new Integer JavaDoc(calendar.get(Calendar.MINUTE)), Datatype.INTEGER);
108          default:
109             throw new DException("DSE4108", new Object JavaDoc[] {StaticClass.getDataTypeName(type), "MINUTE"});
110       }
111    }
112
113    /* protected Object getResult(int type,Object object) throws DException {
114     if(object == null)
115       return new FieldLiteral(FieldUtility.NULLBUFFERRANGE,Datatype.INTEGER);
116       GregorianCalendar calendar = new GregorianCalendar();
117       switch(type){
118         case BYTE : case TINYINT :
119           calendar.set(Calendar.DATE,((Byte)object).intValue());
120           return new FieldLiteral(new Integer(calendar.get(Calendar.MINUTE)),Datatype.INTEGER);
121         case INTEGER : case INT :
122           Integer integer = (Integer)object;
123           calendar.set(Calendar.DATE,integer.intValue());
124           return new FieldLiteral(new Integer(calendar.get(Calendar.MINUTE)),Datatype.INTEGER);
125         case REAL :
126           Float floatV = (Float)object;
127           calendar.set(Calendar.DATE,floatV.intValue());
128           return new FieldLiteral(new Integer(calendar.get(Calendar.MINUTE)),Datatype.INTEGER);
129         case DOUBLE : case FLOAT : case DOUBLEPRECISION :
130           Double doubleV = (Double)object;
131           calendar.set(Calendar.DATE,doubleV.intValue());
132           return new FieldLiteral(new Integer(calendar.get(Calendar.MINUTE)),Datatype.INTEGER);
133         case LONG : case BIGINT :
134           Long longV = (Long)object;
135           calendar.set(Calendar.DATE,longV.intValue());
136           return new FieldLiteral(new Integer(calendar.get(Calendar.MINUTE)),Datatype.INTEGER);
137         case SHORT : case SMALLINT :
138           Short shortV = (Short)object;
139           calendar.set(Calendar.DATE,shortV.intValue());
140           return new FieldLiteral(new Integer(calendar.get(Calendar.MINUTE)),Datatype.INTEGER);
141         case BIGDECIMAL : case DEC : case DECIMAL : case NUMERIC :
142           BigDecimal bigDecimal = (BigDecimal)object;
143           calendar.set(Calendar.DATE,bigDecimal.intValue());
144           return new FieldLiteral(new Integer(calendar.get(Calendar.MINUTE)),Datatype.INTEGER);
145         case CHARACTER :case VARCHAR: case CHAR: case CHARACTERVARYING:
146           throw new DException("DSE537",null);
147         case DATE :
148           Date d2 = (Date)object;
149           calendar.setTime(d2);
150           return new FieldLiteral(new Integer(calendar.get(Calendar.MINUTE)),Datatype.INTEGER);
151         case TIME :
152           Time time = (Time)object;
153           Date d = new com.daffodilwoods.daffodildb.utils.DBDate(time.getTime());
154           calendar.setTime(d);
155           return new FieldLiteral(new Integer(calendar.get(Calendar.MINUTE)),Datatype.INTEGER);
156         case TIMESTAMP :
157           Timestamp time1 = (Timestamp)object;
158           Date d1 = new com.daffodilwoods.daffodildb.utils.DBDate(time1.getTime());
159           calendar.setTime(d1);
160           return new FieldLiteral(new Integer(calendar.get(Calendar.MINUTE)),Datatype.INTEGER);
161         default :
162                       throw new DException("DSE4108",new Object[]{StaticClass.getDataTypeName(type),"MINUTE"});
163       }
164      } */

165
166    public AbstractRowValueExpression[] getChilds() {
167       AbstractRowValueExpression[] childs = new AbstractRowValueExpression[] { (AbstractRowValueExpression) (_datetimevalueexpression1)};
168       return childs;
169
170    }
171
172
173    public String JavaDoc toString() {
174       StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
175       sb.append(" ");
176       sb.append(_SRESERVEDWORD12065439223);
177       sb.append(" ");
178       sb.append(_Sleftparen6538802412);
179       sb.append(" ");
180       sb.append(_datetimevalueexpression1);
181       sb.append(" ");
182       sb.append(_Srightparen_18748595140);
183       return sb.toString();
184    }
185
186    public Object JavaDoc clone() throws CloneNotSupportedException JavaDoc {
187       minutefunction tempClass = new minutefunction();
188       tempClass._Srightparen_18748595140 = (Srightparen_1874859514) _Srightparen_18748595140.clone();
189       tempClass._datetimevalueexpression1 = (datetimevalueexpression) _datetimevalueexpression1.clone();
190       tempClass._Sleftparen6538802412 = (Sleftparen653880241) _Sleftparen6538802412.clone();
191       tempClass._SRESERVEDWORD12065439223 = (SRESERVEDWORD1206543922) _SRESERVEDWORD12065439223.clone();
192       return tempClass;
193    }
194
195    public ByteComparison getByteComparison(Object JavaDoc object) throws DException {
196    ByteComparison byteComparison = new ByteComparison(false, new int[] {INTEGER});
197    byteComparison.setSize(getColumnSize(object));
198    return byteComparison;
199    }
200
201    public String JavaDoc getType() throws DException {
202       return (String JavaDoc) _SRESERVEDWORD12065439223.run(null);
203    }
204
205    public _Reference[] checkSemantic(_ServerSession parent) throws DException {
206       _Reference[] ref = super.checkSemantic(parent);
207       if(ref!=null) {
208         return ref;
209        }
210       int type = _datetimevalueexpression1.getByteComparison(parent).getDataTypes()[0];
211       switch (type) {
212          case -1:
213          case BYTE:
214          case TINYINT:
215          case INTEGER:
216          case INT:
217          case REAL:
218          case DOUBLE:
219          case FLOAT:
220          case DOUBLEPRECISION:
221          case LONG:
222          case BIGINT:
223          case SHORT:
224          case SMALLINT:
225          case BIGDECIMAL:
226          case DEC:
227          case DECIMAL:
228          case NUMERIC:
229          case DATE:
230          case TIME:
231          case TIMESTAMP:
232             return ref;
233          default:
234             throw new DException("DSE4108", new Object JavaDoc[] {StaticClass.getDataTypeName(type), "HOUR"});
235       }
236
237    }
238
239    public ParameterInfo[] getParameterInfo() throws DException {
240      ParameterInfo[] paramInfo = super.getParameterInfo();
241      for (int i = 0; i < paramInfo.length; i++) {
242       if (paramInfo[i].getQuestionMark()) {
243         paramInfo[i].setDataType(Datatypes.TIME);
244         paramInfo[i].setName("MINUTE Arg");
245       }
246     }
247      return paramInfo;
248    }
249    public int getColumnSize( Object JavaDoc object) throws DException {
250       return Datatypes.INTSIZE;
251     }
252
253 }
254
Popular Tags