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

import java.io.Serializable;

import de.ivu.elect.business.fremdkandidatur.entity.Fremdkandidatur;

import de.ivu.elect.jee.entity.customdata.DefaultCustomData;

import de.ivu.elect.business.person.boundary.PersonendatenFactory;
import javax.inject.Inject;

/**
 * Diese Klasse liefert nur eine leere Instanz, für konkrete Implementierungen überschreiben
 */
public class FremdkandidaturFactory implements Serializable {

  private static final long serialVersionUID = 1L;

  @Inject
  private transient PersonendatenFactory superFactory;

  public Fremdkandidatur create() {
        Fremdkandidatur entity = new Fremdkandidatur(
              createCustomData()
          );

    initDefaultAttributes(entity);

    return entity;
  }



  public void initDefaultAttributes(Fremdkandidatur entity) {
    superFactory.initDefaultAttributes(entity);
  }

  public DefaultCustomData createCustomData() {
        if (superFactory==null) {
        // Testfälle...
        return de.ivu.elect.jee.entity.customdata.EmptyCustomData.INSTANCE;
    }
    return superFactory.createCustomData();
      }
}
