1 package com.daffodilwoods.daffodildb.server.serversystem.datatriggersystem; 2 3 import com.daffodilwoods.daffodildb.server.datadictionarysystem.*; 4 import com.daffodilwoods.daffodildb.server.serversystem.dmlvalidation.constraintsystem.*; 5 import com.daffodilwoods.daffodildb.server.serversystem.dmlvalidation.triggersystem.*; 6 import com.daffodilwoods.daffodildb.utils.comparator.*; 7 import com.daffodilwoods.database.general.*; 8 import com.daffodilwoods.database.resource.*; 9 import java.util.TreeMap ; 10 11 import java.util.TreeMap ; 12 13 public class DataTriggerDatabase implements _DataTriggerDatabase { 14 private _TriggerDatabase triggerDatabase; 15 private _ConstraintDatabase constraintDatabaseImm; 16 private _ConstraintDatabase constraintDatabaseDeff; 17 private String databaseURL; 18 private TreeMap dataTriggerTableList = new TreeMap (String.CASE_INSENSITIVE_ORDER); 19 private _DataDictionary dataDictionary; 20 21 public DataTriggerDatabase(_ConstraintDatabase constraintDatabaseImme, _ConstraintDatabase constraintDatabaseDeffe, _TriggerDatabase triggerDatabase, _DataDictionary dataDictionary, String databaseURL) throws DException { 22 this.triggerDatabase = triggerDatabase; 23 constraintDatabaseDeff = constraintDatabaseDeffe; 24 constraintDatabaseImm = constraintDatabaseImme; 25 this.dataDictionary = dataDictionary; 26 this.databaseURL = databaseURL; 27 } 28 29 public synchronized _DataTriggerTable getDataTriggerTable(QualifiedIdentifier tableName) throws DException { 30 _DataTriggerTable dataTriggerTable = (_DataTriggerTable) dataTriggerTableList.get(tableName.getIdentifier()); 31 if (dataTriggerTable != null) 32 return dataTriggerTable; 33 _TriggerTable triggerTable = triggerDatabase.getTriggerTable(tableName); 34 _ConstraintTable constraintTableDeff = constraintDatabaseDeff.getConstraintTable(tableName); 35 _ConstraintTable constraintTableImm = constraintDatabaseImm.getConstraintTable(tableName); 36 _DefaultValueGetter defaultValueGetter = dataDictionary.getDefaultValueGetter(tableName); 37 dataTriggerTable = new DataTriggerTable(triggerTable, constraintTableImm, constraintTableDeff, defaultValueGetter, tableName); 38 dataTriggerTableList.put(tableName.getIdentifier(), dataTriggerTable); 39 return dataTriggerTable; 40 41 } 42 43 public synchronized _DataTriggerTable getDataViewTriggerTable(QualifiedIdentifier tableName) throws DException { 44 _DataTriggerTable dataTriggerTable = (_DataTriggerTable) dataTriggerTableList.get(tableName.getIdentifier()); 45 if (dataTriggerTable != null) 46 return dataTriggerTable; 47 _TriggerTable triggerTable = triggerDatabase.getTriggerTable(tableName); 48 dataTriggerTable = new DataViewTriggerTable(triggerTable, tableName); 49 dataTriggerTableList.put(tableName.getIdentifier(), dataTriggerTable); 50 return dataTriggerTable; 51 } 52 53 public void removeTable(QualifiedIdentifier tableName) throws DException { 54 dataTriggerTableList.remove(tableName.getIdentifier()); 55 triggerDatabase.removeTable(tableName); 56 constraintDatabaseImm.removeTable(tableName); 57 constraintDatabaseDeff.removeTable(tableName); 58 } 59 60 public void refreshConstraint(QualifiedIdentifier tableName) throws DException { 61 dataTriggerTableList.remove(tableName.getIdentifier()); 62 triggerDatabase.removeTable(tableName); 63 constraintDatabaseImm.removeTable(tableName); 64 constraintDatabaseDeff.removeTable(tableName); 65 } 66 } 67 | Popular Tags |