package de.ivu.elect.business.praesentation.entity;

public enum PraesentationUploadServiceTyp {

  DEAKTIVIERT {
    @Override
    public boolean isVorhanden() {
      return false;
    }

    @Override
    public boolean isUrlEinblenden() {
      return false;
    }

    @Override
    public boolean isBenutzerkennungPasswortEinblenden() {
      return false;
    }
  },
  FTP {
    @Override
    public boolean isUrlEinblenden() {
      return true;
    }

    @Override
    public boolean isBenutzerkennungPasswortEinblenden() {
      return true;
    }
  },
  FTPS {
    @Override
    public boolean isUrlEinblenden() {
      return true;
    }

    @Override
    public boolean isBenutzerkennungPasswortEinblenden() {
      return true;
    }
  },
  SFTP {
    @Override
    public boolean isUrlEinblenden() {
      return true;
    }

    @Override
    public boolean isBenutzerkennungPasswortEinblenden() {
      return true;
    }
  },
  DIRECTORY {
    @Override
    public boolean isUrlEinblenden() {
      return true;
    }

    @Override
    public boolean isBenutzerkennungPasswortEinblenden() {
      return false;
    }
  },
  DIRECTORY_ZIP {
    @Override
    public boolean isUrlEinblenden() {
      return true;
    }

    @Override
    public boolean isBenutzerkennungPasswortEinblenden() {
      return false;
    }
  },
  ZENTRALE_ABLAGE {
    @Override
    public boolean isUrlEinblenden() {
      return false;
    }

    @Override
    public boolean isBenutzerkennungPasswortEinblenden() {
      return false;
    }

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

  public boolean isVorhanden() {
    return true;
  }

  public abstract boolean isUrlEinblenden();

  public abstract boolean isBenutzerkennungPasswortEinblenden();

  public String getDefaultUrlMessageKey() {
    return "PraesentationUploadServiceTyp." + name() + ".DEFAULT_URL";
  }

  public boolean isZentraleAblage() {
    return false;
  }

}
