jalhyd
Version:
JaLHyd, a Javascript Library for Hydraulics
126 lines • 4.73 kB
TypeScript
import { INamedObject, IObjectWithFamily } from "../internal_modules";
import { ParamValues } from "../internal_modules";
/**
* itérateur sur des nombres
*/
export interface INumberIterator extends IterableIterator<number> {
/**
* @return true si il reste des valeurs à parcourir
*/
readonly hasNext: boolean;
/**
* valeur courante cad résultat du précédent appel à next().
* contrairement à next(), on peut l'appeler plusieurs fois sans modifier l'état de l'itérateur
*/
readonly currentValue: number;
/**
* prochaine valeur
*/
next(): IteratorResult<number>;
nextValue(): IteratorResult<number>;
count(): number;
}
/**
* interface implémentée par les objets pouvant posséder/renvoyer un itérateur sur une série de valeurs numériques
*/
export interface IterableValues extends INumberIterator {
/**
* crée un nouvel itérateur sur les valeurs
*/
readonly valuesIterator: INumberIterator;
/**
* true si la série de valeurs a plus d'une valeur
*/
readonly hasMultipleValues: boolean;
/**
* initialise un itérateur interne sur les valeurs implicitement utilisé par hasNext() et next()
*/
initValuesIterator(reverse: boolean): INumberIterator;
}
/**
* objets pouvant avoir un nom et un itérateur sur une série de valeurs numériques
*/
export interface INamedIterableValues extends INamedObject, IObjectWithFamily, IterableValues {
}
/**
* itérateur sur les (ou la) valeurs prises par un ParamValues
*/
export declare class ParamValueIterator implements INumberIterator {
/** paramètre à itérer */
private _param;
/**
* true si les valeurs sont fournies de max à min (ParamValueMode.MINMAX);
* utilisé uniquement par Remous
*/
private _reverse;
/** length to extend the values series to, depending on _param ExtensionStrategy */
private _extendTo;
/**
* if true, in MINMAX mode ensures that max value is returned,
* even if (max - min) is not a multiple of step
*/
private _addLastStep;
/** valeur courante */
private _current;
/**
* index sur les valeurs définies (et non sur les valeurs étendues): en mode LISTE,
* nombre de valeurs actuellement produites; en mode MINMAX, valeur courante (!)
*/
private _index;
/**
* index sur les valeurs étendues (lorsque plusieurs paramètres varient): en mode MINMAX,
* nombre de valeurs actuellement produites, à comparer à this._extendTo; en mode LISTE,
* index de la valeur courante à répéter (!)
*/
private _xindex;
/**
* itérateur local pour étendre les valeurs en mode MINMAX
*/
private _locExIt;
/**
* indicates that the MINMAX iterator has already run once until
* the last value (whether it is aligned or not) was reached
*/
private _minMaxLastValueReached;
constructor(prm: ParamValues, reverse: boolean, extendTo: number, addLastStep?: boolean);
get currentValue(): number;
/**
* Returns the number of elements in the iterator without altering it,
* by counting a copy of the iterator
*/
count(): number;
/**
* Reinits the value iterator
* @param reverse if true, will iterate starting at the end
* @param extendTo if defined, will extend values list until this boundary
* @param addLastStep if true, if (max - min) is not a multiple of step, one more
* iteration will be done return last value (max)
*/
reset(reverse: boolean, extendTo?: number, addLastStep?: boolean): void;
/**
* Same as next(), but sets _currentValue on attached ParamValues; to be
* used with dedicated iterators, for params having multiple links on them
* @see jalhyd#222
*/
nextValue(): IteratorResult<number>;
next(): IteratorResult<number>;
[Symbol.iterator](): IterableIterator<number>;
get hasNext(): boolean;
protected get hasNextWithoutExtension(): boolean;
/**
* Returns true if iterator has at least one more value
* @param ignoreExtension if true, will consider only real values (those that were
* set up), including the possible extraStep, and ignore extended values
*/
protected hasNextValue(ignoreExtension?: boolean): boolean;
/**
* Returns true if last value that is a multiple of step was reached;
* it might still miss the lastStep if required
*/
protected minMaxLastAlignedValueReached(): boolean;
/**
* Returns true if last value was reached in MINMAX mode
*/
protected minMaxLastValueReached(): boolean;
}
//# sourceMappingURL=param-value-iterator.d.ts.map