
package de.ivu.elect.business.staat.boundary;

import java.util.List;

import javax.ejb.Stateless;

import de.ivu.elect.business.staat.entity.QStaatenGruppe;
import de.ivu.elect.business.staat.entity.StaatenGruppe;
import de.ivu.elect.jee.entity.QueryDsl;

@Stateless
public class StaatenGruppeSearch extends AbstractStaatenGruppeSearch {

  public StaatenGruppeSearch() {
    super();
  }

  @Override
  protected List<StaatenGruppe> querySearchResult(StaatenGruppeSearchParameters searchParameters) {
    QStaatenGruppe staatenGruppe = QStaatenGruppe.staatenGruppe;

    QueryDsl queryDsl = dao.getQueryDsl();
    queryDsl.from(staatenGruppe);

    if (searchParameters.hasWahl()) {
      queryDsl.eq(staatenGruppe.wahl, searchParameters.getWahl());
    } else {
      queryDsl.eq(staatenGruppe.wahltermin, searchParameters.getWahltermin());
    }

    queryDsl.eqIfNotNull(staatenGruppe.staatenGruppeTyp, searchParameters.getStaatenGruppeTyp());

    queryDsl.orderBy(staatenGruppe.staatenGruppeTyp.asc(), staatenGruppe.bezeichnung.asc());

    return queryDsl.list(staatenGruppe);
  }
}
