An error occurred while loading the file. Please try again.
-
Grand Francois authoredaf9d17f0
import { ParamValueMode } from "../param/param-values";
/**
* objet (paramètre ou résultat) dont les valeurs sont référençables pour réutilisation
* (d'une calculette sur une autre par ex)
*/
export interface IReferencedObject {
/**
* getter de la (des) valeurs
*/
getReferencedValues(desc: string): number[];
/**
* getter du mode de valeur
*/
getReferencedValueMode(desc: string): ParamValueMode;
}
/**
* référence vers un objet contenant une valeur vers laquelle on crée un lien
*/
export interface IObjectReference {
/**
* définition de la valeur référencée dans l'objet
* @param target objet contenant la valeur qu'on va référencer
* @param desc : description de la valeur pointée sous forme symbolique. Exemples : Q, <n° d'ouvrage>.Z1
*/
defineReference(target: IReferencedObject, desc: string): void;
/**
* true si la référence a été définie
*/
readonly isReferenceDefined: boolean;
/**
* valeurs de l'objet IReferencedObject référencé
*/
readonly referencedValues: number[];
/**
* mode de valeur dans l'objet référencé
*/
readonly referencedValueMode: ParamValueMode;
}
/**
* implémentation par défaut de IObjectReference
*/
export class ObjectReference implements IObjectReference {
private _referencedObject: IReferencedObject;
private _refDefinition: string;
public defineReference(target: IReferencedObject, desc: string) {
this._referencedObject = target;
this._refDefinition = desc;
}
public get isReferenceDefined(): boolean {
return this._referencedObject !== undefined && this._refDefinition !== undefined;
}
/**
* objet référencé
*/
public get referencedObject(): IReferencedObject {
return this._referencedObject;
}
717273747576777879808182838485
/**
* valeurs dans l'objet référencé
*/
public get referencedValues(): number[] {
return this._referencedObject.getReferencedValues(this._refDefinition);
}
/**
* mode de valeur dans l'objet référencé
*/
public get referencedValueMode(): ParamValueMode {
return this._referencedObject.getReferencedValueMode(this._refDefinition);
}
}