An error occurred while loading the file. Please try again.
-
Grand Francois authoredc6b23ef2
import { ParamValues } from "../param/param-values";
import { Result } from "..";
/**
* 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 des valeurs
* @param desc : description sous forme symbolique
*/
getReferencedParamValues(desc: string): ParamValues;
/**
* getter du résultat
* @param desc : description sous forme symbolique
*/
getReferencedResult(desc?: string): Result;
/**
* getter du résultat complémentaire
* @param desc : description sous forme symbolique
*/
getReferencedExtraResult(desc: string): any;
/**
* itérateur sur les valeurs
*/
getReferencedValuesIterator(desc: string): IterableIterator<number>;
}
/**
* 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;
/**
* description symbolique de la référence
*/
readonly referenceDesc: string;
/**
* true si la référence a été définie
*/
readonly isReferenceDefined: boolean;
/**
* instance de ParamValues référencée
*/
readonly referencedParamValues: ParamValues;
/**
* instance de Result référencée
*/
readonly referencedResult: Result;
/**
* instance de résultat complémentaire référencée
*/
readonly referencedExtraResult: any;
/**
* itérateur sur les valeurs référencées
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
*/
readonly referencedValuesIterator: IterableIterator<number>;
}
/**
* 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;
}
/**
* description symbolique de la référence
*/
public get referenceDesc(): string {
return this._refDefinition;
}
public get isReferenceDefined(): boolean {
return this._referencedObject !== undefined && this._refDefinition !== undefined;
}
/**
* objet référencé
*/
public get referencedObject(): IReferencedObject {
return this._referencedObject;
}
/**
* instance de ParamValues référencée
*/
public get referencedParamValues(): ParamValues {
if (this._referencedObject === undefined)
return undefined;
return this._referencedObject.getReferencedParamValues(this._refDefinition);
}
/**
* instance de Result référencée
*/
public get referencedResult(): Result {
if (this._referencedObject === undefined)
return undefined;
return this._referencedObject.getReferencedResult(this._refDefinition);
}
/**
* instance de résultat complémentaire référencée
*/
public get referencedExtraResult(): any {
if (this._referencedObject === undefined)
return undefined;
return this._referencedObject.getReferencedExtraResult(this._refDefinition);
}
/**
* itérateur sur les valeurs référencées
*/
public get referencedValuesIterator(): IterableIterator<number> {
return this._referencedObject.getReferencedValuesIterator(this._refDefinition);
}
}