package de.ivu.elect.presentation.gebietsbaum.shp;

import java.util.Map;

import javax.annotation.Nullable;

public interface ShpFileConfig {

  String EPSG_31468 = "EPSG:31468";

  ShpFileConfig NO_CONFIG = new ShpFileConfig() {

    @Nullable
    @Override
    public String getGebietsartFuerShpUndDBFEintrag(String shpId, String filename, Map<String, String> entriesNachSpaltenname, Map<Integer, String> entriesNachSpaltenidex) {
      return null;
    }

    @Nullable
    @Override
    public String getNummerFuerDBFEintrag(String shpId, String filename, Map<String, String> entriesNachSpaltenname, Map<Integer, String> entriesNachSpaltenindex) {
      return null;
    }

    @Override
    public boolean isReturnGebieteOhneNummer() {
      return true;
    }

    @Override
    public boolean isReturnGebieteOhneGebietsart() {
      return true;
    }
  };

  @Nullable
  String getGebietsartFuerShpUndDBFEintrag(String shpId, String filename, Map<String, String> entriesNachSpaltenname, Map<Integer, String> entriesNachSpaltenidex);

  @Nullable
  String getNummerFuerDBFEintrag(String shpId, String filename, Map<String, String> entriesNachSpaltenname, Map<Integer, String> entriesNachSpaltenindex);

  boolean isReturnGebieteOhneNummer();

  boolean isReturnGebieteOhneGebietsart();

  default String getFallbackReferenzSystem() {
    return EPSG_31468;
  }

  default void debug(String info){
    // nichts zu tun
  }

}