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 run(Object object) throws DException { 25 return this; 26 } 27 28 public void setOuterControlStatement(SQLcontrolstatement outerst) { 29 } 30 31 public Object [] getParameters(Object object) throws DException { 32 ArrayList list = new ArrayList(); 33 Object [] par1 = _assignmentsource0.getParameters(object); 34 if (par1 != null) { 35 list.addAll(Arrays.asList(par1)); 36 } 37 Object [] par2 = _assignmenttarget2.getParameters(object); 38 if (par2 != null) { 39 list.addAll(Arrays.asList(par2)); 40 } 41 return list.toArray(); 42 } 43 44 61 62 public Object execute(_VariableValues variableValues) throws DException { 63 Object value = SearchConditionUtility.executeExpression(_assignmentsource0, 64 sourceRefs, variableValues, serverSession); 65 66 Object [][] 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 [] {value} 75 , 1); 76 } 77 } 78 } 79 80 return value; 81 } 82 83 public Object execute(Object [] values) throws DException { 84 throw new UnsupportedOperationException (); 85 } 86 87 public Object executeForFresh(Object [] values) throws DException { 88 throw new UnsupportedOperationException (); 89 } 90 91 public ParameterInfo[] getParameterInfo() throws DException { 92 throw new UnsupportedOperationException (); 93 } 94 95 public String toString() { 96 StringBuffer sb = new StringBuffer (); 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 clone() throws CloneNotSupportedException { 109 return this; 110 } 111 112 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 |