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

import javax.annotation.Nonnull;

import de.ivu.elect.business.entschaedigung.entity.Entschaedigung;
import de.ivu.elect.business.person.entity.PersonendatenArt;

public abstract class AbstractPersonendatenEntschaedigungExportPostProcessor {

  public AbstractPersonendatenEntschaedigungExportPostProcessor() {
    super();
  }

  protected abstract PersonendatenArt getSupportedPersonendatenArt();

  public void onEntschaedigungExported(Entschaedigung entschaedigung, EntschaedigungExchangeContext context) {
    if (entschaedigung != null && entschaedigung.hasPersonendaten() && entschaedigung.usesKriteriumPersonendatenArt(getSupportedPersonendatenArt())) {
      onEntschaedigungExported(entschaedigung);
    }
  }

  protected abstract void onEntschaedigungExported(@Nonnull Entschaedigung entschaedigung);
}
