/*
 * SDK Pullenti Lingvo, version 4.33, fabruary 2026. Copyright (c) 2013-2026, Pullenti. All rights reserved. 
 * Non-Commercial Freeware and Commercial Software.
 * This class is generated using the converter Unisharping (www.unisharping.ru) from Pullenti C#.NET project. 
 * The latest version of the code is available on the site www.pullenti.ru
 */

const StringBuilder = require("./../../unisharp/StringBuilder");

const AlgoParam = require("./AlgoParam");

class AlgoParams {
    
    constructor() {
        this.transitiveCoef = 1;
        this.nextModel = 1;
        this.ngLink = 1;
        this.list = 2;
        this.verbPlural = 2;
        this.caseAccord = 1;
        this.morphAccord = 1;
    }
    
    copyFrom(src) {
        this.transitiveCoef = src.transitiveCoef;
        this.nextModel = src.nextModel;
        this.ngLink = src.ngLink;
        this.list = src.list;
        this.verbPlural = src.verbPlural;
        this.caseAccord = src.caseAccord;
        this.morphAccord = src.morphAccord;
    }
    
    copyFromParams() {
        for (const p of AlgoParams.PARAMS) {
            if (p.name === "TransitiveCoef") 
                this.transitiveCoef = p.value;
            else if (p.name === "NextModel") 
                this.nextModel = p.value;
            else if (p.name === "NgLink") 
                this.ngLink = p.value;
            else if (p.name === "List") 
                this.list = p.value;
            else if (p.name === "VerbPlural") 
                this.verbPlural = p.value;
            else if (p.name === "CaseAccord") 
                this.caseAccord = p.value;
            else if (p.name === "MorphAccord") 
                this.morphAccord = p.value;
        }
    }
    
    toString() {
        let tmp = new StringBuilder();
        tmp.append("TransitiveCoef = ").append(this.transitiveCoef).append(" \r\n");
        tmp.append("NextModel = ").append(this.nextModel).append(" \r\n");
        tmp.append("NgLink = ").append(this.ngLink).append(" \r\n");
        tmp.append("List = ").append(this.list).append(" \r\n");
        tmp.append("VerbPlural = ").append(this.verbPlural).append(" \r\n");
        tmp.append("CaseAccord = ").append(this.caseAccord).append(" \r\n");
        tmp.append("MorphAccord = ").append(this.morphAccord).append(" \r\n");
        return tmp.toString();
    }
    
    static static_constructor() {
        AlgoParams.PARAMS = null;
        AlgoParams.PARAMS = new Array();
        AlgoParams.PARAMS.push(AlgoParam._new3788("TransitiveCoef", 1, 4, 1));
        AlgoParams.PARAMS.push(AlgoParam._new3788("NextModel", 1, 4, 1));
        AlgoParams.PARAMS.push(AlgoParam._new3788("NgLink", 1, 3, 1));
        AlgoParams.PARAMS.push(AlgoParam._new3788("List", 1, 4, 1));
        AlgoParams.PARAMS.push(AlgoParam._new3788("VerbPlural", 1, 4, 1));
        AlgoParams.PARAMS.push(AlgoParam._new3788("CaseAccord", 1, 3, 1));
        AlgoParams.PARAMS.push(AlgoParam._new3788("MorphAccord", 1, 3, 1));
    }
}


AlgoParams.static_constructor();

module.exports = AlgoParams