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

import java.util.Set;

import de.ivu.elect.business.gebietsbaum.entity.Gebiet;
import de.ivu.elect.business.gebietsbaum.entity.GebietTK;
import de.ivu.elect.business.gruppe.entity.Gruppe;
import de.ivu.elect.business.gruppe.entity.GruppeTK;
import de.ivu.elect.business.gruppeimgebiet.entity.GruppeImGebiet;
import de.ivu.elect.business.gruppeimgebiet.entity.GruppeImGebietTK;

public interface GruppeImGebietCache {

  GruppeImGebiet findOrCreate(GruppeImGebiet gruppeImGebiet);

  @Deprecated // Achtung, Attribute der GruppeImGebiet gehen verloren...
  GruppeImGebiet findOrCreate(GruppeImGebietTK gruppeImGebietTk);

  Gebiet getCachedGebiet(GebietTK gebietTK);

  Gruppe getCachedGruppe(GruppeTK gruppeTK);

  boolean isGruppeVorhanden(GruppeTK gruppeTK);

  Gruppe addGruppeToCached(Gruppe gruppe);

  void aktualisierePositionen(Set<GruppeImGebiet> gruppenImGebietAusDatei);
}
