
package de.ivu.elect.business.veranstaltung.control;

import java.util.Collections;

import de.ivu.elect.business.veranstaltung.entity.Teilnahme;

/**
 * Simpelste Variante, eine Person in der Datenbank zu finden: sie ist schon persistent.
 */
public class TeilnahmePersonendatenPersistentFinder implements TeilnahmePersonendatenFinder {

  private final boolean teilnahmePersonendatenSindBereitsPersistent;

  public TeilnahmePersonendatenPersistentFinder(TeilnahmeExchangeContext context) {
    super();

    this.teilnahmePersonendatenSindBereitsPersistent = context.isTeilnahmePersonendatenSindBereitsPersistent();
  }

  @Override
  public Result validatePersonendatenInDb(Teilnahme teilnahmeInDatei) {
    if (teilnahmePersonendatenSindBereitsPersistent) {
      // HINT: Warnungen in der Validierung deaktivieren, denn wir werden diese Personendaten finden.
      return new ValidateResult(1L);
    }

    return new ValidateResult(0L);
  }

  @Override
  public Result findPersonendatenInDb(Teilnahme teilnahmeInDatei) {
    if (teilnahmeInDatei.getPersonendaten().isPersistent()) {
      return new FindResult(Collections.singleton(teilnahmeInDatei.getPersonendaten()));
    }

    return new FindResult();
  }
}
