jalhyd
Version:
JaLHyd, a Javascript Library for Hydraulics
141 lines • 5 kB
TypeScript
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