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

import de.ivu.elect.business.person.entity.PersonendatenDateiExport;

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

import javax.inject.Inject;

import javax.enterprise.event.Observes;
import javax.enterprise.event.Reception;

@GroupedConversationScoped
@ConversationGroup(PersonendatenDateiExportConversationStore.class)
public class PersonendatenDateiExportConversationStore implements java.io.Serializable {

  private static final long serialVersionUID = 1L;

  @Inject
  protected transient GroupedConversation conversation;

  @Inject
  protected transient PersonendatenDateiExportExtendedDAO dao;

  private   de.ivu.elect.business.person.entity.PersonendatenDateiExportPK
entityPK;

  public   de.ivu.elect.business.person.entity.PersonendatenDateiExportPK
 getEntityPK() {
    return entityPK;
  }

  public void setEntityPK(  de.ivu.elect.business.person.entity.PersonendatenDateiExportPK
   entityPK) {
    this.entityPK = entityPK;
  }

  public boolean isSelected() {
    return getEntityPK() != null;
  }

  public PersonendatenDateiExport getEntity() {
    if (isSelected()) {
      return dao.findByPrimaryKey(getEntityPK());
    }

    return null;
  }

  public void close() {
    conversation.close();
  }


// ELECT-2231    ELECT-2250      ELECT-2267
/*
* conversationStore sind von der zur Bearbeitung ausgewählten Wahl abhängig.
*/
public void onWahlSelectChangeEvent(@Observes(notifyObserver = Reception.IF_EXISTS) de.ivu.elect.business.wahl.boundary.WahlSelectChangeEvent event) {
close();
}

/*
* conversationStore sind vom zur Bearbeitung ausgewählten Wahltermin abhängig.
*/
public void onWahlterminSelectChangeEvent(
@Observes(notifyObserver = Reception.IF_EXISTS) de.ivu.elect.business.wahl.boundary.WahlterminSelectChangeEvent event) {
close();
}

}
