KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > daffodildb > server > sql99 > dcl > sqlcontrolstatement > assignmentstatement


1 package com.daffodilwoods.daffodildb.server.sql99.dcl.sqlcontrolstatement;
2
3 import java.util.*;
4
5 import com.daffodilwoods.daffodildb.server.serversystem.*;
6 import com.daffodilwoods.daffodildb.server.sql99.common.*;
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 import com.daffodilwoods.daffodildb.server.sql99.expression.expressionprimary.SQLparameterreference;
13
14 public class assignmentstatement implements SQLcontrolstatement {
15    public assignmentsource _assignmentsource0;
16    public Sequalsoperator182046693 _Sequalsoperator1820466931;
17    public assignmenttarget _assignmenttarget2;
18    public SRESERVEDWORD1206543922 _SRESERVEDWORD12065439223;
19
20    private _Reference[] sourceRefs;
21    private _Reference targetRef;
22    private _ServerSession serverSession;
23
24    public Object JavaDoc run(Object JavaDoc object) throws DException {
25       return this;
26    }
27
28    public void setOuterControlStatement(SQLcontrolstatement outerst) {
29    }
30
31    public Object JavaDoc[] getParameters(Object JavaDoc object) throws DException {
32       ArrayList list = new ArrayList();
33       Object JavaDoc[] par1 = _assignmentsource0.getParameters(object);
34       if (par1 != null) {
35          list.addAll(Arrays.asList(par1));
36       }
37       Object JavaDoc[] par2 = _assignmenttarget2.getParameters(object);
38       if (par2 != null) {
39          list.addAll(Arrays.asList(par2));
40       }
41       return list.toArray();
42    }
43
44    /* public _Reference[] checkSemantic(_ServerSession object) throws DException {
45          serverSession = object;
46          TreeSet set = new TreeSet(ReferenceComparator.comparator);
47          _Reference[] refs = _assignmentsource0.checkSemantic(object);
48          sourceRefs = _assignmentsource0.getReferences(dummyTableDetail);
49          sourceRefs = GeneralPurposeStaticClass.getJointReferences(sourceRefs, refs);
50          if (sourceRefs != null) {
51             for (int i = 0; i < sourceRefs.length; i++) {
52                if (sourceRefs[i].getReferenceType() != SimpleConstants.SUBQUERY)
53                   set.addAll(Arrays.asList(sourceRefs));
54             }
55          }
56          _Reference[] par2 = _assignmenttarget2.getReferences(dummyTableDetail);
57          targetRef = par2[0];
58          set.add(targetRef);
59          return (_Reference[]) set.toArray(new _Reference[0]);
60       }*/

61
62    public Object JavaDoc execute(_VariableValues variableValues) throws DException {
63       Object JavaDoc value = SearchConditionUtility.executeExpression(_assignmentsource0,
64           sourceRefs, variableValues, serverSession);
65
66       Object JavaDoc[][] afterExecuteRefValuePair = variableValues.getReferenceAndValuePair();
67       if (afterExecuteRefValuePair != null) {
68          for (int i = 0; i < afterExecuteRefValuePair.length; i++) {
69             _Reference vvRef = (_Reference) afterExecuteRefValuePair[i][0];
70             if (vvRef.getQualifiedColumnName().equalsIgnoreCase(targetRef.getQualifiedColumnName())) {
71                value = FieldUtility.convertToAppropriateType( (FieldBase) value, vvRef.getDatatype(), vvRef.getSize(), null);
72                variableValues.setConditionVariableValue(
73                    new _Reference[] {vvRef}
74                    , new Object JavaDoc[] {value}
75                    , 1);
76             }
77          }
78       }
79
80       return value;
81    }
82
83    public Object JavaDoc execute(Object JavaDoc[] values) throws DException {
84       throw new UnsupportedOperationException JavaDoc();
85    }
86
87    public Object JavaDoc executeForFresh(Object JavaDoc[] values) throws DException {
88       throw new UnsupportedOperationException JavaDoc();
89    }
90
91    public ParameterInfo[] getParameterInfo() throws DException {
92       throw new UnsupportedOperationException JavaDoc();
93    }
94
95    public String JavaDoc toString() {
96       StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
97       sb.append(" ");
98       sb.append(_SRESERVEDWORD12065439223);
99       sb.append(" ");
100       sb.append(_assignmenttarget2);
101       sb.append(" ");
102       sb.append(_Sequalsoperator1820466931);
103       sb.append(" ");
104       sb.append(_assignmentsource0);
105       return sb.toString().trim();
106    }
107
108    public Object JavaDoc clone() throws CloneNotSupportedException JavaDoc {
109       return this;
110    }
111
112    /* public ColumnDetails[] getColumnDetails() throws DException {
113          ColumnDetails[] cd = _assignmentsource0.getColumnDetails();
114          ArrayList list = new ArrayList();
115          GeneralPurposeStaticClass.addRecursively(cd, list);
116          return (ColumnDetails[]) list.toArray(new ColumnDetails[0]);
117       }*/

118    public ColumnDetails[] getColumnDetails() throws DException {
119       ColumnDetails[] sourceCD = _assignmentsource0.getColumnDetails();
120       ColumnDetails[] targetCD = ( (SQLparameterreference) _assignmenttarget2).getColumnDetails();
121       ColumnDetails[] cd = GeneralPurposeStaticClass.getJointColumnDetails(sourceCD, targetCD);
122       ArrayList list = new ArrayList();
123       GeneralPurposeStaticClass.addRecursively(cd, list);
124       return (ColumnDetails[]) list.toArray(new ColumnDetails[0]);
125    }
126
127    public _Reference[] checkSemantic(_ServerSession object) throws DException {
128       serverSession = object;
129       ArrayList set = new ArrayList();
130       _assignmentsource0.checkSemantic(object);
131       sourceRefs = _assignmentsource0.getReferences(dummyTableDetail);
132       _Reference[] par2 = _assignmenttarget2.getReferences(dummyTableDetail);
133       if (sourceRefs != null) {
134          for (int i = 0; i < sourceRefs.length; i++) {
135             if (sourceRefs[i].getReferenceType() != SimpleConstants.SUBQUERY)
136                set.add(sourceRefs[i]);
137          }
138       }
139       targetRef = par2[0];
140       if (targetRef instanceof ColumnDetails)
141          ( (ColumnDetails) targetRef).setAssignmentTarget(true);
142       set.add(targetRef);
143       return (_Reference[]) set.toArray(new _Reference[0]);
144    }
145
146    public void getTableIncluded(ArrayList aList) throws DException {
147    }
148
149    public void getColumnsIncluded(ArrayList aList) throws DException {
150    }
151
152    private void checkStatementValidity(_Reference targetRefs, assignmentsource assignmentsource, _ServerSession object) throws DException {
153       try {
154          Check.checkForDatatype(targetRefs.getDatatype(), assignmentsource.getByteComparison(object).getDataTypes()[0]);
155       } catch (DException ex) {
156          throw new DException("DSE8214", null);
157       }
158    }
159 }
160
Popular Tags