"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.cast_de_nrw_schule_svws_core_adt_map_AVLMapSubEntrySet = exports.AVLMapSubEntrySet = void 0;
const JavaObject_1 = require("../../../java/lang/JavaObject");
class AVLMapSubEntrySet extends JavaObject_1.JavaObject {
    _sub;
    /**
     * Erstellt ein neues SubEntrySet auf die übergebene {@link AVLMap}.
     *
     * @param sub Die {@link AVLMapSubMap} auf der operiert wird.
     */
    constructor(sub) {
        super();
        this._sub = sub;
    }
    toString() {
        return this._sub.toString();
    }
    size() {
        return this._sub.size();
    }
    isEmpty() {
        return this._sub.isEmpty();
    }
    contains(o) {
        return this._sub.bcContainsEntry(o);
    }
    iterator() {
        return this._sub.bcGetSubEntrySetIterator();
    }
    /**
     * Implementation for method overloads of 'toArray'
     */
    toArray(__param0) {
        if ((typeof __param0 === "undefined")) {
            return this._sub.bcGetArrayListOfEntries().toArray();
        }
        else if (((typeof __param0 !== "undefined") && Array.isArray(__param0))) {
            let a = __param0;
            return this._sub.bcGetArrayListOfEntries().toArray(a);
        }
        else
            throw new Error('invalid method overload');
    }
    add(e) {
        return this._sub.bcAddEntryReturnBool(e);
    }
    remove(o) {
        return this._sub.bcRemoveEntry(o);
    }
    containsAll(c) {
        return this._sub.bcContainsAllEntries(c);
    }
    addAll(c) {
        return this._sub.bcAddAllEntries(c);
    }
    retainAll(c) {
        return this._sub.bcRetainAllEntries(c);
    }
    removeAll(c) {
        return this._sub.bcRemoveAllEntries(c);
    }
    clear() {
        this._sub.clear();
    }
    isTranspiledInstanceOf(name) {
        return ['java.util.Collection', 'java.util.Set', 'java.lang.Iterable', 'de.nrw.schule.svws.core.adt.map.AVLMapSubEntrySet'].includes(name);
    }
    [Symbol.iterator]() {
        let iter = this.iterator();
        const result = {
            next() {
                if (iter.hasNext())
                    return { value: iter.next(), done: false };
                return { value: null, done: true };
            }
        };
        return result;
    }
}
exports.AVLMapSubEntrySet = AVLMapSubEntrySet;
function cast_de_nrw_schule_svws_core_adt_map_AVLMapSubEntrySet(obj) {
    return obj;
}
exports.cast_de_nrw_schule_svws_core_adt_map_AVLMapSubEntrySet = cast_de_nrw_schule_svws_core_adt_map_AVLMapSubEntrySet;
//# sourceMappingURL=AVLMapSubEntrySet.js.map