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

import java.io.Serializable;

import de.ivu.elect.business.kandidatur.entity.Direktkandidatur;

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

import de.ivu.elect.business.kandidatur.boundary.KandidaturFactory;
import javax.inject.Inject;

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

  private static final long serialVersionUID = 1L;

  @Inject
  private transient KandidaturFactory superFactory;

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

    initDefaultAttributes(entity);

    return entity;
  }



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

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