| 1 package com.daffodilwoods.daffodildb.server.sql99.expression.numericvalueexpression; 2 3 import com.daffodilwoods.daffodildb.server.sql99.common.*; 4 import com.daffodilwoods.daffodildb.server.sql99.expression.rowvalueexpression.*; 5 import com.daffodilwoods.daffodildb.server.sql99.token.*; 6 import com.daffodilwoods.daffodildb.server.sql99.utils.*; 7 import com.daffodilwoods.daffodildb.utils.field.*; 8 import com.daffodilwoods.database.resource.*; 9 import com.daffodilwoods.daffodildb.server.serversystem._ServerSession; 10 import com.daffodilwoods.database.utility.P; 11 12 public class factor extends AbstractNumericValueFunction implements term, Datatypes { 13 public numericprimary _numericprimary0; 14 public sign _Optsign1; 15 private static Byte ZERO = new Byte ( (byte) 0); 16 17 public Object run(Object object) throws com.daffodilwoods.database.resource.DException { 18 if (_Optsign1 == null) { 19 return _numericprimary0.run(object); 20 } 21 FieldBase result = (FieldBase) _numericprimary0.run(object); 22 if (result.isNull()) { 23 return result; 24 } 25 String sign = (String ) _Optsign1.run(object); 26 if (sign.equals("-")) { 27 Object obj = result.getObject(); 28 return GeneralPurposeStaticClass.minus(BYTE, result.getDatatype(), ZERO, obj); 29 } 30 return result; 31 } 32 33 34 public AbstractRowValueExpression[] getChilds() { 35 AbstractRowValueExpression[] childs = new AbstractRowValueExpression[] { (AbstractRowValueExpression) _numericprimary0}; 36 return childs; 37 } 38 39 public ColumnDetails[] getColumnDetails() throws DException { 40 if (columnDetails == null) { 41 columnDetails = _numericprimary0.getColumnDetails(); 42 if (_Optsign1 != null) { 43 String sign = (String ) _Optsign1.run(null); 44 boolean b = sign.equalsIgnoreCase("-"); 45 for (int i = 0, length = columnDetails.length; i < length; i++) { 46 columnDetails[i].setNegativeValueFlag(b); 47 } 48 } 49 } 50 return columnDetails; 51 } 52 53 public String toString() { 54 StringBuffer sb = new StringBuffer (); 55 sb.append(" "); 56 if (_Optsign1 != null) { 57 sb.append(_Optsign1); 58 } 59 sb.append(" "); 60 sb.append(_numericprimary0); 61 return sb.toString(); 62 } 63 64 public Object clone() throws CloneNotSupportedException { 65 factor tempClass = new factor(); 66 tempClass._numericprimary0 = (numericprimary) _numericprimary0.clone(); 67 if (_Optsign1 != null) { 68 tempClass._Optsign1 = (sign) _Optsign1.clone(); 69 } 70 return tempClass; 71 } 72 73 public ParameterInfo[] getParameterInfo() throws DException { 74 return _numericprimary0.getParameterInfo(); 75 } 76 77 public ByteComparison getByteComparison(Object object) throws DException { 78 ByteComparison b = _numericprimary0.getByteComparison(object); 79 if (_Optsign1 != null && "-".equals(_Optsign1.run(null))) { 80 int dt = GeneralPurposeStaticClass.getDataTypeForArithmetic(BYTE, getDataTypeForByte(b)); 81 return new ByteComparison(false, new int[] {dt}); 82 } 83 return b; 84 } 85 86 public int getCardinality() throws DException { 87 return _numericprimary0.getCardinality(); 88 } 89 90 } 91 | Popular Tags |