1 package com.daffodilwoods.daffodildb.server.sql99.ddl.schemamanipulation; 2 3 import com.daffodilwoods.daffodildb.server.sql99.ddl.schemadefinition. 4 defaultclause; 5 import com.daffodilwoods.daffodildb.server.sql99.token.*; 6 import com.daffodilwoods.database.resource.*; 7 import com.daffodilwoods.daffodildb.server.sql99.ddl.descriptors. 8 DomainDescriptor; 9 import com.daffodilwoods.daffodildb.server.sql99.ddl.descriptors._Descriptor; 10 import com.daffodilwoods.daffodildb.server.sql99.utils._Reference; 11 import com.daffodilwoods.daffodildb.server.serversystem._ServerSession; 12 import com.daffodilwoods.daffodildb.server.sql99.ddl.descriptors.ColumnDescriptor; 13 import com.daffodilwoods.daffodildb.server.sql99.ddl.utility.QueryMaker; 14 import java.util.ArrayList ; 15 import com.daffodilwoods.daffodildb.server.sql99.dql.iterator._Iterator; 16 import com.daffodilwoods.daffodildb.server.sql99.ddl.descriptors.SqlSchemaConstants; 17 import com.daffodilwoods.daffodildb.server.sql99.dql.iterator._SelectQueryIterator; 18 import com.daffodilwoods.daffodildb.server.sql99.ddl.descriptors.SystemTablesFields; 19 import com.daffodilwoods.database.general.QualifiedIdentifier; 20 21 public class setdomaindefaultclause 22 implements alterdomainaction { 23 public defaultclause _defaultclause0; 24 public SRESERVEDWORD1206543922 _SRESERVEDWORD12065439221; 25 26 27 28 29 private DomainDescriptor domainDescriptor; 30 private ArrayList tableList; 31 public void setDomainDescriptor(_Descriptor domainDes) throws 32 DException { 33 domainDescriptor = (DomainDescriptor) domainDes; 34 } 35 36 37 public Object run(Object object) throws DException { 38 _ServerSession serverSession = (_ServerSession) object; 39 _ServerSession systemSession = serverSession.getSystemServerSession(); 40 _defaultclause0.setDataTypeDescriptor(domainDescriptor.dataTypeDescriptor); 41 String defaultExpression = (String )_defaultclause0.run(object); 42 if(!(defaultExpression.equalsIgnoreCase(domainDescriptor.default_clause ))){ 43 domainDescriptor.default_clause = defaultExpression; 44 updateDomainDefault(serverSession); 45 updateColumnsDefault(serverSession,defaultExpression); 46 } 47 refreshServerSystem(systemSession, domainDescriptor); 48 return null; 49 } 50 51 private void refreshServerSystem(_ServerSession systemSession, 52 DomainDescriptor domainDescriptor) throws 53 DException { 54 if(tableList!=null) 55 { 56 for (int i=0, size=tableList.size();i<size;i++) 57 { 58 QualifiedIdentifier tableName=(QualifiedIdentifier)tableList.get(i); 59 systemSession.deleteTable(tableName, false); 60 } 61 } 62 } 63 64 private void updateDomainDefault(_ServerSession currentSession) throws DException{ 65 domainDescriptor.update(currentSession, 66 new int[] { 67 SystemTablesFields.domain_default_clause} ,new Object [] {null}); 68 } 69 70 private void updateColumnsDefault(_ServerSession currentSession,String defaultValue) throws DException{ 71 ArrayList columnDescriptors = domainDescriptor.getColumnDescriptorsForDomain(currentSession); 72 if (columnDescriptors != null) { 73 int size = columnDescriptors.size(); 74 tableList = new ArrayList (size); 75 for (int i = 0; i < size; i++) { 76 ColumnDescriptor columnDescriptor = (ColumnDescriptor) columnDescriptors.get(i); 77 QualifiedIdentifier tableName = columnDescriptor.getQualifiedTableName(); 78 if(!tableList.contains(tableName)) 79 tableList.add(tableName); 80 columnDescriptor.update(currentSession, 81 new int[] { 82 SystemTablesFields.columns_column_default} ,new Object [] {defaultValue}); 83 } 84 } 85 } 86 87 88 public Object clone() throws CloneNotSupportedException { 89 return this; 90 } 91 public String toString() 92 { 93 StringBuffer sb = new StringBuffer (); 94 sb.append(" "); 95 sb.append(_SRESERVEDWORD12065439221); 96 sb.append(" "); 97 sb.append(_defaultclause0); 98 return sb.toString(); 99 } 100 } 101 | Popular Tags |