1 package com.daffodilwoods.daffodildb.server.sql99.dcl.sqlcontrolstatement; 2 3 import com.daffodilwoods.daffodildb.server.serversystem.*; 4 import com.daffodilwoods.daffodildb.server.sql99.dql.iterator.*; 5 import com.daffodilwoods.daffodildb.server.sql99.utils.*; 6 import com.daffodilwoods.daffodildb.utils.field.*; 7 import com.daffodilwoods.database.resource.*; 8 9 public class ForLoopVariableValues implements _VariableValues { 10 private _Iterator iter; 11 private _Reference[] forAliasRefernces; 12 private _VariableValues variableValues; 13 14 public ForLoopVariableValues(_Iterator iter0, _Reference[] forAliasRefernces0, _VariableValues variableValues0) { 15 iter = iter0; 16 forAliasRefernces = forAliasRefernces0; 17 variableValues = variableValues0; 18 } 19 20 25 public Object getColumnValues(_Reference[] reference) throws DException { 26 Object [] obj = new Object [reference.length]; 27 for (int i = 0; i < reference.length; i++) { 28 obj[i] = getColumnValues(reference[i]); 29 } 30 return obj; 31 } 32 33 38 public Object getColumnValues(_Reference reference) throws DException { 39 for (int i = 0; i < forAliasRefernces.length; i++) { 40 if (forAliasRefernces[i] == reference) 41 return iter.getColumnValues(forAliasRefernces[i]); 42 } 43 return variableValues.getColumnValues(reference); 44 } 45 46 51 public FieldBase field(_Reference reference) throws DException { 52 for (int i = 0; i < forAliasRefernces.length; i++) { 53 if (forAliasRefernces[i] == reference) 54 return iter.field(forAliasRefernces[i]); 55 } 56 return variableValues.field(reference); 57 } 58 59 65 public void setConditionVariableValue(_Reference[] references, Object [] values, int priority) throws DException { 66 variableValues.setConditionVariableValue(references, values, priority); 67 } 68 69 73 public void addReferences(_Reference[] reference) throws DException { 74 variableValues.addReferences(reference); 75 } 76 77 81 public Object [][] getReferenceAndValuePair() throws DException { 82 Object [][] obj = variableValues.getReferenceAndValuePair(); 83 Object [][] temp = new Object [obj.length + forAliasRefernces.length][2]; 84 for (int i = 0; i < obj.length; i++) { 85 temp[i][0] = obj[i][0]; 86 temp[i][1] = obj[i][1]; 87 } 88 for (int i = obj.length, j = 0; j < forAliasRefernces.length; j++, i++) { 89 temp[i][0] = forAliasRefernces[j]; 90 try { 91 temp[i][1] = getColumnValues(forAliasRefernces[j]); 92 } catch (DException ex) { 93 if (ex.getDseCode().equalsIgnoreCase("DSE2019")) 94 return obj; 95 else throw ex; 96 } 97 } 98 return temp; 99 } 100 101 105 public _ServerSession getServerSession() throws DException { 106 return variableValues.getServerSession(); 107 } 108 109 112 public void releaseResource() throws DException { 113 variableValues.releaseResource(); 114 } 115 116 120 public void setIterator(_Iterator iterator) throws DException { 121 variableValues.setIterator(iterator); 122 } 123 } 124 | Popular Tags |