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

import java.util.List;

import org.apache.deltaspike.core.api.scope.ConversationGroup;
import org.apache.deltaspike.core.api.scope.GroupedConversationScoped;

import de.ivu.elect.business.entschaedigung.entity.Entschaedigungsart;
import de.ivu.elect.business.person.entity.EntityMitPersonendatenArt;
import de.ivu.elect.business.person.entity.PersonendatenArt;
import de.ivu.elect.jee.presentation.dynamicform.Property;
import de.ivu.elect.presentation.person.form.PersonendatenArtProperty;

@GroupedConversationScoped
@ConversationGroup(AbstractEntschaedigungsartSearchParameters.class)
public class EntschaedigungsartSearchParameters extends AbstractEntschaedigungsartSearchParameters implements EntityMitPersonendatenArt {

  private static final long serialVersionUID = 1L;

  private PersonendatenArt personendatenArt;

  private Entschaedigungsart entschaedigungsart;

  public EntschaedigungsartSearchParameters() {
    super();
  }

  public boolean hasPersonendatenArt() {
    return personendatenArt != null;
  }

  @Override
  public PersonendatenArt getPersonendatenArt() {
    return personendatenArt;
  }

  @Override
  public void setPersonendatenArt(PersonendatenArt personendatenArt) {
    this.personendatenArt = personendatenArt;
  }

  public PersonendatenArtProperty getPersonendatenArtProperty(List<PersonendatenArt> personendatenArten) {
    return new PersonendatenArtProperty(this, personendatenArten);
  }

  public String getBezeichnung() {
    return getEntschaedigungsart().getBezeichnung();
  }

  public void setBezeichnung(String bezeichnung) {
    getEntschaedigungsart().setBezeichnung(bezeichnung);
  }

  public Property getBezeichnungProperty() {
    Property property = getEntschaedigungsart().getProperties().getBezeichnungProperty();
    property.setRequired(false);

    return property;
  }

  private Entschaedigungsart getEntschaedigungsart() {
    if (entschaedigungsart == null) {
      entschaedigungsart = new Entschaedigungsart();
    }

    return entschaedigungsart;
  }

  @Override
  public void reset() {
    personendatenArt = null;

    entschaedigungsart = null;

    super.reset();
  }
}
