1 package com.daffodilwoods.daffodildb.server.sql99.expression.booleanvalueexpression; 2 3 import com.daffodilwoods.daffodildb.server.sql99.ddl.descriptors.*; 4 import com.daffodilwoods.daffodildb.utils.field.*; 5 import com.daffodilwoods.database.resource.*; 6 7 public class precisionscale implements com.daffodilwoods.daffodildb.utils.parser.StatementExecuter { 8 9 public String toString() { 10 StringBuffer sb = new StringBuffer (); 11 sb.append(" "); 12 sb.append(_precision1); 13 sb.append(" "); 14 if (_OptScomma94843605scale0 != null) { 15 sb.append(" , "); 16 sb.append(_OptScomma94843605scale0); 17 } 18 return sb.toString(); 19 } 20 21 private DataTypeDescriptor dataTypeDes; 22 public scale _OptScomma94843605scale0; 23 public precision _precision1; 24 public Object run(Object object) throws DException { 25 int maximumPrecision = _precision1 == null ? 26 dataTypeDes.implicit_maximum_numeric_precision 27 : ( (Number ) ( (FieldBase) _precision1.run(null)).getObject()).intValue(); 28 int maximumScale = _OptScomma94843605scale0 == null ? 0 29 : ( (Number ) ( (FieldBase) _OptScomma94843605scale0.run(null)).getObject()).intValue(); 30 if (maximumPrecision == 0) { 31 throw new DException("DSE8069", null); 32 } 33 if (maximumScale > maximumPrecision) { 34 throw new DException("DSE892", new Object [] {new Integer (maximumScale), 35 new Integer (maximumPrecision)}); 36 } 37 if (maximumScale > dataTypeDes.implicit_maximum_numeric_scale) { 38 throw new DException("DSE891", new Object [] {new Integer (maximumScale), 39 new 40 Integer (dataTypeDes.implicit_maximum_numeric_scale)}); 41 } 42 if (maximumPrecision > dataTypeDes.implicit_maximum_numeric_precision) { 43 throw new DException("DSE799", new Object [] {new Integer (maximumPrecision), 44 new 45 Integer (dataTypeDes.implicit_maximum_numeric_scale)}); 46 } 47 dataTypeDes.numeric_precision = new Integer (maximumPrecision); 48 dataTypeDes.numeric_scal = new Integer (maximumScale); 49 return null; 50 } 51 52 public void setDataTypeDescriptor(DataTypeDescriptor dataTypeDes0) throws 53 DException { 54 dataTypeDes = dataTypeDes0; 55 } 56 57 public Object clone() throws CloneNotSupportedException { 58 precisionscale tempClass = new precisionscale(); 59 if (_OptScomma94843605scale0 != null) { 60 tempClass._OptScomma94843605scale0 = (scale) _OptScomma94843605scale0.clone(); 61 } 62 tempClass._precision1 = (precision) _precision1.clone(); 63 return tempClass; 64 } 65 } 66 | Popular Tags |