1 package com.daffodilwoods.daffodildb.server.serversystem.dmlvalidation.triggersystem; 2 3 import com.daffodilwoods.daffodildb.server.datasystem.utility.*; 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 import com.daffodilwoods.daffodildb.server.serversystem._ServerSession; 9 public class TriggerVariableValues extends AbstractVariableValues implements _VariableValues { 10 11 String oldAlias; 12 String newAlias; 13 RecordVersion recordVersion; 14 _ServerSession serverSession; 15 16 public TriggerVariableValues( RecordVersion recVersion ,String oAlias , String nAlias,_ServerSession serverSession0 )throws DException { 17 recordVersion = recVersion; 18 oldAlias = oAlias; 19 newAlias = nAlias; 20 serverSession =serverSession0; 21 } 22 23 public Object getColumnValues(_Reference[] ref) throws DException { 24 Object [] val = null; 25 if( ref != null ){ 26 int len = ref.length; 27 val = new Object [len]; 28 for( int i=0; i<len; i++ ) 29 val[i] = getColumnValues( ref[i] ); 30 } 31 return val; 32 } 33 34 public Object getColumnValues(_Reference ref) throws DException { 35 Object val = null; 36 if(ref!=null){ 37 String tableName = null; 38 try{ 39 tableName = ref.getTriggerTableAlias(); 40 } catch(IndexOutOfBoundsException de ) { 41 throw new DException("DSE1303",new Object []{ref.getColumn(), tableName} ); 42 } 43 44 if(tableName== null || tableName.equalsIgnoreCase("new")|| tableName.equalsIgnoreCase(newAlias)) 45 val = recordVersion.getCurrentRecord().getObject( ref.getColumn() ); 46 else if(tableName.equalsIgnoreCase("old")|| tableName.equalsIgnoreCase(oldAlias)) 47 val = recordVersion.getPreviousRecord().getObject( ref.getColumn() ); 48 } 49 return val; 50 } 51 52 public FieldBase field(_Reference ref) throws DException { 53 Object val = null; 54 if(ref!=null){ 55 String tableName = null; 56 try{ 57 tableName = ref.getTriggerTableAlias(); 58 } catch(IndexOutOfBoundsException de ) { 59 val = recordVersion.getCurrentRecord().getObject( ref.getColumn() ); 60 } 61 62 if(tableName== null || tableName.equalsIgnoreCase("new")|| tableName.equalsIgnoreCase(newAlias)) 63 val = recordVersion.getCurrentRecord().getObject( ref.getColumn() ); 64 else if(tableName.equalsIgnoreCase("old")|| tableName.equalsIgnoreCase(oldAlias)) 65 val = recordVersion.getPreviousRecord().getObject( ref.getColumn() ); 66 } 67 return (FieldBase)val; 68 } 69 70 71 public void setIterator(_Iterator p0) throws DException { 72 } 73 74 public void setConditionVariableValue(_Reference[] p0, Object [] p1, int p2) throws DException { 75 } 76 77 public _ServerSession getServerSession() throws DException { 78 return serverSession; 79 } 80 81 } 82 | Popular Tags |