package de.ivu.elect.presentation.hilfe;

import java.util.Locale;

import javax.annotation.Nullable;

/**
 *  on 17.02.2016.
 */
public enum OnlineHilfeSprache {

  DEUTSCH {
    @Override
    public String getOnlineHilfePath() {
      return "";
    }

    @Override
    protected Locale getLocale() {
      return Locale.GERMAN;
    }
  },
  ENGLISCH {
    @Override
    public String getOnlineHilfePath() {
      return "/en";
    }

    @Override
    protected Locale getLocale() {
      return Locale.ENGLISH;
    }
  },
  FRANZOESISCH {
    @Override
    public String getOnlineHilfePath() {
      return "/fr";
    }

    @Override
    protected Locale getLocale() {
      return Locale.FRENCH;
    }
  },
  NIEDELAENDISCH {
    @Override
    public String getOnlineHilfePath() {
      return "/nl";
    }

    @Override
    protected Locale getLocale() {
      return new Locale("nl");
    }
  };

  public abstract String getOnlineHilfePath();

  protected abstract Locale getLocale();

  @Nullable
  public static OnlineHilfeSprache fromLocale(Locale locale) {
    if (locale != null) {
      for (OnlineHilfeSprache sprache : values()) {
        String language = sprache.getLocale().getLanguage();
        if (sprache.getLocale().equals(locale) || language.equalsIgnoreCase(locale.getLanguage())) {
          return sprache;
        }
      }
    }
    return null;
  }

}
