UNPKG

jalhyd

Version:

JaLHyd, a Javascript Library for Hydraulics

141 lines 5 kB
import { JalhydObject, MessageCode } from "../internal_modules"; import { Nub } from "../internal_modules"; import { cLog } from "../internal_modules"; import { Message } from "../internal_modules"; import { ResultElement } from "../internal_modules"; /** * Result of a calculation. * May contain several ResultElement, if one or more parameters were varying. */ export declare class Result extends JalhydObject { /** calculated parameter (main result) symbol */ private _symbol; /** Nub that produced this result */ private _sourceNub; /** global messages, related to the whole module */ private _globalLog; /** one result element for each iteration (when parameters are varying) */ private _resultElements; /** * @param v value of calculated parameter, or result element, or (usually error) Message * @param sourceNub Nub that generated this result * @param extraValues map of result values by symbol, to add to the first result element */ constructor(v?: number | Message | ResultElement, sourceNub?: Nub, extraValues?: { [key: string]: number; }); get symbol(): string; set symbol(s: string); get sourceNub(): Nub; /** Use with caution, for Solveur for ex. */ updateSourceNub(sn: Nub): void; get globalLog(): cLog; get resultElements(): ResultElement[]; /** * @return the most recent result element */ get resultElement(): ResultElement; /** * sets the most recent result element */ set resultElement(r: ResultElement); addResultElement(r: ResultElement): void; /** * @return true if there is at least 1 result element */ hasResultElements(): boolean; /** * @return true if there are at least 2 result elements */ hasMultipleValues(): boolean; /** * iterator on nth result element in this result and child results * @param index nth result element index */ nthResultElementIterator(index: number): Iterator<ResultElement>; /** * Returns the list of calculated values for the parameter in CALC mode; * if no parameter is variated, the list will contain only 1 value */ getCalculatedValues(): number[]; /** * @returns proxy to .resultElement.ok (false if there is no result element) */ get ok(): boolean; /** adds a message to the global log */ addMessage(m: Message): void; /** merges the given log with the global log */ addLog(l: cLog): void; /** * @return true if global log has at least one message, whatever its level */ hasGlobalLog(): boolean; /** * @return true if union of global log and result elements logs has at least one * message, whatever its level */ hasLog(): boolean; /** * @returns true if globalLog has at least one message with level ERROR */ hasGlobalError(): boolean; /** * @returns true if globalLog has at least one message with level WARNING * @WARNING this is NOT the famous hasGlobalWarming() Al-Gore-ithm ! */ hasGlobalWarning(): boolean; /** * @returns true if at least one of the log messages (general log or result elements logs) * has an error-level message, i.e. true if at least one calculation has failed */ hasErrorMessages(): boolean; /** * @returns true if at least one of the log messages (general log or result elements logs) * has a warning-level message */ hasWarningMessages(): boolean; /** * @returns true if every result element log contains an error (i.e. no calculation has succeeded); * does not inspect global log */ get hasOnlyErrors(): boolean; /** * determine if a message is present in result * @param code message code to find * @param recurs if true, search into nub children */ hasMessage(code: MessageCode, recurs?: boolean): boolean; /** * determine if all messages have the same code * @param code message code to find */ hasOnlyMessage(code: MessageCode): boolean; get uniqueMessageCodes(): MessageCode[]; /** * compute log stats (# of error, warning, info) on all result element */ resultElementsLogStats(n: number, res?: any): any; /** * @return value of the calculated parameter, for the most recent result element */ get vCalc(): number; /** * sets the value of the calculated parameter, for the most recent result element */ set vCalc(r: number); /** * @returns log from the most recent result element * @TODO ambiguous / counter-intuitive : should be renamed */ get log(): cLog; get values(): { [key: string]: number; }; get extraResults(): any; getValue(name: string): number; /** * Removes all values that are not vCalc, from all result elements */ removeExtraResults(): void; } //# sourceMappingURL=result.d.ts.map