/*
THIS INFRAGISTICS ULTIMATE SOFTWARE LICENSE  AGREEMENT ("AGREEMENT") LOCATED HERE:
https://www.infragistics.com/legal/license/igultimate-la
https://www.infragistics.com/legal/license/igultimate-eula
GOVERNS THE LICENSING, INSTALLATION AND USE OF INFRAGISTICS SOFTWARE. BY DOWNLOADING AND/OR INSTALLING AND USING INFRAGISTICS SOFTWARE:  you are indicating that you have read and understand this Agreement, and agree to be legally bound by it on behalf of the yourself and your company.
*/
import { Base, String_$type, fromEnum, Number_$type, markType } from "./type";
import { List$1 } from "./List$1";
import { CodeGenerationItemBuilderPropertyInfo } from "./CodeGenerationItemBuilderPropertyInfo";
import { Dictionary$2 } from "./Dictionary$2";
import { CodeGeneratingImportManager } from "./CodeGeneratingImportManager";
/**
 * @hidden
 */
export let CodeGeneratingRendererResult = /*@__PURE__*/ (() => {
    class CodeGeneratingRendererResult extends Base {
        constructor() {
            super(...arguments);
            this.n = new List$1(CodeGenerationItemBuilderPropertyInfo.$, 0);
            this._platform = 0;
            this._generationOptions = null;
            this.j = new Dictionary$2(String_$type, List$1.$.specialize(String_$type), 0);
            this.l = new Dictionary$2(String_$type, List$1.$.specialize(CodeGeneratingImportManager.$), 0);
            this.i = new Dictionary$2(String_$type, List$1.$.specialize(String_$type), 0);
            this.g = new Dictionary$2(String_$type, Number_$type, 0);
            this.m = new Dictionary$2(String_$type, String_$type, 0);
            this.k = new Dictionary$2(String_$type, String_$type, 0);
            this.h = new Dictionary$2(String_$type, Number_$type, 0);
        }
        get q() {
            return this.n;
        }
        get platform() {
            return this._platform;
        }
        set platform(a) {
            this._platform = a;
        }
        get generationOptions() {
            return this._generationOptions;
        }
        set generationOptions(a) {
            this._generationOptions = a;
        }
        addContainerResult(a, b) {
            if (!this.j.containsKey(a)) {
                this.j.addItem(a, new List$1(String_$type, 0));
            }
            let c = this.j.item(a);
            c.add(b);
        }
        addImportResult(a, b) {
            if (!this.l.containsKey(a)) {
                this.l.addItem(a, new List$1(CodeGeneratingImportManager.$, 0));
            }
            let c = this.l.item(a);
            c.add(b);
        }
        addContainerNewFileResult(a, b) {
            if (!this.i.containsKey(a)) {
                this.i.addItem(a, new List$1(String_$type, 0));
            }
            let c = this.i.item(a);
            c.add(b);
        }
        getKeys() {
            let a = new List$1(String_$type, 0);
            for (let b of fromEnum(this.j.keys)) {
                a.add(b);
            }
            return a.toArray();
        }
        getImportsKeys() {
            let a = new List$1(String_$type, 0);
            for (let b of fromEnum(this.l.keys)) {
                a.add(b);
            }
            return a.toArray();
        }
        getContentForKey(a) {
            if (!this.j.containsKey(a)) {
                return "";
            }
            let b = this.j.item(a);
            if (b.count == 1) {
                return b._inner[0];
            }
            let c = "";
            for (let d of fromEnum(b)) {
                c += d;
            }
            return c;
        }
        o(a) {
            if (!this.l.containsKey(a)) {
                return null;
            }
            return this.l.item(a);
        }
        r(a) {
            if (!this.g.containsKey(a)) {
                this.g.item(a, 1);
            }
            let b = this.g.item(a);
            let c = a + b;
            this.g.item(a, b + 1);
            return c;
        }
        ab(a) {
            this.n.add(a);
        }
        getNewFiles() {
            let a = new List$1(String_$type, 0);
            for (let b of fromEnum(this.i.keys)) {
                a.add(b);
            }
            return a;
        }
        getNewFileContent(a) {
            let b = this.i.item(a);
            let c = "";
            for (let d of fromEnum(b)) {
                c += d;
            }
            return c;
        }
        defineString(a, b) {
            this.m.item(a, b);
        }
        getStringNames() {
            let a = new List$1(String_$type, 0);
            for (let b of fromEnum(this.m.keys)) {
                a.add(b);
            }
            return a.toArray();
        }
        getString(a) {
            return this.m.item(a);
        }
        trackDescriptionField(a, b) {
            this.k.item(a, b);
        }
        hasDescription(a) {
            return this.k.containsKey(a);
        }
        getDescriptionField(a) {
            return this.k.item(a);
        }
        s(a) {
            let b = 0;
            if (!this.h.containsKey(a)) {
                this.h.addItem(a, b);
            }
            else {
                b = this.h.item(a);
            }
            b++;
            this.h.item(a, b);
            return a + b;
        }
    }
    CodeGeneratingRendererResult.$t = markType(CodeGeneratingRendererResult, 'CodeGeneratingRendererResult');
    return CodeGeneratingRendererResult;
})();
