diff options
Diffstat (limited to 'catalog-ui/src/app/models/tosca-concat-function.ts')
-rw-r--r-- | catalog-ui/src/app/models/tosca-concat-function.ts | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/catalog-ui/src/app/models/tosca-concat-function.ts b/catalog-ui/src/app/models/tosca-concat-function.ts index 9656d8ddb9..74fe7f6793 100644 --- a/catalog-ui/src/app/models/tosca-concat-function.ts +++ b/catalog-ui/src/app/models/tosca-concat-function.ts @@ -22,6 +22,9 @@ import {ToscaFunction} from "./tosca-function"; import {ToscaFunctionType} from "./tosca-function-type.enum"; import {ToscaFunctionParameter} from "./tosca-function-parameter"; +import {ToscaGetFunction} from "./tosca-get-function"; +import {YamlFunction} from "./yaml-function"; +import {ToscaStringParameter} from "./tosca-string-parameter"; export class ToscaConcatFunction implements ToscaFunction, ToscaFunctionParameter { type = ToscaFunctionType.CONCAT; @@ -33,6 +36,39 @@ export class ToscaConcatFunction implements ToscaFunction, ToscaFunctionParamete return; } this.value = toscaConcatFunction.value; + if (toscaConcatFunction.parameters) { + toscaConcatFunction.parameters.forEach(parameter => { + switch (parameter.type) { + case ToscaFunctionType.GET_INPUT: + case ToscaFunctionType.GET_ATTRIBUTE: + case ToscaFunctionType.GET_PROPERTY: + this.parameters.push(new ToscaGetFunction(<ToscaGetFunction>parameter)); + break; + case ToscaFunctionType.CONCAT: + this.parameters.push(new ToscaConcatFunction(<ToscaConcatFunction>parameter)); + break; + case ToscaFunctionType.YAML: + this.parameters.push(new YamlFunction(<YamlFunction>parameter)); + break; + case ToscaFunctionType.STRING: + this.parameters.push(new ToscaStringParameter(<ToscaStringParameter>parameter)); + break; + default: + console.error(`Unsupported parameter type "${parameter.type}"`); + this.parameters.push(parameter); + } + }); + } + } + + public buildValueString(): string { + return JSON.stringify(this.buildValueObject()); + } + + public buildValueObject(): Object { + return { + [this.type.toLowerCase()]: this.parameters.map(parameter => parameter.buildValueObject()) + } } }
\ No newline at end of file |