KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > daffodildb > server > sql99 > expression > stringvalueexpression > asciivaluemethod


1 package com.daffodilwoods.daffodildb.server.sql99.expression.
2     stringvalueexpression;
3
4 import com.daffodilwoods.daffodildb.server.datasystem.interfaces.*;
5 import com.daffodilwoods.daffodildb.server.serversystem.*;
6 import com.daffodilwoods.daffodildb.server.sql99.common.*;
7 import com.daffodilwoods.daffodildb.server.sql99.expression.rowvalueexpression.*;
8 import com.daffodilwoods.daffodildb.server.sql99.token.*;
9 import com.daffodilwoods.daffodildb.server.sql99.utils.*;
10 import com.daffodilwoods.daffodildb.utils.*;
11 import com.daffodilwoods.daffodildb.utils.field.*;
12 import com.daffodilwoods.database.resource.*;
13 import com.daffodilwoods.database.utility.*;
14 import com.daffodilwoods.daffodildb.server.sql99.expression.numericvalueexpression.AbstractNumericValueFunction;
15
16 public class asciivaluemethod extends /*AbstractStringValueExpression*/ AbstractNumericValueFunction implements charactervaluefunction, IntegerPool {
17
18    public Srightparen_1874859514 _Srightparen_18748595140;
19    public charactervalueexpression _charactervalueexpression1;
20    public Sleftparen653880241 _Sleftparen6538802412;
21    public SNONRESERVEDWORD136444255 _SNONRESERVEDWORD1364442553;
22
23    public Object JavaDoc run(Object JavaDoc object) throws com.daffodilwoods.database.resource.
24
       DException {
25       FieldBase result = (FieldBase) _charactervalueexpression1.run(object);
26       return (result.isNull()) ?
27           new FieldLiteral(FieldUtility.NULLBUFFERRANGE, INTEGER)
28           : getResult(result.getObject(), getDataType(result));
29    }
30
31    public ColumnDetails[] getChildColumnDetails() throws DException {
32       return columnDetails;
33    }
34
35    protected String JavaDoc getNameOfColumn(ColumnDetails[] columnDetails) throws
36        DException {
37       String JavaDoc nameOfColumn = "";
38       for (int i = 0; i < columnDetails.length; ++i) {
39          nameOfColumn += columnDetails[i].getColumn();
40       }
41       return nameOfColumn;
42    }
43
44    public ParameterInfo[] getParameterInfo() throws DException {
45   ParameterInfo[] param =_charactervalueexpression1.getParameterInfo();
46   for (int i = 0; i < param.length; i++) {
47     if (param[i].getQuestionMark()) {
48         param[i].setDataType(Datatypes.CHARACTER);
49         param[i].setName("ASCII Arg");
50         return param;
51     }
52   }
53     return getThisParametersInfo();
54    }
55
56    private ParameterInfo[] getThisParametersInfo() throws DException {
57       ParameterInfo parameterInfo = new ParameterInfo();
58       parameterInfo.setName(toString());
59       parameterInfo.setDataType(Datatypes.INTEGER);
60       return new ParameterInfo[] {parameterInfo};
61    }
62
63    /*private int getDataType(Object object) throws DException {
64      if (object instanceof Integer)
65        return INTEGER;
66      else if (object instanceof Float)
67        return FLOAT;
68      else if (object instanceof Double)
69        return DOUBLE;
70      else if (object instanceof Long)
71        return LONG;
72      else if (object instanceof String)
73        return CHARACTER;
74      else if (object instanceof Short)
75        return SHORT;
76      else if (object instanceof BigDecimal)
77        return BIGDECIMAL;
78      else if (object instanceof Byte)
79        return BYTE;
80      else
81         throw new DException("DSE419",new Object[]{"ASCII"});
82       }*/

83
84    private Object JavaDoc getResult(Object JavaDoc object, int type) throws DException {
85       switch (type) {
86          case BYTE:
87          case TINYINT:
88          case INTEGER:
89          case INT:
90          case REAL:
91          case DOUBLE:
92          case FLOAT:
93          case DOUBLEPRECISION:
94          case LONG:
95          case BIGINT:
96          case SHORT:
97          case SMALLINT:
98          case BIGDECIMAL:
99          case DEC:
100          case DECIMAL:
101          case NUMERIC:
102             Number JavaDoc number = (Number JavaDoc) object;
103             return ascii(number.toString());
104          case CHARACTER:
105          case VARCHAR:
106          case CHAR:
107          case CHARACTERVARYING:
108             String JavaDoc string = (String JavaDoc) object;
109             return ascii(string);
110          default:
111             throw new DException("DSE4108", new Object JavaDoc[] {StaticClass.getDataTypeName(type), "ASCII"});
112       }
113    }
114
115    /* private Object getResult(Object object, int type) throws DException {
116         switch (type) {
117           case BYTE : case TINYINT :
118             return ascii( ( (Byte) object ).toString());
119           case INTEGER : case INT :
120             Integer integer = (Integer) object;
121             return ascii(integer.toString());
122           case REAL:
123             Float floatV = (Float) object;
124             return ascii(floatV.toString());
125           case DOUBLE : case FLOAT : case DOUBLEPRECISION :
126             Double doubleV = (Double) object;
127             return ascii(doubleV.toString());
128           case LONG : case BIGINT :
129             Long longV = (Long) object;
130             return ascii(longV.toString());
131           case SHORT : case SMALLINT :
132             Short shortV = (Short) object;
133             return ascii(shortV.toString());
134           case BIGDECIMAL : case DEC : case DECIMAL : case NUMERIC :
135             BigDecimal bigDecimal = (BigDecimal) object;
136             return ascii(bigDecimal.toString());
137           case CHARACTER :case VARCHAR: case CHAR: case CHARACTERVARYING:
138             String string = (String) object;
139             return ascii(string);
140           default:
141               throw new DException("DSE4108",new Object[]{StaticClass.getDataTypeName(type),"ASCII"});
142         }
143       } */

144
145    private Object JavaDoc ascii(String JavaDoc string) throws DException {
146       if (!qualifyForOperation(string)) {
147          return new FieldLiteral(FieldUtility.NULLBUFFERRANGE, INTEGER);
148       }
149       return new FieldLiteral(new Integer JavaDoc( (int) string.charAt(0)), Datatype.INTEGER);
150    }
151
152    private boolean qualifyForOperation(String JavaDoc string) throws DException {
153       if (string == null || string.length() == 0) {
154          return false;
155       }
156       return true;
157    }
158
159    public AbstractRowValueExpression[] getChilds() {
160       AbstractRowValueExpression[] childs = new AbstractRowValueExpression[] {
161           (AbstractRowValueExpression) (_charactervalueexpression1)};
162       return childs;
163
164    }
165
166    public String JavaDoc getType() throws DException {
167       return (String JavaDoc) _SNONRESERVEDWORD1364442553.run(null);
168    }
169
170    public String JavaDoc toString() {
171       StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
172       sb.append(" ");
173       sb.append(_SNONRESERVEDWORD1364442553);
174       sb.append(" ");
175       sb.append(_Sleftparen6538802412);
176       sb.append(" ");
177       sb.append(_charactervalueexpression1);
178       sb.append(" ");
179       sb.append(_Srightparen_18748595140);
180       return sb.toString();
181    }
182
183    public Object JavaDoc clone() throws CloneNotSupportedException JavaDoc {
184       asciivaluemethod tempClass = new asciivaluemethod();
185       tempClass._Srightparen_18748595140 = (Srightparen_1874859514)
186           _Srightparen_18748595140.clone();
187       tempClass._charactervalueexpression1 = (charactervalueexpression)
188           _charactervalueexpression1.clone();
189       tempClass._Sleftparen6538802412 = (Sleftparen653880241)
190           _Sleftparen6538802412.clone();
191       tempClass._SNONRESERVEDWORD1364442553 = (SNONRESERVEDWORD136444255)
192           _SNONRESERVEDWORD1364442553.clone();
193       return tempClass;
194    }
195
196    public ByteComparison getByteComparison(Object JavaDoc object) throws DException {
197      ByteComparison byteComparison = new ByteComparison(false, new int[] {INTEGER});
198      byteComparison.setSize(getColumnSize(object));
199      return byteComparison;
200    }
201
202    public _Reference[] checkSemantic(_ServerSession parent) throws DException {
203       _Reference[] ref = super.checkSemantic(parent);
204       if(ref!=null) {
205         return ref;
206       }
207       int type = _charactervalueexpression1.getByteComparison(parent).getDataTypes()[0];
208       switch (type) {
209          case -1:
210          case BYTE:
211          case TINYINT:
212          case INTEGER:
213          case INT:
214          case REAL:
215          case DOUBLE:
216          case FLOAT:
217          case DOUBLEPRECISION:
218          case LONG:
219          case BIGINT:
220          case SHORT:
221          case SMALLINT:
222          case BIGDECIMAL:
223          case DEC:
224          case DECIMAL:
225          case NUMERIC:
226          case CHARACTER:
227          case VARCHAR:
228          case CHAR:
229          case CHARACTERVARYING:
230             return ref;
231          default:
232             throw new DException("DSE4108", new Object JavaDoc[] {StaticClass.getDataTypeName(type), "ASCII"});
233       }
234    }
235     public int getColumnSize(Object JavaDoc object) throws DException {
236      return Datatypes.INTSIZE;
237    }
238
239 }
240
Popular Tags