/*
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 { ValueType, Base, typeCast, enumGetBox, markStruct } from "igniteui-angular-core";
import { FormatConditionIcon_$type } from "./FormatConditionIcon";
import { FormatConditionIconSet_$type } from "./FormatConditionIconSet";
import { stringFormat } from "igniteui-angular-core";
/**
 * @hidden
 */
export class IconCriterionInfo extends ValueType {
    constructor(a, ..._rest) {
        super();
        this.a = 0;
        this.b = 0;
        this.i = 0;
        a = (a == void 0) ? 0 : a;
        switch (a) {
            case 0: break;
            case 1:
                {
                    let c = _rest[0];
                    let d = _rest[1];
                    let e = _rest[2];
                    this.a = c;
                    this.b = d;
                    this.i = e;
                }
                break;
        }
    }
    equals(a) {
        if (typeCast(IconCriterionInfo.$, a) !== null) {
            return a.a == this.a && a.b == this.b;
        }
        return false;
    }
    getHashCode() {
        return Base.getHashCodeStatic(this.a) ^ Base.getHashCodeStatic(this.b);
    }
    toString() {
        return stringFormat("Icon: {0}, Set: {1}", enumGetBox(FormatConditionIcon_$type, this.a), enumGetBox(FormatConditionIconSet_$type, this.b));
    }
    static c(a, b) {
        return a.equals(b);
    }
    static d(a, b) {
        if (!a.hasValue) {
            return !b.hasValue;
        }
        else if (!b.hasValue) {
            return false;
        }
        return IconCriterionInfo.c(a.value, b.value);
    }
    static e(a, b) {
        return !(IconCriterionInfo.c(a, b));
    }
    static f(a, b) {
        if (!a.hasValue) {
            return b.hasValue;
        }
        else if (!b.hasValue) {
            return true;
        }
        return IconCriterionInfo.e(a.value, b.value);
    }
}
IconCriterionInfo.$t = markStruct(IconCriterionInfo, 'IconCriterionInfo');
//# sourceMappingURL=IconCriterionInfo.js.map