Commit 3ee88b0a authored by Grand Francois's avatar Grand Francois
Browse files

#45 ParallelStructure : implémentation spécifique de getReferencedObject() et...

 #45 ParallelStructure : implémentation spécifique de getReferencedObject() et utilisation dans getReferencedParamValues()
Showing with 26 additions and 4 deletions
+26 -4
......@@ -6,6 +6,8 @@ import { ParallelStructureParams } from "./parallel_structure_params";
import { Structure } from "./structure";
import { IParamDefinitionIterator, ParamsEquation, ParamsEquationArrayIterator } from "../param/params-equation";
import { ParamValues } from "../param/param-values";
import { NamedIterableValues } from "../param/param-value-iterator";
import { BaseParam } from "../param/param-base";
/**
* Interface pour mémoriser le n° d'ouvrage et le paramètre à calculer
......@@ -275,14 +277,34 @@ export class ParallelStructure extends Nub {
// interface IReferencedNub
public getReferencedObject(desc: string): NamedIterableValues {
try {
// analyse n.X
const i: IStructureVarCalc = this.getStructureVarCalc(desc);
return this.structures[i.index].getParameter(i.prm);
}
catch (e) {
try {
// analyse ouvrage[n].X
const i: IStructureVarCalc = this.getStructureVarCalc2(desc);
return this.structures[i.index].result.getExtraResult(i.prm);
}
catch (e) {
}
}
// pas de la forme n.X ou ouvrage[n].X ou erreur sur n ou X
return super.getReferencedObject(desc);
}
public getReferencedParamValues(desc: string): ParamValues {
try {
// analyse ouvrage[n].X
const i: IStructureVarCalc = this.getStructureVarCalc2(desc);
return this.structures[i.index].getParameter(i.prm).paramValues;
const ro = this.getReferencedObject(desc);
if (ro instanceof BaseParam)
return ro.paramValues;
return undefined;
}
catch (e) {
// pas de la forme ouvrage[n].X ou erreur sur n ou X
// pas de la forme n.X ou ouvrage[n].X ou erreur sur n ou X
const param = this.getParameter(desc);
if (param === undefined)
return undefined;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment