
package de.ivu.elect.business.gebietsbaum.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.gebietsbaum.entity.Gebiet;
import de.ivu.elect.business.gebietsbaum.entity.Gebietsart;
import de.ivu.elect.business.person.boundary.PersonendatenFactory;
import de.ivu.elect.business.person.entity.Personendaten;
import de.ivu.elect.jee.entity.customdata.DefaultCustomData;

/**
 *  on 24.06.2015.
 */
@Specializes
public class GebietDefaultFactory extends GebietFactory {

  private static final long serialVersionUID = 1L;

  @Inject
  private PersonendatenFactory personendatenFactory;

  @Inject
  private AnschriftFactory anschriftFactory;

  @Inject
  private GebietCustomDataFactory gebietCustomDataFactory;

  public GebietDefaultFactory() {
    super();
  }

  @Override
  public void initDefaultAttributes(Gebiet gebiet) {
    super.initDefaultAttributes(gebiet);

    gebiet.setAnsprechpartner(createPersonendaten());
    gebiet.setAnschrift(createAnschrift());
    gebiet.setGebietsart(createGebietsart());
  }

  private Gebietsart createGebietsart() {
    return new Gebietsart();
  }

  private Personendaten createPersonendaten() {
    return personendatenFactory.create();
  }

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

  @Override
  public DefaultCustomData createCustomData() {
    return gebietCustomDataFactory.createCustomData();
  }
}
