KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > daffodildb > server > sql99 > expression > booleanvalueexpression > precisionscale


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 JavaDoc toString() {
10       StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
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 JavaDoc run(Object JavaDoc object) throws DException {
25       int maximumPrecision = _precision1 == null ?
26           dataTypeDes.implicit_maximum_numeric_precision
27           : ( (Number JavaDoc) ( (FieldBase) _precision1.run(null)).getObject()).intValue();
28       int maximumScale = _OptScomma94843605scale0 == null ? 0
29           : ( (Number JavaDoc) ( (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 JavaDoc[] {new Integer JavaDoc(maximumScale),
35                               new Integer JavaDoc(maximumPrecision)});
36       }
37       if (maximumScale > dataTypeDes.implicit_maximum_numeric_scale) {
38          throw new DException("DSE891", new Object JavaDoc[] {new Integer JavaDoc(maximumScale),
39                               new
40                               Integer JavaDoc(dataTypeDes.implicit_maximum_numeric_scale)});
41       }
42       if (maximumPrecision > dataTypeDes.implicit_maximum_numeric_precision) {
43          throw new DException("DSE799", new Object JavaDoc[] {new Integer JavaDoc(maximumPrecision),
44                               new
45                               Integer JavaDoc(dataTypeDes.implicit_maximum_numeric_scale)});
46       }
47       dataTypeDes.numeric_precision = new Integer JavaDoc(maximumPrecision);
48       dataTypeDes.numeric_scal = new Integer JavaDoc(maximumScale);
49       return null;
50    }
51
52    public void setDataTypeDescriptor(DataTypeDescriptor dataTypeDes0) throws
53        DException {
54       dataTypeDes = dataTypeDes0;
55    }
56
57    public Object JavaDoc clone() throws CloneNotSupportedException JavaDoc {
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