KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > daffodildb > server > sql99 > expression > stringvalueexpression > concatenation


1 package com.daffodilwoods.daffodildb.server.sql99.expression.
2     stringvalueexpression;
3
4 import com.daffodilwoods.daffodildb.server.sql99.common.*;
5 import com.daffodilwoods.daffodildb.server.sql99.expression.*;
6 import com.daffodilwoods.daffodildb.server.sql99.expression.rowvalueexpression.*;
7 import com.daffodilwoods.daffodildb.server.sql99.token.*;
8 import com.daffodilwoods.daffodildb.server.sql99.utils.*;
9 import com.daffodilwoods.daffodildb.utils.*;
10 import com.daffodilwoods.daffodildb.utils.field.*;
11 import com.daffodilwoods.database.resource.*;
12
13 public class concatenation extends AbstractValueExpression implements charactervalueexpression {
14    public characterfactor _characterfactor0;
15    public Sconcatenationoperator_247443092 _Sconcatenationoperator_2474430921;
16    public charactervalueexpression _charactervalueexpression2;
17
18    public Object JavaDoc run(Object JavaDoc object) throws com.daffodilwoods.database.resource.
19
       DException {
20       /*dst*/
21       FieldBase firstOperand = (FieldBase) _charactervalueexpression2.run(object);
22       FieldBase secondOperand = (FieldBase) _characterfactor0.run(object);
23       if (firstOperand.isNull() && secondOperand.isNull()) {
24          return new FieldStringLiteral(FieldUtility.NULLBUFFERRANGE, Datatypes.CHARACTER);
25       }
26       return firstOperand.isNull() ? new FieldStringLiteral(secondOperand.getObject().toString(), Datatypes.CHARACTER)
27           : secondOperand.isNull() ? new FieldStringLiteral(firstOperand.getObject().toString(), Datatypes.CHARACTER) :
28           new FieldStringLiteral( (new StringBuffer JavaDoc(firstOperand.getObject().toString()).append(secondOperand.getObject().toString()).toString()), Datatypes.CHARACTER);
29       /*dend*/
30    }
31
32    public AbstractRowValueExpression[] getChilds() {
33       AbstractRowValueExpression[] childs = new AbstractRowValueExpression[] {
34           (AbstractRowValueExpression) (_charactervalueexpression2),
35           (AbstractRowValueExpression) (_characterfactor0)};
36       return childs;
37    }
38
39    public String JavaDoc toString() {
40       StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
41       sb.append(" ");
42       sb.append(_charactervalueexpression2);
43       sb.append(" ");
44       sb.append(_Sconcatenationoperator_2474430921);
45       sb.append(" ");
46       sb.append(_characterfactor0);
47       return sb.toString();
48    }
49
50    public Object JavaDoc clone() throws CloneNotSupportedException JavaDoc {
51       concatenation tempClass = new concatenation();
52       tempClass._characterfactor0 = (characterfactor) _characterfactor0.clone();
53       tempClass._Sconcatenationoperator_2474430921 = (
54           Sconcatenationoperator_247443092) _Sconcatenationoperator_2474430921.
55           clone();
56       tempClass._charactervalueexpression2 = (charactervalueexpression)
57           _charactervalueexpression2.clone();
58       return tempClass;
59    }
60
61    /* Done by vibha on 28-09-2004 to solve bug no 11658 .This method was commented*/
62   public ParameterInfo[] getParameterInfo() throws DException {
63     if (!checkForVariableColumn())
64       return getThisParameterInfo();
65     ParameterInfo[] parameterInfo1 = _charactervalueexpression2.getParameterInfo();
66     ParameterInfo[] parameterInfo2 = _characterfactor0.getParameterInfo();
67     ParameterInfo[] parameterInfo = new ParameterInfo[parameterInfo1.length +
68         parameterInfo2.length];
69
70     int index = 0;
71     for (; index < parameterInfo1.length; ++index)
72       parameterInfo[index] = parameterInfo1[index];
73     for (int i = 0; i < parameterInfo2.length; ++i, ++index)
74       parameterInfo[index] = parameterInfo2[i];
75     return parameterInfo;
76
77   }
78
79    protected ParameterInfo[] getThisParameterInfo() throws DException {
80       ParameterInfo parameterInfo = new ParameterInfo();
81       parameterInfo.setName(toString());
82       parameterInfo.setDataType(Datatypes.CHARACTER);
83
84 /* Commented by vibha on 28-09-2004 to solve bug no 11936 */
85       return new ParameterInfo[] {
86           parameterInfo};
87    }
88
89    public ByteComparison getByteComparison(Object JavaDoc objct) throws DException {
90       return new ByteComparison(false, new int[] {Datatypes.CHARACTER});
91    }
92
93    private boolean checkForVariableColumn() throws DException {
94          for (int i = 0; i < columnDetails.length; ++i) {
95             if (columnDetails[i].getColumn().equals("?")) {
96                return true;
97             }
98          }
99          return false;
100       }
101
102
103
104
105 }
106
Popular Tags