package de.ivu.elect.business.sitzberechnung.control.util;

import de.ivu.elect.business.wahl.entity.Wahl;

/**
 *  on 24.08.2016.
 */
public abstract class AbstractSitzberechnungCustomDataBuilder<T> {
    protected final SitzberechnungProGebietHelper helper;
    protected final T details;

    public AbstractSitzberechnungCustomDataBuilder(SitzberechnungProGebietHelper helper, T details) {
        this.helper = helper;
        this.details = details;
    }

    protected Wahl getWahl() {
        return helper.getErgebnis().getWahl();
    }

    public void resetCustomData() {
        persistCustomData(null, getWahl());
    }

    public void saveCustomData() {
        persistCustomData(details, getWahl());
    }

    protected abstract void persistCustomData(T details, Wahl wahl);


    protected boolean isVorlaeufig() {
        return helper.getErgebnis().isVorlaeufig();
    }
}
