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 ; 15 import java.util.Arrays ; 16 import com.daffodilwoods.daffodildb.server.sql99.expression.booleanvalueexpression.AbstractBooleanValueExpression; 17 18 public class equalscasesensitivefunction extends AbstractBooleanValueExpression implements 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 run(Object 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 getResult(int type1, int type2, Object result1, Object 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 [] {StaticClass.getDataTypeName(type2), "EQUALCASESENSITIVEFUNCTION"}); 51 } 52 53 } 54 throw new DException("DSE419", new Object [] {"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 getType() throws DException { 69 return (String ) _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 list =new ArrayList (); 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 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 122 ParameterInfo parameterInfo = new ParameterInfo(); 123 parameterInfo.setName(toString()); 124 parameterInfo.setDataType(Datatypes.BOOLEAN); 125 return new ParameterInfo[] { 126 parameterInfo}; 127 128 } 129 130 131 132 public Object clone() throws CloneNotSupportedException { 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 toString() { 153 StringBuffer sb = new StringBuffer (); 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 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 [] {StaticClass.getDataTypeName(type2), "EQUALCASESENSITIVEFUNCTION"}); 193 } 194 } 195 throw new DException("DSE419", new Object [] {StaticClass.getDataTypeName(type1), "EQUALCASESENSITIVEFUNCTION"}); 196 197 } 198 199 } 200 | Popular Tags |