1 package com.daffodilwoods.daffodildb.server.sql99.ddl.schemadefinition; 2 3 import java.util.*; 4 5 import com.daffodilwoods.daffodildb.server.serversystem.*; 6 import com.daffodilwoods.daffodildb.server.sql99.ddl.descriptors.*; 7 import com.daffodilwoods.daffodildb.server.sql99.token.*; 8 import com.daffodilwoods.database.resource.*; 9 10 public class referentialconstraintdefinition implements tableconstraint { 11 public referencesspecification _referencesspecification0; 12 public Srightparen_1874859514 _Srightparen_18748595141; 13 public referencingcolumns _referencingcolumns2; 14 public Sleftparen653880241 _Sleftparen6538802413; 15 public SRESERVEDWORD1206543922 _SRESERVEDWORD12065439224; 16 public SRESERVEDWORD1206543922 _SRESERVEDWORD12065439225; 17 18 private TableConstraintDescriptor tableConsDes; 19 20 public void setTableConstraintDescriptor(_Descriptor 21 tableConsDes0) throws 22 DException { 23 tableConsDes = (TableConstraintDescriptor) 24 tableConsDes0; 25 } 26 27 33 public Object run(Object object) throws DException { 34 _ServerSession currentSession = (_ServerSession) object; 35 tableConsDes.constraint_type = SqlSchemaConstants.ForeignKey; 36 if (tableConsDes.constraint_name == null) { 37 tableConsDes.setGeneratedConstraintName(currentSession, "FKC_"); 38 } 39 ReferentialConstraintDescriptor referentialConsDes = new ReferentialConstraintDescriptor(); 40 referentialConsDes.tableConstraintDescriptor = tableConsDes; 41 referentialConsDes.constraint_catalog = tableConsDes.constraint_catalog; 42 referentialConsDes.constraint_schema = tableConsDes.constraint_schema; 43 referentialConsDes.constraint_name = tableConsDes.constraint_name; 44 45 tableConsDes.setConstraintDescriptor(referentialConsDes); 46 storeConstraintColumns(); 47 _referencesspecification0.setConstraintDescriptor(referentialConsDes); 48 _referencesspecification0.run(object); 49 return null; 50 } 51 52 private void storeConstraintColumns() throws DException { 53 Object [] columns = (Object []) _referencingcolumns2.run(null); 54 ArrayList constraintColumnDescriptors = getKeyColumnUsageDescriptors( 55 columns); 56 tableConsDes.setConstraintColumnDescriptors( 57 constraintColumnDescriptors); 58 } 59 60 public ArrayList getKeyColumnUsageDescriptors(Object [] columns) throws DException { 61 ArrayList constraintColumnDescriptors = new ArrayList(columns.length); 62 for (int i = 0; i < columns.length; i++) { 63 String columnName = (String ) columns[i]; 64 KeyColumnUsageDescriptor keyColumnUsageDes = new 65 KeyColumnUsageDescriptor(); 66 keyColumnUsageDes.column_name = columnName; 67 keyColumnUsageDes.constraint_catalog = tableConsDes.constraint_catalog; 68 keyColumnUsageDes.constraint_schema = tableConsDes.constraint_schema; 69 keyColumnUsageDes.constraint_name = tableConsDes.constraint_name; 70 keyColumnUsageDes.table_catalog = tableConsDes.table_catalog; 71 keyColumnUsageDes.table_schema = tableConsDes.table_schema; 72 keyColumnUsageDes.table_name = tableConsDes.table_name; 73 constraintColumnDescriptors.add(keyColumnUsageDes); 74 78 } 79 return constraintColumnDescriptors; 80 } 81 82 public Object clone() throws CloneNotSupportedException { 83 return this; 84 } 85 86 public String toString() { 87 StringBuffer sb = new StringBuffer (); 88 sb.append(" "); 89 sb.append(_SRESERVEDWORD12065439225); 90 sb.append(" "); 91 sb.append(_SRESERVEDWORD12065439224); 92 sb.append(" "); 93 sb.append(_Sleftparen6538802413); 94 sb.append(" "); 95 sb.append(_referencingcolumns2); 96 sb.append(" "); 97 sb.append(_Srightparen_18748595141); 98 sb.append(" "); 99 sb.append(_referencesspecification0); 100 return sb.toString(); 101 } 102 } 103 | Popular Tags |