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

import javax.enterprise.inject.Specializes;
import javax.inject.Inject;

import de.ivu.elect.business.anschrift.boundary.AnschriftFactory;
import de.ivu.elect.business.anschrift.entity.Anschrift;
import de.ivu.elect.business.person.entity.Kontoverbindung;
import de.ivu.elect.business.person.entity.Personendaten;

@Specializes
public class PersonendatenDefaultFactory extends PersonendatenFactory {

  private static final long serialVersionUID = 1L;

  @Inject
  private transient AnschriftFactory anschriftFactory;

  public PersonendatenDefaultFactory() {
    super();
  }

  @Override
  public void initDefaultAttributes(Personendaten entity) {
    super.initDefaultAttributes(entity);

    entity.setAnschrift(createAnschrift());
    entity.setErreichbarkeitsanschrift(createAnschrift());
    entity.setKontoverbindung(createKontoverbindung());
  }

  private Anschrift createAnschrift() {
    return anschriftFactory.create();
  }

  private Kontoverbindung createKontoverbindung() {
    return new Kontoverbindung();
  }
}
