
package de.ivu.elect.presentation.personenregister.table;

import java.util.List;

import javax.inject.Named;

import de.ivu.elect.jee.presentation.dynamictable.ColumnEntry;
import de.ivu.elect.presentation.personenregister.PersonenregisterPersonendatenSearchResultEntry;

@Named(PersonenregisterPersonendatenSearchResultEntryColumnBuilder.COMPONENT_NAME)
public class PersonenregisterPersonendatenSearchResultEntryColumnBuilder extends AbstractEntityMitPersonendatenSearchResultEntryColumnBuilder<PersonenregisterPersonendatenSearchResultEntry> {

  private static final long serialVersionUID = 1L;

  public static final String COMPONENT_NAME = "personenregisterPersonendatenSearchResultEntryColumnBuilder";

  protected AbstractEntityMitPersonendatenSearchResultEntryPersonendatenColumn<PersonenregisterPersonendatenSearchResultEntry> ordnungsmerkmalColumn;

  protected AbstractEntityMitPersonendatenSearchResultEntryAnschriftdatenColumn<PersonenregisterPersonendatenSearchResultEntry> anschriftArtColumn;

  public PersonenregisterPersonendatenSearchResultEntryColumnBuilder() {
    super();
  }

  @Override
  protected void initColumns() {
    super.initColumns();

    ordnungsmerkmalColumn = new EntityMitPersonendatenSearchResultEntryOrdnungsmerkmalColumn<>(getMessages());

    anschriftArtColumn = new PersonenregisterPersonendatenSearchResultEntryAnschriftArtColumn(getMessages());
    anschriftFormattedColumn = new PersonenregisterPersonendatenSearchResultEntryAnschriftFormattedColumn(getMessages());
  }

  @Override
  protected void addAllPersonendatenColumnEntriesSorted(List<ColumnEntry< ? super PersonenregisterPersonendatenSearchResultEntry>> result) {
    result.add(ordnungsmerkmalColumn);

    super.addAllPersonendatenColumnEntriesSorted(result);
  }

  @Override
  protected void addAllAnschriftdatenColumnEntriesSorted(List<ColumnEntry< ? super PersonenregisterPersonendatenSearchResultEntry>> result) {
    result.add(anschriftArtColumn);

    super.addAllAnschriftdatenColumnEntriesSorted(result);
  }
}
