KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > daffodildb > server > sql99 > expression > numericvalueexpression > factor


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 JavaDoc ZERO = new Byte JavaDoc( (byte) 0);
16
17    public Object JavaDoc run(Object JavaDoc 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 JavaDoc sign = (String JavaDoc) _Optsign1.run(object);
26       if (sign.equals("-")) {
27          Object JavaDoc 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 JavaDoc sign = (String JavaDoc) _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 JavaDoc toString() {
54       StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
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 JavaDoc clone() throws CloneNotSupportedException JavaDoc {
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 JavaDoc 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