From 9fe807190647a27db956244e88c8ce521597b634 Mon Sep 17 00:00:00 2001 From: "francois.grand" <francois.grand@irstea.fr> Date: Wed, 27 Jun 2018 11:55:29 +0200 Subject: [PATCH] =?UTF-8?q?=20#45=20IterableValues=20:=20ajout=20de=20la?= =?UTF-8?q?=20propri=C3=A9t=C3=A9=20hasMultipleValues?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/param/param-base.ts | 4 ++++ src/param/param-value-iterator.ts | 8 ++++++++ src/param/param-values.ts | 25 +++++++++++-------------- src/util/result.ts | 10 +++++++++- 4 files changed, 32 insertions(+), 15 deletions(-) diff --git a/src/param/param-base.ts b/src/param/param-base.ts index b9919ce4..d44e0aeb 100644 --- a/src/param/param-base.ts +++ b/src/param/param-base.ts @@ -354,6 +354,10 @@ export class BaseParam extends JalhydObject implements INubReference, NamedItera return this._paramValues.valuesIterator; } + public get hasMultipleValues(): boolean { + return this._paramValues.hasMultipleValues; + } + public get name(): string { return this._symbol; } diff --git a/src/param/param-value-iterator.ts b/src/param/param-value-iterator.ts index 9bc23b86..b94e3095 100644 --- a/src/param/param-value-iterator.ts +++ b/src/param/param-value-iterator.ts @@ -6,7 +6,15 @@ import { INamedObject } from "../jalhyd_object"; * interface implémentée par les objets pouvant renvoyer un itérateur sur une série de valeurs numériques */ export interface IterableValues { + /** + * itérateur sur les valeurs + */ readonly valuesIterator: IterableIterator<number>; + + /** + * true si la série de valeurs a plus d'une valeur + */ + readonly hasMultipleValues: boolean; } /** diff --git a/src/param/param-values.ts b/src/param/param-values.ts index f8e46ff9..903e1b74 100644 --- a/src/param/param-values.ts +++ b/src/param/param-values.ts @@ -278,20 +278,6 @@ export class ParamValues implements INubReference, IterableValues { return this._currentValue.value; } - /** - * @return true si la config actuelle génère plusieurs valeurs - */ - public get hasMultipleValues(): boolean { - const it = this.getValuesIterator(); - let n = 0; - for (const v of it) { - n++; - if (n > 1) - break; - } - return n > 1; - } - // interface INubReference public defineReference(target: IReferencedNub, desc: string) { @@ -342,4 +328,15 @@ export class ParamValues implements INubReference, IterableValues { public get valuesIterator(): IterableIterator<number> { return this.getValuesIterator(); } + + public get hasMultipleValues(): boolean { + const it = this.getValuesIterator(); + let n = 0; + for (const v of it) { + n++; + if (n > 1) + break; + } + return n > 1; + } } diff --git a/src/util/result.ts b/src/util/result.ts index 7b1530b4..5fce9449 100644 --- a/src/util/result.ts +++ b/src/util/result.ts @@ -268,11 +268,15 @@ export class Result extends JalhydObject implements NamedIterableValues { public get valuesIterator(): IterableIterator<number> { const tmp: number[] = []; - for (const re of this.resultElements) + for (const re of this._resultElements) tmp.push(re.vCalc); return tmp[Symbol.iterator](); } + public get hasMultipleValues(): boolean { + return this._resultElements.length > 1; + } + // interface NamedIterableValues pour les résultats complémentaires public getIterableExtraResults(name: string): NamedIterableValues { @@ -318,6 +322,10 @@ export class ExtraResults extends JalhydObject implements NamedIterableValues { return this._values[Symbol.iterator](); } + public get hasMultipleValues(): boolean { + return this._values.length > 1; + } + public get name(): string { return this._name; } -- GitLab