diff --git a/src/param/param-values.ts b/src/param/param-values.ts index d4e55170651879ea2e4e7a56ffe285d03e1a3a33..62d132ba666f730aec92977eab55e5a1f088b545 100644 --- a/src/param/param-values.ts +++ b/src/param/param-values.ts @@ -51,6 +51,7 @@ export class ParamValueIterator implements IterableIterator<number> { private _config: number; constructor(prm: ParamValues, reverse: boolean = false) { + prm.check(); this._param = prm; this.reset(reverse) } @@ -246,6 +247,37 @@ export class ParamValues { throw new Error(`ParamValues : mode de valeurs ${ParamValueMode[expected]} incorrect`); } + public check() { + switch (this._valueMode) { + case ParamValueMode.SINGLE: + if (!this._singleValue.isDefined) + throw new Error(`ParamValues : valeur fixe non définie`); + break; + + case ParamValueMode.MINMAX: + if (this._minValue == undefined) + throw new Error(`ParamValues : valeur min non définie`); + if (this._maxValue == undefined) + throw new Error(`ParamValues : valeur max non définie`); + if (this._stepValue == undefined) + throw new Error(`ParamValues : valeur du pas non définie`); + if (this._minValue > this._maxValue) + throw new Error(`ParamValues : min > max`); + break; + + case ParamValueMode.LISTE: + if (this._valueList == undefined) + throw new Error(`ParamValues : liste de valeurs non définie`); + break; + + case ParamValueMode.CALCUL: + break; + + default: + throw new Error(`ParamValues : mode de valeurs ${ParamValueMode[this._valueMode]} incorrect`); + } + } + public get singleValue() { return this._singleValue.value; }