From 0d38a72c022fa93dba0bf052f893e51fb73d3552 Mon Sep 17 00:00:00 2001 From: "andre.schmid" Date: Thu, 8 Sep 2022 18:55:08 +0100 Subject: Support TOSCA functions in Node Capability Filters MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds support to use TOSCA functions as value in the node capability filters. Removes the current capability filter component to reuse, with a few changes, the node property filters component. Fixes problems with the edition and deletion of node capability filters. Change-Id: Ic91242d6cbc24e2ce0f60b84c63e104575bef8a9 Issue-ID: SDC-4173 Signed-off-by: André Schmid --- catalog-ui/src/app/utils/tosca-function-helper.ts | 64 +++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 catalog-ui/src/app/utils/tosca-function-helper.ts (limited to 'catalog-ui/src/app/utils/tosca-function-helper.ts') diff --git a/catalog-ui/src/app/utils/tosca-function-helper.ts b/catalog-ui/src/app/utils/tosca-function-helper.ts new file mode 100644 index 0000000000..714f22ef57 --- /dev/null +++ b/catalog-ui/src/app/utils/tosca-function-helper.ts @@ -0,0 +1,64 @@ +/* + * - + * ============LICENSE_START======================================================= + * Copyright (C) 2022 Nordix Foundation. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +import {ToscaFunctionType} from "../models/tosca-function-type.enum"; +import {ToscaConcatFunction} from "../models/tosca-concat-function"; +import {ToscaGetFunction} from "../models/tosca-get-function"; +import {YamlFunction} from "../models/yaml-function"; +import {ToscaFunction} from "../models/tosca-function"; + +export class ToscaFunctionHelper { + + public static convertObjectToToscaFunction(value: any): ToscaFunction { + if (!value || !this.isValueToscaFunction(value)) { + return undefined; + } + + switch (value.type) { + case ToscaFunctionType.CONCAT: + return new ToscaConcatFunction(value); + case ToscaFunctionType.GET_PROPERTY: + case ToscaFunctionType.GET_INPUT: + case ToscaFunctionType.GET_ATTRIBUTE: + return new ToscaGetFunction(value); + case ToscaFunctionType.YAML: + return new YamlFunction(value); + case ToscaFunctionType.STRING: + return { + type: ToscaFunctionType.STRING, + value: value.value, + buildValueString(): string { + return this.value; + }, + buildValueObject(): Object { + return this.value; + } + }; + default: + return undefined; + } + } + + public static isValueToscaFunction(value: any): boolean { + return value instanceof Object && 'type' in value && (Object).values(ToscaFunctionType).includes(value.type); + } + +} -- cgit 1.2.3-korg