Description of Column.
Inheritance: DatabaseItem, DatabaseFramework.Column
 public DB2ColumnTransformer(Table table, Column involvedColumn,DB2TableTransformer dependingTransformer,NameTranslator nameTranslator)
     : this(table,nameTranslator)
 {
     this._involvedColumn = involvedColumn;
     this._dependingTransformer = dependingTransformer;
     _column = new Column((DB_EA.Table)table, involvedColumn.name);
     _column.type = involvedColumn.type;
     _column.logicalAttribute = ((DB_EA.Column)involvedColumn).logicalAttribute;
     if (dependingTransformer.associationEnd != null)
     {
         if (dependingTransformer.associationEnd.lower > 0 )
         {
             _column.isNotNullable = true;
         }
     }
 }
 public EDDColumn(DB_EA.Column wrappedColumn, EDDTable table, GlossaryManagerSettings settings)
 {
     this._wrappedColumn = wrappedColumn;
     this.table          = table;
     this.settings       = settings;
 }
 public override DB.DatabaseItem createAsNewItem(DB.DatabaseItem owner, bool save = true)
 {
     Table newTable = owner as Table;
     Database existingDatabase = owner as Database;
     if (newTable == null)
     {
         //look for corresponding table in existingDatabase
         newTable = (Table)existingDatabase.tables.FirstOrDefault(x => x.name == this.ownerTable.name);
     }
     if (newTable != null)
     {
         var newColumn = new Column(newTable,this.name);
         newColumn.isNotNullable = _isNotNullable;
         newColumn.type = _type;
         newColumn.logicalAttribute = _logicalAttribute;
         newColumn.isOverridden = isOverridden;
         newColumn.isRenamed = isRenamed;
         newColumn.position = _position;
         newColumn.derivedFromItem = this;
         if (save) newColumn.save();
         return newColumn;
     }
     return null;
 }
 public DB2ColumnTransformer(Table table, Column column, UTF_EA.Attribute attribute,NameTranslator nameTranslator)
     : this(table,nameTranslator)
 {
     this.logicalProperty = attribute;
     this.column = column;
 }
 /// <summary>
 /// gets te columns that corresponds to the given column.
 /// If the properties are exactly the same then this column is returned. 
 /// If not the columns that is based on the same logical attribute is returned.
 /// </summary>
 /// <param name="newColumn">the column to compare to</param>
 /// <returns>the corresponding column</returns>
 public Column getCorrespondingColumn(Column newColumn, List<Column> alreadyMappedColumns)
 {
     var correspondingColumn = this.columns.FirstOrDefault( x => x.name + x.properties == newColumn.name + newColumn.properties
                                                            && !alreadyMappedColumns.Contains(x));
     if (correspondingColumn == null) correspondingColumn =
                                     this._columns.FirstOrDefault( x => x.logicalAttribute != null
                                                 && x.logicalAttribute.Equals(newColumn.logicalAttribute)
                                                 && !alreadyMappedColumns.Contains(x));
     if (correspondingColumn == null && alreadyMappedColumns != null && alreadyMappedColumns.Count > 0)
         correspondingColumn = getCorrespondingColumn(newColumn, new List<Column>());//try again without the list of already mapped columns
     return correspondingColumn as Column;
 }