1 package com.daffodilwoods.daffodildb.server.sql99.utils; 2 3 import com.daffodilwoods.daffodildb.server.serversystem.*; 4 import com.daffodilwoods.daffodildb.server.sql99.dql.iterator.*; 5 import com.daffodilwoods.daffodildb.utils.field.*; 6 import com.daffodilwoods.database.resource.*; 7 8 public class SubQueryVariableValues extends VariableValues implements _VariableValues { 9 10 Object [][] subQueryIteratorMapping; 11 12 public SubQueryVariableValues(_Reference[] references, Object [][] subQueryIteratorMapping0, _ServerSession serverSession) { 13 super(references, serverSession); 14 subQueryIteratorMapping = subQueryIteratorMapping0; 15 } 16 17 public Object getColumnValues(_Reference reference) throws DException { 18 for (int j = 0, length = subQueryIteratorMapping.length; j < length; j++) { 19 if (reference.equals(subQueryIteratorMapping[j][0])) { 20 return subQueryIteratorMapping[j][1]; 21 } 22 } 23 return super.getColumnValues(reference); 24 } 25 26 public Object getColumnValues(_Reference[] references) throws DException { 27 int length = references.length; 28 Object [] returningValues = new Object [length]; 29 for (int i = 0; i < length; i++) { 30 returningValues[i] = getColumnValues(references[i]); 31 } 32 return returningValues; 33 } 34 35 public FieldBase field(_Reference reference) throws com.daffodilwoods.database.resource.DException { 36 return (FieldBase) getColumnValues(reference); 37 } 38 39 public void setConditionVariableValue(_Reference[] references, Object [] values, int priority) throws DException { 40 super.setConditionVariableValue(references, values, priority); 41 int length = subQueryIteratorMapping.length; 42 for (int i = 0; i < length; i++) { 43 ( (_Iterator) subQueryIteratorMapping[i][1]).setConditionVariableValue(references, values, priority); 44 } 45 } 46 47 public String toString() { 48 String str = " SUBQUERYVARIABLEVALUES "; 49 if (mapping != null && mapping.length != 0) { 50 str += "\nMAPPING"; 51 for (int i = 0; i < mapping.length; i++) { 52 str += "[" + mapping[i][0] + " , "; } 54 } 55 if (underlyingReferenceMapping != null && underlyingReferenceMapping.length != 0) { 56 str += "\nUNDERLYINGREFERENCEMAPPING"; 57 for (int i = 0; i < underlyingReferenceMapping.length; i++) { 58 str += "[" + underlyingReferenceMapping[i][0] + "]" + " , "; } 60 } 61 if (subQueryIteratorMapping != null && subQueryIteratorMapping.length != 0) { 62 str += "\nSUBQUERYITERATORMAPPING"; 63 for (int i = 0; i < subQueryIteratorMapping.length; i++) { 64 str += "[" + subQueryIteratorMapping[i][0] + "]" + " , "; } 66 } 67 return str; 68 } 69 70 public void releaseResource() throws DException { 71 super.releaseResource(); 72 if (subQueryIteratorMapping != null && subQueryIteratorMapping.length != 0) { 73 for (int i = 0; i < subQueryIteratorMapping.length; i++) { 74 ((_Iterator) subQueryIteratorMapping[i][1]).releaseResource(); 75 } 76 } 77 } 78 79 } 80 | Popular Tags |