Refactored change classes

git-svn-id: https://svn.apache.org/repos/asf/db/ddlutils/trunk@581500 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/java/org/apache/ddlutils/alteration/AddColumnChange.java b/src/java/org/apache/ddlutils/alteration/AddColumnChange.java
index 932ce09..ea808d7 100644
--- a/src/java/org/apache/ddlutils/alteration/AddColumnChange.java
+++ b/src/java/org/apache/ddlutils/alteration/AddColumnChange.java
@@ -111,12 +111,13 @@
     /**

      * {@inheritDoc}

      */

-    public void apply(Database database, boolean caseSensitive)

+    public void apply(Database model, boolean caseSensitive)

     {

         Column newColumn = null;

 

         try

         {

+        	// TODO: Cloning should not be necessary

             newColumn = (Column)_newColumn.clone();

         }

         catch (CloneNotSupportedException ex)

@@ -124,8 +125,9 @@
             throw new DdlUtilsException(ex);

         }

 

-        Table table = database.findTable(getChangedTable().getName(), caseSensitive);

+        Table table = findChangedTable(model, caseSensitive);

 

+        // TODO: change this !

         if ((_previousColumn != null) && (_nextColumn != null))

         {

             int idx = table.getColumnIndex(_previousColumn) + 1;

diff --git a/src/java/org/apache/ddlutils/alteration/AddForeignKeyChange.java b/src/java/org/apache/ddlutils/alteration/AddForeignKeyChange.java
index 6062aeb..394c7c1 100644
--- a/src/java/org/apache/ddlutils/alteration/AddForeignKeyChange.java
+++ b/src/java/org/apache/ddlutils/alteration/AddForeignKeyChange.java
@@ -67,6 +67,7 @@
 

         try

         {

+        	// TODO: we should not have to clone here

             newFK = (ForeignKey)_newForeignKey.clone();

             newFK.setForeignTable(database.findTable(_newForeignKey.getForeignTableName(), caseSensitive));

         }

@@ -74,7 +75,7 @@
         {

             throw new DdlUtilsException(ex);

         }

-        database.findTable(getChangedTable().getName()).addForeignKey(newFK);

+        findChangedTable(database, caseSensitive).addForeignKey(newFK);

     }

 

 }

diff --git a/src/java/org/apache/ddlutils/alteration/AddIndexChange.java b/src/java/org/apache/ddlutils/alteration/AddIndexChange.java
index fd99b04..458d491 100644
--- a/src/java/org/apache/ddlutils/alteration/AddIndexChange.java
+++ b/src/java/org/apache/ddlutils/alteration/AddIndexChange.java
@@ -59,7 +59,7 @@
     /**

      * {@inheritDoc}

      */

-    public void apply(Database database, boolean caseSensitive)

+    public void apply(Database model, boolean caseSensitive)

     {

         Index newIndex = null;

 

@@ -71,6 +71,6 @@
         {

             throw new DdlUtilsException(ex);

         }

-        database.findTable(getChangedTable().getName(), caseSensitive).addIndex(newIndex);

+        findChangedTable(model, caseSensitive).addIndex(newIndex);

     }

 }

diff --git a/src/java/org/apache/ddlutils/alteration/AddPrimaryKeyChange.java b/src/java/org/apache/ddlutils/alteration/AddPrimaryKeyChange.java
index d6714c9..cbed1d0 100644
--- a/src/java/org/apache/ddlutils/alteration/AddPrimaryKeyChange.java
+++ b/src/java/org/apache/ddlutils/alteration/AddPrimaryKeyChange.java
@@ -58,9 +58,9 @@
     /**

      * {@inheritDoc}

      */

-    public void apply(Database database, boolean caseSensitive)

+    public void apply(Database model, boolean caseSensitive)

     {

-        Table table = database.findTable(getChangedTable().getName(), caseSensitive);

+        Table table = findChangedTable(model, caseSensitive);

 

         for (int idx = 0; idx < _primaryKeyColumns.length; idx++)

         {

diff --git a/src/java/org/apache/ddlutils/alteration/AddTableChange.java b/src/java/org/apache/ddlutils/alteration/AddTableChange.java
index d4be7a9..164b279 100644
--- a/src/java/org/apache/ddlutils/alteration/AddTableChange.java
+++ b/src/java/org/apache/ddlutils/alteration/AddTableChange.java
@@ -63,6 +63,7 @@
     {

         try

         {

+        	// TODO: we shouldn't have to clone here

             database.addTable((Table)_newTable.clone());

         }

         catch (CloneNotSupportedException ex)

diff --git a/src/java/org/apache/ddlutils/alteration/ColumnAutoIncrementChange.java b/src/java/org/apache/ddlutils/alteration/ColumnAutoIncrementChange.java
index cc0b2dc..a5e35d5 100644
--- a/src/java/org/apache/ddlutils/alteration/ColumnAutoIncrementChange.java
+++ b/src/java/org/apache/ddlutils/alteration/ColumnAutoIncrementChange.java
@@ -29,11 +29,8 @@
  * 

  * @version $Revision: $

  */

-public class ColumnAutoIncrementChange extends TableChangeImplBase

+public class ColumnAutoIncrementChange extends ColumnChangeImplBase

 {

-    /** The column. */

-    private Column _column;

-

     /**

      * Creates a new change object.

      * 

@@ -42,28 +39,14 @@
      */

     public ColumnAutoIncrementChange(Table table, Column column)

     {

-        super(table);

-        _column = column;

-    }

-

-    /**

-     * Returns the column.

-     *

-     * @return The column

-     */

-    public Column getColumn()

-    {

-        return _column;

+        super(table, column);

     }

 

     /**

      * {@inheritDoc}

      */

-    public void apply(Database database, boolean caseSensitive)

+    public void apply(Database model, boolean caseSensitive)

     {

-        Table  table  = database.findTable(getChangedTable().getName(), caseSensitive);

-        Column column = table.findColumn(_column.getName(), caseSensitive);

-

-        column.setAutoIncrement(!_column.isAutoIncrement());

+        findChangedColumn(model, caseSensitive).setAutoIncrement(!getChangedColumn().isAutoIncrement());

     }

 }

diff --git a/src/java/org/apache/ddlutils/alteration/ColumnChange.java b/src/java/org/apache/ddlutils/alteration/ColumnChange.java
index 223d705..b6f46e6 100644
--- a/src/java/org/apache/ddlutils/alteration/ColumnChange.java
+++ b/src/java/org/apache/ddlutils/alteration/ColumnChange.java
@@ -20,6 +20,7 @@
  */

 

 import org.apache.ddlutils.model.Column;

+import org.apache.ddlutils.model.Database;

 

 /**

  * Represents a change to a column of a table.

@@ -34,4 +35,13 @@
      * @return The affected column

      */

     public Column getChangedColumn();

+

+    /**

+     * Finds the column object corresponding to the changed column in the given database model.

+     * 

+     * @param model         The database model

+     * @param caseSensitive Whether identifiers are case sensitive

+     * @return The column object or <code>null</code> if it could not be found

+     */

+    public Column findChangedColumn(Database model, boolean caseSensitive);

 }

diff --git a/src/java/org/apache/ddlutils/alteration/ColumnChangeImplBase.java b/src/java/org/apache/ddlutils/alteration/ColumnChangeImplBase.java
new file mode 100644
index 0000000..7156fe4
--- /dev/null
+++ b/src/java/org/apache/ddlutils/alteration/ColumnChangeImplBase.java
@@ -0,0 +1,42 @@
+package org.apache.ddlutils.alteration;
+
+import org.apache.ddlutils.model.Column;
+import org.apache.ddlutils.model.Database;
+import org.apache.ddlutils.model.Table;
+
+public abstract class ColumnChangeImplBase extends    TableChangeImplBase
+                                           implements ColumnChange
+{
+    /** The column. */
+    private Column _column;
+
+    /**
+     * Creates a new change object.
+     * 
+     * @param table  The table to remove the column from
+     * @param column The column
+     */
+    public ColumnChangeImplBase(Table table, Column column)
+    {
+        super(table);
+        _column = column;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public Column getChangedColumn()
+    {
+        return _column;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public Column findChangedColumn(Database model, boolean caseSensitive)
+    {
+    	Table table = findChangedTable(model, caseSensitive);
+
+    	return table == null ? null : table.findColumn(_column.getName(), caseSensitive);
+    }
+}
diff --git a/src/java/org/apache/ddlutils/alteration/ColumnDataTypeChange.java b/src/java/org/apache/ddlutils/alteration/ColumnDataTypeChange.java
index f3f340d..38d3e48 100644
--- a/src/java/org/apache/ddlutils/alteration/ColumnDataTypeChange.java
+++ b/src/java/org/apache/ddlutils/alteration/ColumnDataTypeChange.java
@@ -28,10 +28,8 @@
  * 

  * @version $Revision: $

  */

-public class ColumnDataTypeChange extends TableChangeImplBase implements ColumnChange

+public class ColumnDataTypeChange extends ColumnChangeImplBase

 {

-    /** The column. */

-    private Column _column;

     /** The JDBC type code of the new type. */

     private int _newTypeCode;

 

@@ -44,22 +42,11 @@
      */

     public ColumnDataTypeChange(Table table, Column column, int newTypeCode)

     {

-        super(table);

-        _column      = column;

+        super(table, column);

         _newTypeCode = newTypeCode;

     }

 

     /**

-     * Returns the column.

-     *

-     * @return The column

-     */

-    public Column getChangedColumn()

-    {

-        return _column;

-    }

-

-    /**

      * Returns the JDBC type code of the new type.

      *

      * @return The type code

@@ -72,11 +59,8 @@
     /**

      * {@inheritDoc}

      */

-    public void apply(Database database, boolean caseSensitive)

+    public void apply(Database model, boolean caseSensitive)

     {

-        Table  table  = database.findTable(getChangedTable().getName(), caseSensitive);

-        Column column = table.findColumn(_column.getName(), caseSensitive);

-

-        column.setTypeCode(_newTypeCode);

+        findChangedColumn(model, caseSensitive).setTypeCode(_newTypeCode);

     }

 }

diff --git a/src/java/org/apache/ddlutils/alteration/ColumnDefaultValueChange.java b/src/java/org/apache/ddlutils/alteration/ColumnDefaultValueChange.java
index 4b723b2..54c96b7 100644
--- a/src/java/org/apache/ddlutils/alteration/ColumnDefaultValueChange.java
+++ b/src/java/org/apache/ddlutils/alteration/ColumnDefaultValueChange.java
@@ -28,10 +28,8 @@
  * 

  * @version $Revision: $

  */

-public class ColumnDefaultValueChange extends TableChangeImplBase implements ColumnChange

+public class ColumnDefaultValueChange extends ColumnChangeImplBase

 {

-    /** The column. */

-    private Column _column;

     /** The new default value. */

     private String _newDefaultValue;

 

@@ -44,22 +42,11 @@
      */

     public ColumnDefaultValueChange(Table table, Column column, String newDefaultValue)

     {

-        super(table);

-        _column          = column;

+        super(table, column);

         _newDefaultValue = newDefaultValue;

     }

 

     /**

-     * Returns the column.

-     *

-     * @return The column

-     */

-    public Column getChangedColumn()

-    {

-        return _column;

-    }

-

-    /**

      * Returns the new default value.

      *

      * @return The new default value

@@ -72,11 +59,8 @@
     /**

      * {@inheritDoc}

      */

-    public void apply(Database database, boolean caseSensitive)

+    public void apply(Database model, boolean caseSensitive)

     {

-        Table  table  = database.findTable(getChangedTable().getName(), caseSensitive);

-        Column column = table.findColumn(_column.getName(), caseSensitive);

-

-        column.setDefaultValue(_newDefaultValue);

+        findChangedColumn(model, caseSensitive).setDefaultValue(_newDefaultValue);

     }

 }

diff --git a/src/java/org/apache/ddlutils/alteration/ColumnRequiredChange.java b/src/java/org/apache/ddlutils/alteration/ColumnRequiredChange.java
index 58cee3f..276ffbf 100644
--- a/src/java/org/apache/ddlutils/alteration/ColumnRequiredChange.java
+++ b/src/java/org/apache/ddlutils/alteration/ColumnRequiredChange.java
@@ -29,11 +29,8 @@
  * 

  * @version $Revision: $

  */

-public class ColumnRequiredChange extends TableChangeImplBase implements ColumnChange

+public class ColumnRequiredChange extends ColumnChangeImplBase

 {

-    /** The column. */

-    private Column _column;

-

     /**

      * Creates a new change object.

      * 

@@ -42,28 +39,14 @@
      */

     public ColumnRequiredChange(Table table, Column column)

     {

-        super(table);

-        _column = column;

-    }

-

-    /**

-     * Returns the column.

-     *

-     * @return The column

-     */

-    public Column getChangedColumn()

-    {

-        return _column;

+        super(table, column);

     }

 

     /**

      * {@inheritDoc}

      */

-    public void apply(Database database, boolean caseSensitive)

+    public void apply(Database model, boolean caseSensitive)

     {

-        Table  table  = database.findTable(getChangedTable().getName(), caseSensitive);

-        Column column = table.findColumn(_column.getName(), caseSensitive);

-

-        column.setRequired(!_column.isRequired());

+        findChangedColumn(model, caseSensitive).setRequired(!getChangedColumn().isRequired());

     }

 }

diff --git a/src/java/org/apache/ddlutils/alteration/ColumnSizeChange.java b/src/java/org/apache/ddlutils/alteration/ColumnSizeChange.java
index 2a355de..6727604 100644
--- a/src/java/org/apache/ddlutils/alteration/ColumnSizeChange.java
+++ b/src/java/org/apache/ddlutils/alteration/ColumnSizeChange.java
@@ -28,10 +28,8 @@
  * 

  * @version $Revision: $

  */

-public class ColumnSizeChange extends TableChangeImplBase implements ColumnChange

+public class ColumnSizeChange extends ColumnChangeImplBase

 {

-    /** The column. */

-    private Column _column;

     /** The new size. */

     private int _newSize;

     /** The new scale. */

@@ -47,23 +45,12 @@
      */

     public ColumnSizeChange(Table table, Column column, int newSize, int newScale)

     {

-        super(table);

-        _column   = column;

+        super(table, column);

         _newSize  = newSize;

         _newScale = newScale;

     }

 

     /**

-     * Returns the column.

-     *

-     * @return The column

-     */

-    public Column getChangedColumn()

-    {

-        return _column;

-    }

-

-    /**

      * Returns the new size of the column.

      *

      * @return The new size

@@ -86,11 +73,8 @@
     /**

      * {@inheritDoc}

      */

-    public void apply(Database database, boolean caseSensitive)

+    public void apply(Database model, boolean caseSensitive)

     {

-        Table  table  = database.findTable(getChangedTable().getName(), caseSensitive);

-        Column column = table.findColumn(_column.getName(), caseSensitive);

-

-        column.setSizeAndScale(_newSize, _newScale);

+        findChangedColumn(model, caseSensitive).setSizeAndScale(_newSize, _newScale);

     }

 }

diff --git a/src/java/org/apache/ddlutils/alteration/ForeignKeyChange.java b/src/java/org/apache/ddlutils/alteration/ForeignKeyChange.java
new file mode 100644
index 0000000..57c8304
--- /dev/null
+++ b/src/java/org/apache/ddlutils/alteration/ForeignKeyChange.java
@@ -0,0 +1,47 @@
+package org.apache.ddlutils.alteration;

+

+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License"); you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+

+import org.apache.ddlutils.model.Database;

+import org.apache.ddlutils.model.ForeignKey;

+

+/**

+ * Represents a change to a foreign key of a table.

+ * 

+ * @version $Revision: $

+ */

+public interface ForeignKeyChange extends TableChange

+{

+    /**

+     * Returns the affected foreign key from the original model.

+     * 

+     * @return The affected foreign key

+     */

+    public ForeignKey getChangedForeignKey();

+

+    /**

+     * Finds the foreign key object corresponding to the changed foreign key in the given database model.

+     * 

+     * @param model         The database model

+     * @param caseSensitive Whether identifiers are case sensitive

+     * @return The foreign key object or <code>null</code> if it could not be found

+     */

+    public ForeignKey findChangedForeignKey(Database model, boolean caseSensitive);

+}

diff --git a/src/java/org/apache/ddlutils/alteration/ForeignKeyChangeImplBase.java b/src/java/org/apache/ddlutils/alteration/ForeignKeyChangeImplBase.java
new file mode 100644
index 0000000..2955df5
--- /dev/null
+++ b/src/java/org/apache/ddlutils/alteration/ForeignKeyChangeImplBase.java
@@ -0,0 +1,55 @@
+package org.apache.ddlutils.alteration;
+
+import org.apache.ddlutils.model.Database;
+import org.apache.ddlutils.model.ForeignKey;
+import org.apache.ddlutils.model.Table;
+
+public abstract class ForeignKeyChangeImplBase extends    TableChangeImplBase
+                                               implements ForeignKeyChange
+{
+    /** The foreign key. */
+    private ForeignKey _foreignKey;
+
+    /**
+     * Creates a new change object.
+     * 
+     * @param table      The table
+     * @param foreignKey The foreign key
+     */
+    public ForeignKeyChangeImplBase(Table table, ForeignKey foreignKey)
+    {
+        super(table);
+        _foreignKey = foreignKey;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public ForeignKey getChangedForeignKey()
+    {
+        return _foreignKey;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public ForeignKey findChangedForeignKey(Database model, boolean caseSensitive)
+    {
+    	Table table = findChangedTable(model, caseSensitive);
+
+    	if (table != null)
+    	{
+            for (int fkIdx = 0; fkIdx < table.getForeignKeyCount(); fkIdx++)
+            {
+                ForeignKey curFk = table.getForeignKey(fkIdx);
+
+                if ((caseSensitive  && _foreignKey.equals(curFk)) ||
+                    (!caseSensitive && _foreignKey.equalsIgnoreCase(curFk)))
+                {
+                    return curFk;
+                }
+            }
+    	}
+        return null;
+    }
+}
diff --git a/src/java/org/apache/ddlutils/alteration/IndexChange.java b/src/java/org/apache/ddlutils/alteration/IndexChange.java
new file mode 100644
index 0000000..3d192b9
--- /dev/null
+++ b/src/java/org/apache/ddlutils/alteration/IndexChange.java
@@ -0,0 +1,47 @@
+package org.apache.ddlutils.alteration;

+

+/*

+ * Licensed to the Apache Software Foundation (ASF) under one

+ * or more contributor license agreements.  See the NOTICE file

+ * distributed with this work for additional information

+ * regarding copyright ownership.  The ASF licenses this file

+ * to you under the Apache License, Version 2.0 (the

+ * "License"); you may not use this file except in compliance

+ * with the License.  You may obtain a copy of the License at

+ *

+ *   http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing,

+ * software distributed under the License is distributed on an

+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

+ * KIND, either express or implied.  See the License for the

+ * specific language governing permissions and limitations

+ * under the License.

+ */

+

+import org.apache.ddlutils.model.Database;

+import org.apache.ddlutils.model.Index;

+

+/**

+ * Represents a change to a index of a table.

+ * 

+ * @version $Revision: $

+ */

+public interface IndexChange extends TableChange

+{

+    /**

+     * Returns the affected index from the original model.

+     * 

+     * @return The affected index

+     */

+    public Index getChangedIndex();

+

+    /**

+     * Finds the index object corresponding to the changed index in the given database model.

+     * 

+     * @param model         The database model

+     * @param caseSensitive Whether identifiers are case sensitive

+     * @return The index object or <code>null</code> if it could not be found

+     */

+    public Index findChangedIndex(Database model, boolean caseSensitive);

+}

diff --git a/src/java/org/apache/ddlutils/alteration/IndexChangeImplBase.java b/src/java/org/apache/ddlutils/alteration/IndexChangeImplBase.java
new file mode 100644
index 0000000..6d9475c
--- /dev/null
+++ b/src/java/org/apache/ddlutils/alteration/IndexChangeImplBase.java
@@ -0,0 +1,55 @@
+package org.apache.ddlutils.alteration;
+
+import org.apache.ddlutils.model.Database;
+import org.apache.ddlutils.model.Index;
+import org.apache.ddlutils.model.Table;
+
+public abstract class IndexChangeImplBase extends    TableChangeImplBase
+                                          implements IndexChange
+{
+    /** The index. */
+    private Index _index;
+
+    /**
+     * Creates a new change object.
+     * 
+     * @param table The table
+     * @param index The index
+     */
+    public IndexChangeImplBase(Table table, Index index)
+    {
+        super(table);
+        _index = index;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public Index getChangedIndex()
+    {
+        return _index;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public Index findChangedIndex(Database model, boolean caseSensitive)
+    {
+    	Table table = findChangedTable(model, caseSensitive);
+
+    	if (table != null)
+    	{
+            for (int indexIdx = 0; indexIdx < table.getIndexCount(); indexIdx++)
+            {
+                Index curIndex = table.getIndex(indexIdx);
+
+                if ((caseSensitive  && _index.equals(curIndex)) ||
+                    (!caseSensitive && _index.equalsIgnoreCase(curIndex)))
+                {
+                    return curIndex;
+                }
+            }
+    	}
+        return null;
+    }
+}
diff --git a/src/java/org/apache/ddlutils/alteration/ModelComparator.java b/src/java/org/apache/ddlutils/alteration/ModelComparator.java
index 53e65f4..e208f6a 100644
--- a/src/java/org/apache/ddlutils/alteration/ModelComparator.java
+++ b/src/java/org/apache/ddlutils/alteration/ModelComparator.java
@@ -297,7 +297,7 @@
                 {

                     _log.info("The primary key of table " + sourceTable.getName() + " needs to be changed");

                 }

-                changes.add(new PrimaryKeyChange(sourceTable, sourcePK, targetPK));

+                changes.add(new PrimaryKeyChange(sourceTable, targetPK));

             }

         }

         

diff --git a/src/java/org/apache/ddlutils/alteration/PrimaryKeyChange.java b/src/java/org/apache/ddlutils/alteration/PrimaryKeyChange.java
index b81c34a..267af8c 100644
--- a/src/java/org/apache/ddlutils/alteration/PrimaryKeyChange.java
+++ b/src/java/org/apache/ddlutils/alteration/PrimaryKeyChange.java
@@ -39,13 +39,12 @@
      * Creates a new change object.

      * 

      * @param table                The table whose primary key is to be changed

-     * @param oldPrimaryKeyColumns The columns making up the original primary key

      * @param newPrimaryKeyColumns The columns making up the new primary key

      */

-    public PrimaryKeyChange(Table table, Column[] oldPrimaryKeyColumns, Column[] newPrimaryKeyColumns)

+    public PrimaryKeyChange(Table table, Column[] newPrimaryKeyColumns)

     {

         super(table);

-        _oldPrimaryKeyColumns = oldPrimaryKeyColumns;

+        _oldPrimaryKeyColumns = table.getPrimaryKeyColumns();

         _newPrimaryKeyColumns = newPrimaryKeyColumns;

     }

 

@@ -72,9 +71,9 @@
     /**

      * {@inheritDoc}

      */

-    public void apply(Database database, boolean caseSensitive)

+    public void apply(Database model, boolean caseSensitive)

     {

-        Table table = database.findTable(getChangedTable().getName(), caseSensitive);

+        Table table = findChangedTable(model, caseSensitive);

 

         for (int idx = 0; idx < _oldPrimaryKeyColumns.length; idx++)

         {

diff --git a/src/java/org/apache/ddlutils/alteration/RemoveColumnChange.java b/src/java/org/apache/ddlutils/alteration/RemoveColumnChange.java
index a986317..a8d9f97 100644
--- a/src/java/org/apache/ddlutils/alteration/RemoveColumnChange.java
+++ b/src/java/org/apache/ddlutils/alteration/RemoveColumnChange.java
@@ -28,11 +28,8 @@
  * 

  * @version $Revision: $

  */

-public class RemoveColumnChange extends TableChangeImplBase

+public class RemoveColumnChange extends ColumnChangeImplBase

 {

-    /** The column. */

-    private Column _column;

-

     /**

      * Creates a new change object.

      * 

@@ -41,28 +38,14 @@
      */

     public RemoveColumnChange(Table table, Column column)

     {

-        super(table);

-        _column = column;

-    }

-

-    /**

-     * Returns the column.

-     *

-     * @return The column

-     */

-    public Column getColumn()

-    {

-        return _column;

+        super(table, column);

     }

 

     /**

      * {@inheritDoc}

      */

-    public void apply(Database database, boolean caseSensitive)

+    public void apply(Database model, boolean caseSensitive)

     {

-        Table  table  = database.findTable(getChangedTable().getName(), caseSensitive);

-        Column column = table.findColumn(_column.getName(), caseSensitive);

-

-        table.removeColumn(column);

+        findChangedTable(model, caseSensitive).removeColumn(findChangedColumn(model, caseSensitive));

     }

 }

diff --git a/src/java/org/apache/ddlutils/alteration/RemoveForeignKeyChange.java b/src/java/org/apache/ddlutils/alteration/RemoveForeignKeyChange.java
index e485f88..601b0d5 100644
--- a/src/java/org/apache/ddlutils/alteration/RemoveForeignKeyChange.java
+++ b/src/java/org/apache/ddlutils/alteration/RemoveForeignKeyChange.java
@@ -30,11 +30,8 @@
  * 

  * @version $Revision: $

  */

-public class RemoveForeignKeyChange extends TableChangeImplBase

+public class RemoveForeignKeyChange extends ForeignKeyChangeImplBase

 {

-    /** The foreign key. */

-    private ForeignKey _foreignKey;

-

     /**

      * Creates a new change object.

      * 

@@ -43,27 +40,14 @@
      */

     public RemoveForeignKeyChange(Table table, ForeignKey foreignKey)

     {

-        super(table);

-        _foreignKey = foreignKey;

-    }

-

-    /**

-     * Returns the foreign key to be removed.

-     *

-     * @return The foreign key

-     */

-    public ForeignKey getForeignKey()

-    {

-        return _foreignKey;

+        super(table, foreignKey);

     }

 

     /**

      * {@inheritDoc}

      */

-    public void apply(Database database, boolean caseSensitive)

+    public void apply(Database model, boolean caseSensitive)

     {

-        Table table = database.findTable(getChangedTable().getName(), caseSensitive);

-

-        table.removeForeignKey(_foreignKey);

+        findChangedTable(model, caseSensitive).removeForeignKey(findChangedForeignKey(model, caseSensitive));

     }

 }

diff --git a/src/java/org/apache/ddlutils/alteration/RemoveIndexChange.java b/src/java/org/apache/ddlutils/alteration/RemoveIndexChange.java
index c7b8e9d..3887c28 100644
--- a/src/java/org/apache/ddlutils/alteration/RemoveIndexChange.java
+++ b/src/java/org/apache/ddlutils/alteration/RemoveIndexChange.java
@@ -28,11 +28,8 @@
  * 

  * @version $Revision: $

  */

-public class RemoveIndexChange extends TableChangeImplBase

+public class RemoveIndexChange extends IndexChangeImplBase

 {

-    /** The index to be removed. */

-    private Index _index;

-

     /**

      * Creates a new change object.

      * 

@@ -41,28 +38,14 @@
      */

     public RemoveIndexChange(Table table, Index index)

     {

-        super(table);

-        _index = index;

-    }

-

-    /**

-     * Returns the index.

-     *

-     * @return The index

-     */

-    public Index getIndex()

-    {

-        return _index;

+        super(table, index);

     }

 

     /**

      * {@inheritDoc}

      */

-    public void apply(Database database, boolean caseSensitive)

+    public void apply(Database model, boolean caseSensitive)

     {

-        Table table = database.findTable(getChangedTable().getName(), caseSensitive);

-        Index index = table.findIndex(_index.getName(), caseSensitive);

-

-        table.removeIndex(index);

+        findChangedTable(model, caseSensitive).removeIndex(findChangedIndex(model, caseSensitive));

     }

 }

diff --git a/src/java/org/apache/ddlutils/alteration/RemovePrimaryKeyChange.java b/src/java/org/apache/ddlutils/alteration/RemovePrimaryKeyChange.java
index 1c22498..ab1437d 100644
--- a/src/java/org/apache/ddlutils/alteration/RemovePrimaryKeyChange.java
+++ b/src/java/org/apache/ddlutils/alteration/RemovePrimaryKeyChange.java
@@ -58,9 +58,9 @@
     /**

      * {@inheritDoc}

      */

-    public void apply(Database database, boolean caseSensitive)

+    public void apply(Database model, boolean caseSensitive)

     {

-        Table table = database.findTable(getChangedTable().getName(), caseSensitive);

+        Table table = findChangedTable(model, caseSensitive);

 

         for (int idx = 0; idx < _primaryKeyColumns.length; idx++)

         {

diff --git a/src/java/org/apache/ddlutils/alteration/RemoveTableChange.java b/src/java/org/apache/ddlutils/alteration/RemoveTableChange.java
index 30fe199..cd712ea 100644
--- a/src/java/org/apache/ddlutils/alteration/RemoveTableChange.java
+++ b/src/java/org/apache/ddlutils/alteration/RemoveTableChange.java
@@ -42,10 +42,10 @@
     /**

      * {@inheritDoc}

      */

-    public void apply(Database database, boolean caseSensitive)

+    public void apply(Database model, boolean caseSensitive)

     {

-        Table table = database.findTable(getChangedTable().getName(), caseSensitive);

+        Table table = findChangedTable(model, caseSensitive);

 

-        database.removeTable(table);

+        model.removeTable(table);

     }

 }

diff --git a/src/java/org/apache/ddlutils/alteration/TableChange.java b/src/java/org/apache/ddlutils/alteration/TableChange.java
index 25cd4f3..45abe35 100644
--- a/src/java/org/apache/ddlutils/alteration/TableChange.java
+++ b/src/java/org/apache/ddlutils/alteration/TableChange.java
@@ -19,6 +19,7 @@
  * under the License.

  */

 

+import org.apache.ddlutils.model.Database;

 import org.apache.ddlutils.model.Table;

 

 /**

@@ -34,4 +35,13 @@
      * @return The affected table

      */

     public Table getChangedTable();

+

+    /**

+     * Finds the table object corresponding to the changed table in the given database model.

+     * 

+     * @param model         The database model

+     * @param caseSensitive Whether identifiers are case sensitive

+     * @return The table object or <code>null</code> if it could not be found

+     */

+    public Table findChangedTable(Database model, boolean caseSensitive);

 }

diff --git a/src/java/org/apache/ddlutils/alteration/TableChangeImplBase.java b/src/java/org/apache/ddlutils/alteration/TableChangeImplBase.java
index 57157a2..0cfed11 100644
--- a/src/java/org/apache/ddlutils/alteration/TableChangeImplBase.java
+++ b/src/java/org/apache/ddlutils/alteration/TableChangeImplBase.java
@@ -19,6 +19,7 @@
  * under the License.

  */

 

+import org.apache.ddlutils.model.Database;

 import org.apache.ddlutils.model.Table;

 

 /**

@@ -42,12 +43,18 @@
     }

 

     /**

-     * Returns the affected table.

-     * 

-     * @return The table

+     * {@inheritDoc}

      */

     public Table getChangedTable()

     {

         return _table;

     }

+

+    /**

+     * {@inheritDoc}

+     */

+    public Table findChangedTable(Database model, boolean caseSensitive)

+    {

+    	return model.findTable(_table.getName(), caseSensitive);

+    }

 }

diff --git a/src/java/org/apache/ddlutils/model/Table.java b/src/java/org/apache/ddlutils/model/Table.java
index c286206..03b9d53 100644
--- a/src/java/org/apache/ddlutils/model/Table.java
+++ b/src/java/org/apache/ddlutils/model/Table.java
@@ -49,7 +49,7 @@
     private String _schema = null;
     /** The name. */
     private String _name = null;
-    /** A desription of the table. */
+    /** A description of the table. */
     private String _description = null;
     /** The table's type as read from the database. */
     private String _type = null;
diff --git a/src/java/org/apache/ddlutils/platform/SqlBuilder.java b/src/java/org/apache/ddlutils/platform/SqlBuilder.java
index 10d4dae..ca4859e 100644
--- a/src/java/org/apache/ddlutils/platform/SqlBuilder.java
+++ b/src/java/org/apache/ddlutils/platform/SqlBuilder.java
@@ -618,7 +618,7 @@
                                  CreationParameters     params,
                                  RemoveForeignKeyChange change) throws IOException
     {
-        writeExternalForeignKeyDropStmt(change.getChangedTable(), change.getForeignKey());
+        writeExternalForeignKeyDropStmt(change.getChangedTable(), change.getChangedForeignKey());
         change.apply(currentModel, getPlatform().isDelimitedIdentifierModeOn());
     }
 
@@ -636,7 +636,7 @@
                                  CreationParameters params,
                                  RemoveIndexChange  change) throws IOException
     {
-        writeExternalIndexDropStmt(change.getChangedTable(), change.getIndex());
+        writeExternalIndexDropStmt(change.getChangedTable(), change.getChangedIndex());
         change.apply(currentModel, getPlatform().isDelimitedIdentifierModeOn());
     }
 
diff --git a/src/java/org/apache/ddlutils/platform/db2/Db2Builder.java b/src/java/org/apache/ddlutils/platform/db2/Db2Builder.java
index d0445af..e9fc2db 100644
--- a/src/java/org/apache/ddlutils/platform/db2/Db2Builder.java
+++ b/src/java/org/apache/ddlutils/platform/db2/Db2Builder.java
@@ -227,7 +227,7 @@
         printlnIdentifier(getTableName(change.getChangedTable()));
         printIndent();
         print("DROP COLUMN ");
-        printIdentifier(getColumnName(change.getColumn()));
+        printIdentifier(getColumnName(change.getChangedColumn()));
         printEndOfStatement();
         change.apply(currentModel, getPlatform().isDelimitedIdentifierModeOn());
     }
diff --git a/src/java/org/apache/ddlutils/platform/firebird/FirebirdBuilder.java b/src/java/org/apache/ddlutils/platform/firebird/FirebirdBuilder.java
index 12c6358..6042f7e 100644
--- a/src/java/org/apache/ddlutils/platform/firebird/FirebirdBuilder.java
+++ b/src/java/org/apache/ddlutils/platform/firebird/FirebirdBuilder.java
@@ -257,7 +257,7 @@
             	// TODO: we cannot drop primary key columns this way

             	//       because we would have to drop the pk first and then

             	//       add a new one afterwards which is not supported yet

-            	if (!removeColumnChange.getColumn().isPrimaryKey())

+            	if (!removeColumnChange.getChangedColumn().isPrimaryKey())

             	{

 	            	processChange(currentModel, desiredModel, removeColumnChange);

 	                changeIt.remove();

@@ -336,15 +336,15 @@
                                  Database           desiredModel,

                                  RemoveColumnChange change) throws IOException

     {

-        if (change.getColumn().isAutoIncrement())

+        if (change.getChangedColumn().isAutoIncrement())

         {

-            writeAutoIncrementDropStmts(change.getChangedTable(), change.getColumn());

+            writeAutoIncrementDropStmts(change.getChangedTable(), change.getChangedColumn());

         }

         print("ALTER TABLE ");

         printlnIdentifier(getTableName(change.getChangedTable()));

         printIndent();

         print("DROP ");

-        printIdentifier(getColumnName(change.getColumn()));

+        printIdentifier(getColumnName(change.getChangedColumn()));

         printEndOfStatement();

         change.apply(currentModel, getPlatform().isDelimitedIdentifierModeOn());

     }

diff --git a/src/java/org/apache/ddlutils/platform/hsqldb/HsqlDbBuilder.java b/src/java/org/apache/ddlutils/platform/hsqldb/HsqlDbBuilder.java
index 03a3930..cf97246 100644
--- a/src/java/org/apache/ddlutils/platform/hsqldb/HsqlDbBuilder.java
+++ b/src/java/org/apache/ddlutils/platform/hsqldb/HsqlDbBuilder.java
@@ -87,7 +87,7 @@
             TableChange change = (TableChange)changeIt.next();
 
             if ((change instanceof RemoveColumnChange) && 
-                ((RemoveColumnChange)change).getColumn().isPrimaryKey())
+                ((RemoveColumnChange)change).getChangedColumn().isPrimaryKey())
             {
                 return;
             }
@@ -172,7 +172,7 @@
         printlnIdentifier(getTableName(change.getChangedTable()));
         printIndent();
         print("DROP COLUMN ");
-        printIdentifier(getColumnName(change.getColumn()));
+        printIdentifier(getColumnName(change.getChangedColumn()));
         printEndOfStatement();
         change.apply(currentModel, getPlatform().isDelimitedIdentifierModeOn());
     }
diff --git a/src/java/org/apache/ddlutils/platform/interbase/InterbaseBuilder.java b/src/java/org/apache/ddlutils/platform/interbase/InterbaseBuilder.java
index 9aa5cf8..c527607 100644
--- a/src/java/org/apache/ddlutils/platform/interbase/InterbaseBuilder.java
+++ b/src/java/org/apache/ddlutils/platform/interbase/InterbaseBuilder.java
@@ -257,7 +257,7 @@
                 // TODO: we cannot drop primary key columns this way

                 //       because we would have to drop the pk first and then

                 //       add a new one afterwards which is not supported yet

-                if (!removeColumnChange.getColumn().isPrimaryKey())

+                if (!removeColumnChange.getChangedColumn().isPrimaryKey())

                 {

                     processChange(currentModel, desiredModel, removeColumnChange);

                     changeIt.remove();

@@ -336,15 +336,15 @@
                                  Database           desiredModel,

                                  RemoveColumnChange change) throws IOException

     {

-        if (change.getColumn().isAutoIncrement())

+        if (change.getChangedColumn().isAutoIncrement())

         {

-            writeAutoIncrementDropStmts(change.getChangedTable(), change.getColumn());

+            writeAutoIncrementDropStmts(change.getChangedTable(), change.getChangedColumn());

         }

         print("ALTER TABLE ");

         printlnIdentifier(getTableName(change.getChangedTable()));

         printIndent();

         print("DROP ");

-        printIdentifier(getColumnName(change.getColumn()));

+        printIdentifier(getColumnName(change.getChangedColumn()));

         printEndOfStatement();

         change.apply(currentModel, getPlatform().isDelimitedIdentifierModeOn());

     }

diff --git a/src/java/org/apache/ddlutils/platform/mckoi/MckoiBuilder.java b/src/java/org/apache/ddlutils/platform/mckoi/MckoiBuilder.java
index 1416c96..76466c8 100644
--- a/src/java/org/apache/ddlutils/platform/mckoi/MckoiBuilder.java
+++ b/src/java/org/apache/ddlutils/platform/mckoi/MckoiBuilder.java
@@ -189,7 +189,7 @@
 
             if (change instanceof ColumnAutoIncrementChange)
             {
-                Column column = ((ColumnAutoIncrementChange)change).getColumn();
+                Column column = ((ColumnAutoIncrementChange)change).getChangedColumn();
 
                 // we have to defer removal of the sequences until they are no longer used
                 if (!column.isAutoIncrement())
@@ -197,7 +197,7 @@
                     ColumnAutoIncrementChange autoIncrChange = (ColumnAutoIncrementChange)change;
 
                     createAutoIncrementSequence(autoIncrChange.getChangedTable(),
-                                                autoIncrChange.getColumn());
+                                                autoIncrChange.getChangedColumn());
                 }
             }
             else if (change instanceof AddColumnChange)
@@ -221,24 +221,24 @@
     
             if (change instanceof ColumnAutoIncrementChange)
             {
-                Column column = ((ColumnAutoIncrementChange)change).getColumn();
+                Column column = ((ColumnAutoIncrementChange)change).getChangedColumn();
     
                 if (column.isAutoIncrement())
                 {
                     ColumnAutoIncrementChange autoIncrChange = (ColumnAutoIncrementChange)change;
         
                     dropAutoIncrementSequence(autoIncrChange.getChangedTable(),
-                                              autoIncrChange.getColumn());
+                                              autoIncrChange.getChangedColumn());
                 }
             }
             else if (change instanceof RemoveColumnChange)
             {
                 RemoveColumnChange removeColumnChange = (RemoveColumnChange)change;
 
-                if (removeColumnChange.getColumn().isAutoIncrement())
+                if (removeColumnChange.getChangedColumn().isAutoIncrement())
                 {
                     dropAutoIncrementSequence(removeColumnChange.getChangedTable(),
-                                              removeColumnChange.getColumn());
+                                              removeColumnChange.getChangedColumn());
                 }
             }
         }
diff --git a/src/java/org/apache/ddlutils/platform/mssql/MSSqlBuilder.java b/src/java/org/apache/ddlutils/platform/mssql/MSSqlBuilder.java
index 908f353..fd769c3 100644
--- a/src/java/org/apache/ddlutils/platform/mssql/MSSqlBuilder.java
+++ b/src/java/org/apache/ddlutils/platform/mssql/MSSqlBuilder.java
@@ -413,11 +413,11 @@
 
             if (change instanceof RemoveIndexChange)
             {
-                removedIndexes.add(((RemoveIndexChange)change).getIndex());
+                removedIndexes.add(((RemoveIndexChange)change).getChangedIndex());
             }
             else if (change instanceof RemoveForeignKeyChange)
             {
-                removedForeignKeys.add(((RemoveForeignKeyChange)change).getForeignKey());
+                removedForeignKeys.add(((RemoveForeignKeyChange)change).getChangedForeignKey());
             }
             else if (change instanceof RemovePrimaryKeyChange)
             {
@@ -626,7 +626,7 @@
         printlnIdentifier(getTableName(change.getChangedTable()));
         printIndent();
         print("DROP COLUMN ");
-        printIdentifier(getColumnName(change.getColumn()));
+        printIdentifier(getColumnName(change.getChangedColumn()));
         printEndOfStatement();
         change.apply(currentModel, getPlatform().isDelimitedIdentifierModeOn());
     }
diff --git a/src/java/org/apache/ddlutils/platform/mysql/MySqlBuilder.java b/src/java/org/apache/ddlutils/platform/mysql/MySqlBuilder.java
index ad8de2b..f62d15f 100644
--- a/src/java/org/apache/ddlutils/platform/mysql/MySqlBuilder.java
+++ b/src/java/org/apache/ddlutils/platform/mysql/MySqlBuilder.java
@@ -284,7 +284,7 @@
         printlnIdentifier(getTableName(change.getChangedTable()));
         printIndent();
         print("DROP COLUMN ");
-        printIdentifier(getColumnName(change.getColumn()));
+        printIdentifier(getColumnName(change.getChangedColumn()));
         printEndOfStatement();
         change.apply(currentModel, getPlatform().isDelimitedIdentifierModeOn());
     }
diff --git a/src/java/org/apache/ddlutils/platform/oracle/Oracle8Builder.java b/src/java/org/apache/ddlutils/platform/oracle/Oracle8Builder.java
index a5b714a..98aa96e 100644
--- a/src/java/org/apache/ddlutils/platform/oracle/Oracle8Builder.java
+++ b/src/java/org/apache/ddlutils/platform/oracle/Oracle8Builder.java
@@ -489,16 +489,16 @@
                                  Database           desiredModel,
                                  RemoveColumnChange change) throws IOException
     {
-        if (change.getColumn().isAutoIncrement())
+        if (change.getChangedColumn().isAutoIncrement())
         {
-            dropAutoIncrementTrigger(change.getChangedTable(), change.getColumn());
-            dropAutoIncrementSequence(change.getChangedTable(), change.getColumn());
+            dropAutoIncrementTrigger(change.getChangedTable(), change.getChangedColumn());
+            dropAutoIncrementSequence(change.getChangedTable(), change.getChangedColumn());
         }
         print("ALTER TABLE ");
         printlnIdentifier(getTableName(change.getChangedTable()));
         printIndent();
         print("DROP COLUMN ");
-        printIdentifier(getColumnName(change.getColumn()));
+        printIdentifier(getColumnName(change.getChangedColumn()));
         printEndOfStatement();
         change.apply(currentModel, getPlatform().isDelimitedIdentifierModeOn());
     }
diff --git a/src/java/org/apache/ddlutils/platform/postgresql/PostgreSqlBuilder.java b/src/java/org/apache/ddlutils/platform/postgresql/PostgreSqlBuilder.java
index ab15ce2..af54d73 100644
--- a/src/java/org/apache/ddlutils/platform/postgresql/PostgreSqlBuilder.java
+++ b/src/java/org/apache/ddlutils/platform/postgresql/PostgreSqlBuilder.java
@@ -250,11 +250,11 @@
         printlnIdentifier(getTableName(change.getChangedTable()));
         printIndent();
         print("DROP COLUMN ");
-        printIdentifier(getColumnName(change.getColumn()));
+        printIdentifier(getColumnName(change.getChangedColumn()));
         printEndOfStatement();
-        if (change.getColumn().isAutoIncrement())
+        if (change.getChangedColumn().isAutoIncrement())
         {
-            dropAutoIncrementSequence(change.getChangedTable(), change.getColumn());
+            dropAutoIncrementSequence(change.getChangedTable(), change.getChangedColumn());
         }
         change.apply(currentModel, getPlatform().isDelimitedIdentifierModeOn());
     }
diff --git a/src/java/org/apache/ddlutils/platform/sapdb/SapDbBuilder.java b/src/java/org/apache/ddlutils/platform/sapdb/SapDbBuilder.java
index b945b17..f5c3bbd 100644
--- a/src/java/org/apache/ddlutils/platform/sapdb/SapDbBuilder.java
+++ b/src/java/org/apache/ddlutils/platform/sapdb/SapDbBuilder.java
@@ -273,7 +273,7 @@
         printlnIdentifier(getTableName(change.getChangedTable()));
         printIndent();
         print("DROP ");
-        printIdentifier(getColumnName(change.getColumn()));
+        printIdentifier(getColumnName(change.getChangedColumn()));
         print(" RELEASE SPACE");
         printEndOfStatement();
         change.apply(currentModel, getPlatform().isDelimitedIdentifierModeOn());
diff --git a/src/java/org/apache/ddlutils/platform/sybase/SybaseBuilder.java b/src/java/org/apache/ddlutils/platform/sybase/SybaseBuilder.java
index fead4ab..99c36c7 100644
--- a/src/java/org/apache/ddlutils/platform/sybase/SybaseBuilder.java
+++ b/src/java/org/apache/ddlutils/platform/sybase/SybaseBuilder.java
@@ -550,7 +550,7 @@
         printlnIdentifier(getTableName(change.getChangedTable()));
         printIndent();
         print("DROP ");
-        printIdentifier(getColumnName(change.getColumn()));
+        printIdentifier(getColumnName(change.getChangedColumn()));
         printEndOfStatement();
         change.apply(currentModel, getPlatform().isDelimitedIdentifierModeOn());
     }
diff --git a/src/test/org/apache/ddlutils/alteration/TestModelComparator.java b/src/test/org/apache/ddlutils/alteration/TestModelComparator.java
index 4412f28..b48564d 100644
--- a/src/test/org/apache/ddlutils/alteration/TestModelComparator.java
+++ b/src/test/org/apache/ddlutils/alteration/TestModelComparator.java
@@ -298,7 +298,7 @@
         RemoveForeignKeyChange change = (RemoveForeignKeyChange)changes.get(0);

 

         assertEquals("TestFK",

-                     change.getForeignKey().getName());

+                     change.getChangedForeignKey().getName());

     }

 

     /**

@@ -346,7 +346,7 @@
         AddForeignKeyChange    change2 = (AddForeignKeyChange)changes.get(1);

 

         assertEquals("TestFK",

-                     change1.getForeignKey().getName());

+                     change1.getChangedForeignKey().getName());

         assertEquals("TESTFK",

                      change2.getNewForeignKey().getName());

     }

@@ -402,7 +402,7 @@
         AddForeignKeyChange    change2 = (AddForeignKeyChange)changes.get(1);

 

         assertEquals("TestFK",

-                     change1.getForeignKey().getName());

+                     change1.getChangedForeignKey().getName());

         assertEquals("TestFK",

                      change2.getNewForeignKey().getName());

     }

@@ -528,7 +528,7 @@
         RemoveIndexChange change = (RemoveIndexChange)changes.get(0);

 

         assertEquals("TestIndex",

-                     change.getIndex().getName());

+                     change.getChangedIndex().getName());

     }

 

     /**

@@ -570,7 +570,7 @@
         AddIndexChange    change2 = (AddIndexChange)changes.get(1);

 

         assertEquals("TestIndex",

-                     change1.getIndex().getName());

+                     change1.getChangedIndex().getName());

         assertEquals("TestIndex",

                      change2.getNewIndex().getName());

     }

@@ -618,7 +618,7 @@
         AddIndexChange    change2 = (AddIndexChange)changes.get(1);

 

         assertEquals("TestIndex",

-                     change1.getIndex().getName());

+                     change1.getChangedIndex().getName());

         assertEquals("TestIndex",

                      change2.getNewIndex().getName());

     }

@@ -665,7 +665,7 @@
         AddIndexChange    change2 = (AddIndexChange)changes.get(1);

 

         assertEquals("TestIndex",

-                     change1.getIndex().getName());

+                     change1.getChangedIndex().getName());

         assertEquals("TestIndex",

                      change2.getNewIndex().getName());

     }

@@ -712,7 +712,7 @@
         AddIndexChange    change2 = (AddIndexChange)changes.get(1);

 

         assertEquals("TestIndex",

-                     change1.getIndex().getName());

+                     change1.getChangedIndex().getName());

         assertEquals("TestIndex",

                      change2.getNewIndex().getName());

     }

@@ -982,7 +982,7 @@
         RemoveColumnChange change = (RemoveColumnChange)changes.get(0);

 

         assertEquals("Col1",

-                     change.getColumn().getName());

+                     change.getChangedColumn().getName());

     }

 

     /**

@@ -1306,6 +1306,6 @@
         ColumnAutoIncrementChange change = (ColumnAutoIncrementChange)changes.get(0);

 

         assertEquals("Col",

-                     change.getColumn().getName());

+                     change.getChangedColumn().getName());

     }

 }