KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > daffodildb > server > serversystem > datatriggersystem > DataTriggerDatabase


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 JavaDoc;
10
11 import java.util.TreeMap JavaDoc;
12
13 public class DataTriggerDatabase implements _DataTriggerDatabase {
14    private _TriggerDatabase triggerDatabase;
15    private _ConstraintDatabase constraintDatabaseImm;
16    private _ConstraintDatabase constraintDatabaseDeff;
17    private String JavaDoc databaseURL;
18    private TreeMap JavaDoc dataTriggerTableList = new TreeMap JavaDoc(String.CASE_INSENSITIVE_ORDER);
19    private _DataDictionary dataDictionary;
20
21    public DataTriggerDatabase(_ConstraintDatabase constraintDatabaseImme, _ConstraintDatabase constraintDatabaseDeffe, _TriggerDatabase triggerDatabase, _DataDictionary dataDictionary, String JavaDoc 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