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

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

import de.ivu.elect.business.unterstuetzer.entity.Eintragungsliste;
import de.ivu.elect.business.unterstuetzer.entity.EintragungslisteProperties;
import de.ivu.elect.jee.presentation.dynamicform.AbstractLongProperty;
import de.ivu.elect.jee.presentation.dynamicform.Property;


import static java.util.Objects.isNull;

@GroupedConversationScoped
@ConversationGroup(AbstractEintragungslisteSearchParameters.class)
public class EintragungslisteSearchParameters extends AbstractEintragungslisteSearchParameters {

  private static final long serialVersionUID = 1L;

  private Eintragungsliste eintragungsliste;

  public EintragungslisteSearchParameters() {
    super();
  }

  public Long getNummer() {
    return getEintragungsliste().getNummer();
  }

  public void setNummer(Long nummer) {
    getEintragungsliste().setNummer(nummer);
  }

  public Property getNummerProperty() {
    AbstractLongProperty nummerProperty = getEintragungslisteProperties().getNummerProperty();
    nummerProperty.setRequired(false);

    return nummerProperty;
  }

  private Eintragungsliste getEintragungsliste() {
    if (isNull(eintragungsliste)) {
      eintragungsliste = new Eintragungsliste();
    }

    return eintragungsliste;
  }

  private EintragungslisteProperties getEintragungslisteProperties() {
    return getEintragungsliste().getProperties();
  }

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

    super.reset();
  }
}
