"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.cast_de_nrw_schule_svws_core_adt_map_AVLMapSubCollection = exports.AVLMapSubCollection = void 0;
const JavaObject_1 = require("../../../java/lang/JavaObject");
const UnsupportedOperationException_1 = require("../../../java/lang/UnsupportedOperationException");
class AVLMapSubCollection extends JavaObject_1.JavaObject {
    _sub;
    /**
     * Erstellt eine neue Sub-Collection zur übergebenen {@link AVLMapSubMap}.
     *
     * @param sub Die {@link AVLMapSubMap} auf der diese Sub-Collection operiert.
     */
    constructor(sub) {
        super();
        this._sub = sub;
    }
    toString() {
        let s = "";
        for (let value of this)
            s += (s.length === 0 ? "" : ", ") + value;
        return "values = [" + s.valueOf() + "], size = " + this.size() + " --> " + this._sub.toString().valueOf();
    }
    size() {
        return this._sub.size();
    }
    isEmpty() {
        return this._sub.isEmpty();
    }
    contains(o) {
        return this._sub.containsValue(o);
    }
    iterator() {
        return this._sub.bcGetSubCollectionIterator();
    }
    /**
     * Implementation for method overloads of 'toArray'
     */
    toArray(__param0) {
        if ((typeof __param0 === "undefined")) {
            return this._sub.bcGetArrayListOfValues().toArray();
        }
        else if (((typeof __param0 !== "undefined") && Array.isArray(__param0))) {
            let a = __param0;
            return this._sub.bcGetArrayListOfValues().toArray(a);
        }
        else
            throw new Error('invalid method overload');
    }
    add(e) {
        throw new UnsupportedOperationException_1.UnsupportedOperationException();
    }
    remove(o) {
        throw new UnsupportedOperationException_1.UnsupportedOperationException();
    }
    containsAll(c) {
        return this._sub.bcContainsAllValues(c);
    }
    addAll(c) {
        throw new UnsupportedOperationException_1.UnsupportedOperationException();
    }
    removeAll(c) {
        throw new UnsupportedOperationException_1.UnsupportedOperationException();
    }
    retainAll(c) {
        throw new UnsupportedOperationException_1.UnsupportedOperationException();
    }
    clear() {
        this._sub.clear();
    }
    isTranspiledInstanceOf(name) {
        return ['de.nrw.schule.svws.core.adt.map.AVLMapSubCollection', 'java.util.Collection', 'java.lang.Iterable'].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.AVLMapSubCollection = AVLMapSubCollection;
function cast_de_nrw_schule_svws_core_adt_map_AVLMapSubCollection(obj) {
    return obj;
}
exports.cast_de_nrw_schule_svws_core_adt_map_AVLMapSubCollection = cast_de_nrw_schule_svws_core_adt_map_AVLMapSubCollection;
//# sourceMappingURL=AVLMapSubCollection.js.map