### Question:
RuleAnnotationClauseColumnHeaderMetaData extends EditableTextHeaderMetaData<TextBox, TextBoxDOMElement> implements HasListSelectorControl,
                                                                                                                                HasCellEditorControls { @Override public boolean equals(final Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } if (!super.equals(o)) { return false; } final RuleAnnotationClauseColumnHeaderMetaData that = (RuleAnnotationClauseColumnHeaderMetaData) o; return Objects.equals(listSelectorItemsSupplier, that.listSelectorItemsSupplier) && Objects.equals(listSelector, that.listSelector) && Objects.equals(listSelectorItemConsumer, that.listSelectorItemConsumer) && Objects.equals(placeHolder, that.placeHolder); } RuleAnnotationClauseColumnHeaderMetaData(final Supplier<String> titleGetter,
                                                    final Consumer<String> titleSetter,
                                                    final SingletonDOMElementFactory<TextBox, TextBoxDOMElement> factory,
                                                    final Optional<String> placeHolder,
                                                    final BiFunction<Integer, Integer, List<ListSelectorItem>> listSelectorItemsSupplier,
                                                    final ListSelectorView.Presenter listSelector,
                                                    final Consumer<HasListSelectorControl.ListSelectorItem> listSelectorItemConsumer); @Override Optional<String> getPlaceHolder(); @Override Optional<Editor> getEditor(); @Override String getColumnGroup(); @Override List<ListSelectorItem> getItems(final int uiRowIndex,
                                           final int uiColumnIndex); @Override void onItemSelected(final ListSelectorItem item); @Override boolean equals(final Object o); @Override int hashCode(); static final String COLUMN_GROUP; }### Answer:
@Test public void testEquals() { final Supplier<String> otherGetter = mock(Supplier.class); when(otherGetter.get()).thenReturn(""); final RuleAnnotationClauseColumnHeaderMetaData otherEqualsColumn = new RuleAnnotationClauseColumnHeaderMetaData(titleGetter, titleSetter, factory, placeHolder, listSelectorItemsSupplier, listSelector, listSelectorItemConsumer); assertEquals(column, otherEqualsColumn); assertEquals(column.hashCode(), otherEqualsColumn.hashCode()); final RuleAnnotationClauseColumnHeaderMetaData notEqualsColumn = new RuleAnnotationClauseColumnHeaderMetaData(otherGetter, titleSetter, factory, placeHolder, listSelectorItemsSupplier, listSelector, listSelectorItemConsumer); assertNotEquals(column, notEqualsColumn); assertNotEquals(column.hashCode(), notEqualsColumn.hashCode()); }