MetaDataColumnSynchronizer extends BaseColumnSynchronizer<BaseColumnSynchronizer.ColumnMetaData, BaseColumnSynchronizer.ColumnMetaData, BaseColumnSynchronizer.ColumnMetaData> { @Override public void delete(final BaseColumnSynchronizer.ColumnMetaData metaData) throws VetoException { if (!handlesDelete(metaData)) { return; } final MetadataCol52 column = (MetadataCol52) metaData.getColumn(); final int columnIndex = model.getExpandedColumns().indexOf(column); model.getMetadataCols().remove(column); synchroniseDeleteColumn(columnIndex); }  @Override boolean handlesAppend(final MetaData metaData); @Override void append(final BaseColumnSynchronizer.ColumnMetaData metaData); @Override boolean handlesUpdate(final MetaData metaData); @Override List<BaseColumnFieldDiff> update(final BaseColumnSynchronizer.ColumnMetaData originalMetaData,
                                            final BaseColumnSynchronizer.ColumnMetaData editedMetaData); @Override boolean handlesDelete(final MetaData metaData); @Override void delete(final BaseColumnSynchronizer.ColumnMetaData metaData); @Override boolean handlesMoveColumnsTo(final List<? extends MetaData> metaData); @Override void moveColumnsTo(final List<MoveColumnToMetaData> metaData);  }
@Test public void testDelete() throws VetoException { final MetadataCol52 column = new MetadataCol52(); column.setMetadata("smurf"); modelSynchronizer.appendColumn(column); assertEquals(1, model.getMetadataCols().size()); assertEquals(4, uiModel.getColumns().size()); modelSynchronizer.deleteColumn(column); assertEquals(0, model.getMetadataCols().size()); assertEquals(3, uiModel.getColumns().size()); }