﻿//----------------------
// <auto-generated>
// </auto-generated>
//----------------------







export enum Bar {
    A = "A",
    B = "B",
    C = "C",
}

export enum Bar2 {
    A = 0,
    B = 5,
    C = 6,
}

export class MyClass implements IMyClass {
    bar1!: Bar;
    bar2!: Bar2;
    bar3!: Bar;

    constructor(data?: IMyClass) {
        if (data) {
            for (var property in data) {
                if (data.hasOwnProperty(property))
                    (this as any)[property] = (data as any)[property];
            }
        }
    }

    init(_data?: any) {
        if (_data) {
            this.bar1 = _data["Bar1"];
            this.bar2 = _data["Bar2"];
            this.bar3 = _data["Bar3"];
        }
    }

    static fromJS(data: any): MyClass {
        data = typeof data === 'object' ? data : {};
        let result = new MyClass();
        result.init(data);
        return result;
    }

    toJSON(data?: any) {
        data = typeof data === 'object' ? data : {};
        data["Bar1"] = this.bar1;
        data["Bar2"] = this.bar2;
        data["Bar3"] = this.bar3;
        return data;
    }
}

export interface IMyClass {
    bar1: Bar;
    bar2: Bar2;
    bar3: Bar;
}