KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > daffodildb > server > sql99 > ddl > schemamanipulation > adddomainconstraintdefinition


1 package com.daffodilwoods.daffodildb.server.sql99.ddl.schemamanipulation;
2
3 import java.util.*;
4
5 import com.daffodilwoods.daffodildb.server.datadictionarysystem.*;
6 import com.daffodilwoods.daffodildb.server.serversystem.*;
7 import com.daffodilwoods.daffodildb.server.sql99.ddl.descriptors.*;
8 import com.daffodilwoods.daffodildb.server.sql99.ddl.schemadefinition.*;
9 import com.daffodilwoods.daffodildb.server.sql99.ddl.utility.*;
10 import com.daffodilwoods.daffodildb.server.sql99.dql.iterator.*;
11 import com.daffodilwoods.daffodildb.server.sql99.token.*;
12 import com.daffodilwoods.daffodildb.utils.*;
13 import com.daffodilwoods.database.general.*;
14 import com.daffodilwoods.database.resource.*;
15
16 public class adddomainconstraintdefinition implements alterdomainaction {
17    public domainconstraint _domainconstraint0;
18    public SRESERVEDWORD1206543922 _SRESERVEDWORD12065439221;
19
20    private DomainDescriptor domainDescriptor;
21    private ArrayList tableList;
22    public void setDomainDescriptor(_Descriptor domainDes) throws
23        DException {
24       domainDescriptor = (DomainDescriptor) domainDes;
25    }
26
27    public Object JavaDoc run(Object JavaDoc object) throws DException {
28       _ServerSession currentSession = (_ServerSession) object;
29       _ServerSession systemSession = currentSession.getSystemServerSession();
30       _domainconstraint0.setDomainDescriptor(domainDescriptor);
31       _domainconstraint0.run(object);
32       checkConstraintValidity(currentSession);
33       refreshServerSystem(systemSession, domainDescriptor);
34       return null;
35    }
36
37    private void refreshServerSystem(_ServerSession systemSession,
38                                     DomainDescriptor domainDescriptor) throws
39        DException {
40       DataDictionary dd = (DataDictionary) systemSession.getDataDictionary();
41       dd.removeCheckConstraintForDomain(domainDescriptor.getQualifiedIdentifier());
42       if (tableList != null) {
43          for (int i = 0, size = tableList.size(); i < size; i++) {
44             QualifiedIdentifier tableName = (QualifiedIdentifier) tableList.get(i);
45             systemSession.deleteTable(tableName, false);
46          }
47       }
48    }
49
50    private void checkConstraintValidity(_ServerSession serverSession) throws
51        DException {
52       DomainConstraintDescriptor domainConstraintDescriptor = _domainconstraint0.getDomainConstraintDescriptor();
53       String JavaDoc domainCheckQuery;
54       if (tableList != null) {
55          domainCheckQuery = domainConstraintDescriptor.checkConsDes.check_clause;
56          ArrayList columnsDesList = domainDescriptor.getColumnDescriptorsForDomain(serverSession);
57          if (columnsDesList != null && columnsDesList.size() > 0) {
58             for (int i = 0; i < columnsDesList.size(); i++) {
59                ColumnDescriptor colDes = (ColumnDescriptor) columnsDesList.get(i);
60                QualifiedIdentifier tableName = colDes.getQualifiedTableName();
61                if (!tableList.contains(tableName))
62                   tableList.add(tableName);
63                StringBuffer JavaDoc checkQuery = new StringBuffer JavaDoc();
64                checkQuery.append("select * from ")
65                    .append(QuotedUtility.getUserIdentifier(colDes.table_catalog))
66                    .append(".").append(QuotedUtility.getUserIdentifier(colDes.
67                    table_schema))
68                    .append(".").append(QuotedUtility.getUserIdentifier(colDes.
69                    table_name))
70                    .append(" where not ( ")
71                    .append(GeneralUtility.getReplacedCheckClause(colDes.column_name, domainCheckQuery))
72                    .append(" ) ");
73                _Iterator iter = SqlSchemaConstants.getIteratorOnCurrent(serverSession,
74                    checkQuery.toString(), (Object JavaDoc[])null);
75                if (iter.first()) {
76                   CheckConstraintDescriptor ccd = (CheckConstraintDescriptor) domainConstraintDescriptor.checkConsDes;
77                   throw new DException("DSE7086", new Object JavaDoc[] {ccd.getQualifiedIdentifier().getIdentifier(), domainDescriptor.getQualifiedIdentifier().getIdentifier()});
78                }
79             }
80          }
81       }
82    }
83
84    public Object JavaDoc clone() throws CloneNotSupportedException JavaDoc {
85       return this;
86    }
87
88    public String JavaDoc toString() {
89       StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
90       sb.append(" ");
91       sb.append(_SRESERVEDWORD12065439221);
92       sb.append(" ");
93       sb.append(_domainconstraint0);
94       return sb.toString();
95    }
96
97 }
98
Popular Tags