1 33 package smallsql.database; 34 35 36 class ExpressionFunctionAbs extends ExpressionFunctionReturnP1 { 37 38 int getFunction(){ return SQLTokenizer.ABS; } 39 40 41 boolean getBoolean() throws Exception { 42 return getDouble() != 0; 43 } 44 45 int getInt() throws Exception { 46 return Math.abs( param1.getInt() ); 47 } 48 49 long getLong() throws Exception { 50 return Math.abs( param1.getLong() ); 51 } 52 53 float getFloat() throws Exception { 54 return Math.abs( param1.getFloat() ); 55 } 56 57 double getDouble() throws Exception { 58 return Math.abs( param1.getDouble() ); 59 } 60 61 long getMoney() throws Exception { 62 return Math.abs( param1.getMoney() ); 63 } 64 65 MutableNumeric getNumeric() throws Exception { 66 if(param1.isNull()) return null; 67 MutableNumeric num = param1.getNumeric(); 68 if(num.getSignum() < 0) num.setSignum(1); 69 return num; 70 } 71 72 Object getObject() throws Exception { 73 if(param1.isNull()) return null; 74 Object para1 = param1.getObject(); 75 switch(param1.getDataType()){ 76 case SQLTokenizer.FLOAT: 77 case SQLTokenizer.DOUBLE: 78 double dValue = ((Double )para1).doubleValue(); 79 return (dValue<0) ? new Double (-dValue) : para1; 80 case SQLTokenizer.REAL: 81 double fValue = ((Float )para1).floatValue(); 82 return (fValue<0) ? new Float (-fValue) : para1; 83 case SQLTokenizer.BIGINT: 84 long lValue = ((Number )para1).longValue(); 85 return (lValue<0) ? new Long (-lValue) : para1; 86 case SQLTokenizer.TINYINT: 87 case SQLTokenizer.SMALLINT: 88 case SQLTokenizer.INT: 89 int iValue = ((Number )para1).intValue(); 90 return (iValue<0) ? new Integer (-iValue) : para1; 91 case SQLTokenizer.NUMERIC: 92 case SQLTokenizer.DECIMAL: 93 MutableNumeric nValue = (MutableNumeric)para1; 94 if(nValue.getSignum() <0) nValue.setSignum(1); 95 return nValue; 96 case SQLTokenizer.MONEY: 97 Money mValue = (Money)para1; 98 if(mValue.value <0) mValue.value = -mValue.value; 99 return mValue; 100 default: throw createUnspportedDataType(param1.getDataType()); 101 } 102 } 103 104 String getString() throws Exception { 105 Object obj = getObject(); 106 if(obj == null) return null; 107 return obj.toString(); 108 } 109 110 111 } | Popular Tags |