"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.cast_de_nrw_schule_svws_core_types_benutzer_BenutzerKompetenz = exports.BenutzerKompetenz = void 0;
const JavaObject_1 = require("../../../java/lang/JavaObject");
const HashMap_1 = require("../../../java/util/HashMap");
class BenutzerKompetenz extends JavaObject_1.JavaObject {
    /** the name of the enumeration value */
    __name;
    /** the ordinal value for the enumeration value */
    __ordinal;
    /** an array containing all values of this enumeration */
    static all_values_by_ordinal = [];
    /** an array containing all values of this enumeration indexed by their name*/
    static all_values_by_name = new Map();
    static KEINE = new BenutzerKompetenz("KEINE", 0, -2, "keine", "keine");
    static ADMIN = new BenutzerKompetenz("ADMIN", 1, -1, "admin", "admin");
    static SCHUELER_INDIVIDUALDATEN_ANSEHEN = new BenutzerKompetenz("SCHUELER_INDIVIDUALDATEN_ANSEHEN", 2, 11, "Schüler Individualdaten", "Ansehen");
    static SCHUELER_INDIVIDUALDATEN_AENDERN = new BenutzerKompetenz("SCHUELER_INDIVIDUALDATEN_AENDERN", 3, 12, "Schüler Individualdaten", "Ändern");
    static SCHUELER_INDIVIDUALDATEN_LOESCHEN = new BenutzerKompetenz("SCHUELER_INDIVIDUALDATEN_LOESCHEN", 4, 13, "Schüler Individualdaten", "Löschen");
    static SCHUELER_INDIVIDUALDATEN_VERMERKE_AENDERN = new BenutzerKompetenz("SCHUELER_INDIVIDUALDATEN_VERMERKE_AENDERN", 5, 14, "Schüler Individualdaten", "Vermerke ändern");
    static SCHUELER_INDIVIDUALDATEN_KAOA_DATEN_AENDERN = new BenutzerKompetenz("SCHUELER_INDIVIDUALDATEN_KAOA_DATEN_AENDERN", 6, 15, "Schüler Individualdaten", "KAoA-Daten ändern");
    static SCHUELER_LEISTUNGSDATEN_ANSEHEN = new BenutzerKompetenz("SCHUELER_LEISTUNGSDATEN_ANSEHEN", 7, 21, "Schüler Leistungsdaten", "Ansehen");
    static SCHUELER_LEISTUNGSDATEN_FUNKTIONSBEZOGEN_AENDERN = new BenutzerKompetenz("SCHUELER_LEISTUNGSDATEN_FUNKTIONSBEZOGEN_AENDERN", 8, 22, "Schüler Leistungsdaten", "Funktionsbezogen ändern");
    static SCHUELER_LEISTUNGSDATEN_ALLE_AENDERN = new BenutzerKompetenz("SCHUELER_LEISTUNGSDATEN_ALLE_AENDERN", 9, 23, "Schüler Leistungsdaten", "Alle ändern");
    static BERICHTE_ALLE_FORMULARE_DRUCKEN = new BenutzerKompetenz("BERICHTE_ALLE_FORMULARE_DRUCKEN", 10, 31, "Berichte", "Alle Formulare drucken");
    static BERICHTE_STANDARDFORMULARE_DRUCKEN = new BenutzerKompetenz("BERICHTE_STANDARDFORMULARE_DRUCKEN", 11, 32, "Berichte", "Standard-Formulare drucken");
    static BERICHTE_AENDERN = new BenutzerKompetenz("BERICHTE_AENDERN", 12, 33, "Berichte", "Ändern");
    static BERICHTE_LOESCHEN = new BenutzerKompetenz("BERICHTE_LOESCHEN", 13, 34, "Berichte", "Löschen");
    static IMPORT_EXPORT_DATEN_IMPORTIEREN = new BenutzerKompetenz("IMPORT_EXPORT_DATEN_IMPORTIEREN", 14, 41, "Import/Export", "Daten importieren");
    static IMPORT_EXPORT_SCHUELERDATEN_EXPORTIEREN = new BenutzerKompetenz("IMPORT_EXPORT_SCHUELERDATEN_EXPORTIEREN", 15, 42, "Import/Export", "Schülerdaten exportieren");
    static IMPORT_EXPORT_LEHRERDATEN_EXPORTIEREN = new BenutzerKompetenz("IMPORT_EXPORT_LEHRERDATEN_EXPORTIEREN", 16, 43, "Import/Export", "Lehrerdaten exportieren");
    static IMPORT_EXPORT_SCHNITTSTELLE_SCHILD_NRW = new BenutzerKompetenz("IMPORT_EXPORT_SCHNITTSTELLE_SCHILD_NRW", 17, 44, "Import/Export", "Schnittstelle SchILD-NRW verwenden");
    static IMPORT_EXPORT_ACCESS_DB = new BenutzerKompetenz("IMPORT_EXPORT_ACCESS_DB", 18, 45, "Import/Export", "Access-DB-Export durchführen");
    static IMPORT_EXPORT_XML = new BenutzerKompetenz("IMPORT_EXPORT_XML", 19, 46, "Import/Export", "Export über XML-Schnittstellen");
    static SCHULBEZOGENE_DATEN_ANSEHEN = new BenutzerKompetenz("SCHULBEZOGENE_DATEN_ANSEHEN", 20, 61, "Schulbezogene Daten", "Ansehen");
    static SCHULBEZOGENE_DATEN_AENDERN = new BenutzerKompetenz("SCHULBEZOGENE_DATEN_AENDERN", 21, 62, "Schulbezogene Daten", "Ändern");
    static EXTRAS_BACKUP_DURCHFUEHREN = new BenutzerKompetenz("EXTRAS_BACKUP_DURCHFUEHREN", 22, 71, "Extras", "Backup durchführen");
    static EXTRAS_GELOESCHTE_DATEN_ZURUECKHOLEN = new BenutzerKompetenz("EXTRAS_GELOESCHTE_DATEN_ZURUECKHOLEN", 23, 72, "Extras", "Gelöschte Daten zurückholen");
    static EXTRAS_FARBEN_FUER_FACHGRUPPEN_AENDERN = new BenutzerKompetenz("EXTRAS_FARBEN_FUER_FACHGRUPPEN_AENDERN", 24, 73, "Extras", "Farben für Fachgruppen ändern");
    static EXTRAS_DATEN_AUS_KURS42_IMPORTIEREN = new BenutzerKompetenz("EXTRAS_DATEN_AUS_KURS42_IMPORTIEREN", 25, 74, "Extras", "Daten aus Kurs42 importieren");
    static EXTRAS_DATEN_PERSONENGRUPPEN_BEARBEITEN = new BenutzerKompetenz("EXTRAS_DATEN_PERSONENGRUPPEN_BEARBEITEN", 26, 75, "Extras", "Personengruppen bearbeiten");
    static KATALOG_EINTRAEGE_ANSEHEN = new BenutzerKompetenz("KATALOG_EINTRAEGE_ANSEHEN", 27, 81, "Katalog-Einträge", "Ansehen");
    static KATALOG_EINTRAEGE_AENDERN = new BenutzerKompetenz("KATALOG_EINTRAEGE_AENDERN", 28, 82, "Katalog-Einträge", "Ändern");
    static KATALOG_EINTRAEGE_LOESCHEN = new BenutzerKompetenz("KATALOG_EINTRAEGE_LOESCHEN", 29, 83, "Katalog-Einträge", "Löschen");
    static LEHRERDATEN_ANSEHEN = new BenutzerKompetenz("LEHRERDATEN_ANSEHEN", 30, 91, "Lehrerdaten", "Ansehen");
    static LEHRERDATEN_AENDERN = new BenutzerKompetenz("LEHRERDATEN_AENDERN", 31, 92, "Lehrerdaten", "Ändern");
    static LEHRERDATEN_LOESCHEN = new BenutzerKompetenz("LEHRERDATEN_LOESCHEN", 32, 93, "Lehrerdaten", "Löschen");
    static LEHRERDATEN_DETAILDATEN_ANSEHEN = new BenutzerKompetenz("LEHRERDATEN_DETAILDATEN_ANSEHEN", 33, 94, "Lehrerdaten", "Detaildaten ansehen");
    static LEHRERDATEN_DETAILDATEN_AENDERN = new BenutzerKompetenz("LEHRERDATEN_DETAILDATEN_AENDERN", 34, 95, "Lehrerdaten", "Detaildaten ändern");
    static SCHULPFLICHTVERLETZUNG_ANSEHEN = new BenutzerKompetenz("SCHULPFLICHTVERLETZUNG_ANSEHEN", 35, 101, "Verfahren Schulpflichtverletzung", "Ansehen");
    static SCHULPFLICHTVERLETZUNG_AENDERN = new BenutzerKompetenz("SCHULPFLICHTVERLETZUNG_AENDERN", 36, 102, "Verfahren Schulpflichtverletzung", "Ändern");
    static SCHULPFLICHTVERLETZUNG_LOESCHEN = new BenutzerKompetenz("SCHULPFLICHTVERLETZUNG_LOESCHEN", 37, 103, "Verfahren Schulpflichtverletzung", "Löschen");
    static _mapID = new HashMap_1.HashMap();
    id;
    bezeichnungGruppe;
    bezeichnung;
    /**
     * Erzeugt eine neue Benutzerkompetenz für die Aufzählung.
     *
     * @param id                  die ID der Benutzerkompetenz
     * @param bezeichnungGruppe   die Bezeichnung der Gruppe von Kompetenzen zu dieser diese Benutzerkompetenz gehört
     * @param bezeichnung         die Bezeichnung der Benutzerkompetenz
     */
    constructor(name, ordinal, id, bezeichnungGruppe, bezeichnung) {
        super();
        this.__name = name;
        this.__ordinal = ordinal;
        BenutzerKompetenz.all_values_by_ordinal.push(this);
        BenutzerKompetenz.all_values_by_name.set(name, this);
        this.id = id;
        this.bezeichnungGruppe = bezeichnungGruppe;
        this.bezeichnung = bezeichnung;
    }
    /**
     * Gibt eine Map von den IDs der Benutzerkompetenzen auf die zugehörigen Benutzerkompetenzen
     * zurück. Sollte diese noch nicht initialisiert sein, so wird sie initielisiert.
     *
     * @return die Map von den IDs der Benutzerkompetenzen auf die zugehörigen Benutzerkompetenzen
     */
    static getMapID() {
        if (BenutzerKompetenz._mapID.size() === 0)
            for (let p of BenutzerKompetenz.values())
                BenutzerKompetenz._mapID.put(p.id, p);
        return BenutzerKompetenz._mapID;
    }
    /**
     *
     * Gibt die Benutzerkompetenz anhand der übergebenen ID zurück.
     *
     * @param id    die ID der Benutzerkompetenz
     *
     * @return die Benutzerkompetenz oder null, falls die ID fehlerhaft ist
     */
    static getByID(id) {
        return BenutzerKompetenz.getMapID().get(id);
    }
    /**
     * Returns the name of this enumeration value.
     *
     * @returns the name
     */
    name() {
        return this.__name;
    }
    /**
     * Returns the ordinal value of this enumeration value.
     *
     * @returns the ordinal value
     */
    ordinal() {
        return this.__ordinal;
    }
    /**
     * Returns the name of this enumeration value.
     *
     * @returns the name
     */
    toString() {
        return this.__name;
    }
    /**
     * Returns true if this and the other enumeration values are equal.
     *
     * @param other   the other enumeration value
     *
     * @returns true if they are equal and false otherwise
     */
    equals(other) {
        if (!(other instanceof BenutzerKompetenz))
            return false;
        return this === other;
    }
    /**
     * Returns the ordinal value as hashcode, since the ordinal value is unique.
     *
     * @returns the ordinal value as hashcode
     */
    hashCode() {
        return this.__ordinal;
    }
    /**
     * Compares this enumeration value with the other enumeration value by their ordinal value.
     *
     * @param other   the other enumeration value
     *
     * @returns a negative, zero or postive value as this enumeration value is less than, equal to
     *          or greater than the other enumeration value
     */
    compareTo(other) {
        return this.__ordinal - other.__ordinal;
    }
    /**
     * Returns an array with enumeration values.
     *
     * @returns the array with enumeration values
     */
    static values() {
        return [...this.all_values_by_ordinal];
    }
    /**
     * Returns the enumeration value with the specified name.
     *
     * @param name   the name of the enumeration value
     *
     * @returns the enumeration values or null
     */
    static valueOf(name) {
        let tmp = this.all_values_by_name.get(name);
        return (!tmp) ? null : tmp;
    }
    isTranspiledInstanceOf(name) {
        return ['de.nrw.schule.svws.core.types.benutzer.BenutzerKompetenz'].includes(name);
    }
}
exports.BenutzerKompetenz = BenutzerKompetenz;
function cast_de_nrw_schule_svws_core_types_benutzer_BenutzerKompetenz(obj) {
    return obj;
}
exports.cast_de_nrw_schule_svws_core_types_benutzer_BenutzerKompetenz = cast_de_nrw_schule_svws_core_types_benutzer_BenutzerKompetenz;
//# sourceMappingURL=BenutzerKompetenz.js.map