KickJava   Java API By Example, From Geeks To Geeks.

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


1 package com.daffodilwoods.daffodildb.server.sql99.expression.stringvalueexpression;
2
3 import com.daffodilwoods.database.resource.*;
4 import com.daffodilwoods.daffodildb.server.sql99.token.*;
5 import com.daffodilwoods.daffodildb.server.sql99.utils._Reference;
6 import com.daffodilwoods.daffodildb.server.serversystem._ServerSession;
7 import com.daffodilwoods.daffodildb.server.sql99.common.ParameterInfo;
8 import com.daffodilwoods.daffodildb.server.sql99.utils.ByteComparison;
9 import com.daffodilwoods.daffodildb.utils.field.FieldBase;
10 import com.daffodilwoods.daffodildb.utils.field.FieldBooleanLiteral;
11 import com.daffodilwoods.daffodildb.server.sql99.common.*;
12 import com.daffodilwoods.daffodildb.server.sql99.expression.rowvalueexpression.AbstractRowValueExpression;
13 import com.daffodilwoods.daffodildb.utils.comparator.CTusjohTfotjujwfDpnqbsbups;
14 import java.util.ArrayList JavaDoc;
15 import java.util.Arrays JavaDoc;
16 import com.daffodilwoods.daffodildb.server.sql99.expression.booleanvalueexpression.AbstractBooleanValueExpression;
17
18 public class equalscasesensitivefunction extends /*AbstractStringValueExpression*/ AbstractBooleanValueExpression implements /*com.daffodilwoods.daffodildb.utils.parser.StatementExecuter,*/ /*charactervaluefunction */ booleanvaluefunction {
19
20   public Srightparen_1874859514 _Srightparen_18748595140;
21   public charactervalueexpression _charactervalueexpression1;
22   public Scomma94843605 _Scomma948436052;
23   public charactervalueexpression _charactervalueexpression3;
24   public Sleftparen653880241 _Sleftparen6538802414;
25   public SNONRESERVEDWORD136444255 _SNONRESERVEDWORD1364442555;
26
27
28
29   public Object JavaDoc run(Object JavaDoc object) throws DException {
30     FieldBase result1 = (FieldBase) _charactervalueexpression3.run(object);
31     FieldBase result2 = (FieldBase) _charactervalueexpression1.run(object);
32     return getResult(getDataType(result1), getDataType(result2),result1, result2);
33   }
34
35
36   private Object JavaDoc getResult(int type1, int type2, Object JavaDoc result1, Object JavaDoc result2) throws
37          DException {
38         switch (type1) {
39            case CHARACTER:
40            case VARCHAR:
41            case CHAR:
42            case CHARACTERVARYING:
43               switch (type2) {
44                  case CHARACTER:
45                  case VARCHAR:
46                  case CHAR:
47                  case CHARACTERVARYING:
48                     return new FieldBooleanLiteral(((new CTusjohTfotjujwfDpnqbsbups()).compare(result1,result2)),Datatypes.BOOLEAN);
49                 default:
50                 throw new DException("DSE419", new Object JavaDoc[] {StaticClass.getDataTypeName(type2), "EQUALCASESENSITIVEFUNCTION"});
51               }
52
53         }
54         throw new DException("DSE419", new Object JavaDoc[] {"EQUALCASESENSITIVEFUNCTION"});
55      }
56
57
58
59    protected int getDataType(FieldBase fieldBase) throws DException {
60           int dataType = fieldBase.getDatatype();
61           if (dataType == -1) {
62              fieldBase.setDatatype( -1);
63              dataType = fieldBase.getDatatype();
64           }
65           return dataType;
66        }
67
68   public String JavaDoc getType() throws DException {
69        return (String JavaDoc) _SNONRESERVEDWORD1364442555.run(null);
70     }
71
72
73
74   public AbstractRowValueExpression[] getChilds() {
75       AbstractRowValueExpression[] childs = new AbstractRowValueExpression[] {
76           (AbstractRowValueExpression) (_charactervalueexpression3),
77           (AbstractRowValueExpression) (_charactervalueexpression1)};
78       return childs;
79
80    }
81
82
83
84
85   public ParameterInfo[] getParameterInfo() throws DException {
86     ArrayList JavaDoc list =new ArrayList JavaDoc();
87     ParameterInfo[] param1 = _charactervalueexpression3.getParameterInfo();
88    for (int i = 0; i < param1.length; i++) {
89      if (param1[i].getQuestionMark()) {
90        param1[i].setDataType(Datatypes.CHARACTER);
91        param1[i].setName("EQUALSCASESENSITIVE Arg1");
92        list.addAll(Arrays.asList(param1));
93      }
94    }
95      ParameterInfo[] param2 = _charactervalueexpression1.getParameterInfo();
96     for (int i = 0; i < param2.length; i++) {
97       if (param2[i].getQuestionMark()) {
98         param2[i].setDataType(Datatypes.CHARACTER);
99         param2[i].setName("EQUALSCASESENSITIVE Arg2");
100         list.addAll(Arrays.asList(param2));
101       }
102     }
103     ParameterInfo[] param = new ParameterInfo[list.size()];
104     list.toArray(param);
105     for (int i = 0; i < param.length; i++) {
106        if(param[i].getQuestionMark())
107          return param;
108     }
109      return getThisParameterInfo();
110   }
111
112
113   public ByteComparison getByteComparison(Object JavaDoc object) throws DException{
114     ByteComparison byteComparison=new ByteComparison(false, new int[] {Datatypes.BOOLEAN});
115     byteComparison.setSize(getColumnSize(object));
116     return byteComparison;
117   }
118
119
120   protected ParameterInfo[] getThisParameterInfo() throws DException {
121        /*dst*/
122        ParameterInfo parameterInfo = new ParameterInfo();
123        parameterInfo.setName(toString());
124        parameterInfo.setDataType(Datatypes.BOOLEAN);
125        return new ParameterInfo[] {
126            parameterInfo};
127        /*dend*/
128     }
129
130
131
132   public Object JavaDoc clone() throws CloneNotSupportedException JavaDoc{
133     equalscasesensitivefunction tempClass = new equalscasesensitivefunction();
134      tempClass._Srightparen_18748595140 = (Srightparen_1874859514)
135          _Srightparen_18748595140.clone();
136      tempClass._charactervalueexpression1 = (charactervalueexpression)
137          _charactervalueexpression1.clone();
138      tempClass._Scomma948436052 = (Scomma94843605) _Scomma948436052.clone();
139      tempClass._charactervalueexpression3 = (charactervalueexpression)
140          _charactervalueexpression3.clone();
141      tempClass._Sleftparen6538802414 = (Sleftparen653880241)
142          _Sleftparen6538802414.clone();
143      tempClass._SNONRESERVEDWORD1364442555 = (SNONRESERVEDWORD136444255)
144          _SNONRESERVEDWORD1364442555.clone();
145       return tempClass;
146   }
147
148   public ColumnDetails[] getChildColumnDetails() {
149       return columnDetails;
150   }
151
152   public String JavaDoc toString() {
153   StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
154   sb.append(" ");
155   sb.append(_SNONRESERVEDWORD1364442555);
156   sb.append(" ");
157   sb.append(_Sleftparen6538802414);
158   sb.append(" ");
159   sb.append(_charactervalueexpression3);
160   sb.append(" ");
161   sb.append(_Scomma948436052);
162   sb.append(" ");
163   sb.append(_charactervalueexpression1);
164   sb.append(" ");
165   sb.append(_Srightparen_18748595140);
166   return sb.toString();
167 }
168  int getColumnSize(Object JavaDoc object) throws DException {
169   return Datatypes.BOOLEANSIZE;
170 }
171 public _Reference[] checkSemantic(_ServerSession _serverSession) throws DException{
172    _Reference[] ref = super.checkSemantic(_serverSession);
173    if(ref!=null) {
174           return ref;
175         }
176    int type1 = _charactervalueexpression1.getByteComparison(_serverSession).getDataTypes()[0];
177    int type2 = _charactervalueexpression3.getByteComparison(_serverSession).getDataTypes()[0];
178    switch (type1) {
179       case -1:
180       case CHARACTER:
181       case VARCHAR:
182       case CHAR:
183       case CHARACTERVARYING:
184          switch (type2) {
185             case -1:
186             case CHARACTER:
187             case VARCHAR:
188             case CHAR:
189             case CHARACTERVARYING:
190                return ref;
191             default:
192                throw new DException("DSE419", new Object JavaDoc[] {StaticClass.getDataTypeName(type2), "EQUALCASESENSITIVEFUNCTION"});
193          }
194    }
195    throw new DException("DSE419", new Object JavaDoc[] {StaticClass.getDataTypeName(type1), "EQUALCASESENSITIVEFUNCTION"});
196
197  }
198
199 }
200
Popular Tags