aboutsummaryrefslogtreecommitdiffstats
path: root/catalog-ui/src/app/utils
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-ui/src/app/utils')
-rw-r--r--catalog-ui/src/app/utils/filter-constraint-helper.ts83
-rw-r--r--catalog-ui/src/app/utils/tosca-function-helper.ts64
2 files changed, 106 insertions, 41 deletions
diff --git a/catalog-ui/src/app/utils/filter-constraint-helper.ts b/catalog-ui/src/app/utils/filter-constraint-helper.ts
index bdb3f9ec7a..f1207084a7 100644
--- a/catalog-ui/src/app/utils/filter-constraint-helper.ts
+++ b/catalog-ui/src/app/utils/filter-constraint-helper.ts
@@ -1,37 +1,42 @@
+/*
+ * -
+ * ============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 {FilterConstraint} from "../models/filter-constraint";
-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 {CapabilityFilterConstraint} from "../models/capability-filter-constraint";
+import {ToscaFunctionHelper} from "./tosca-function-helper";
export class FilterConstraintHelper {
- public static buildFilterConstraintLabel(constraint: FilterConstraint | CapabilityFilterConstraint): string {
+ public static buildFilterConstraintLabel(constraint: FilterConstraint): string {
let value;
- if (this.isValueToscaFunction(constraint.value)) {
- switch (constraint.value.type) {
- case ToscaFunctionType.CONCAT:
- value = new ToscaConcatFunction(constraint.value).buildValueString();
- break;
- case ToscaFunctionType.GET_PROPERTY:
- case ToscaFunctionType.GET_INPUT:
- case ToscaFunctionType.GET_ATTRIBUTE:
- value = new ToscaGetFunction(constraint.value).buildValueString();
- break;
- case ToscaFunctionType.YAML:
- value = new YamlFunction(constraint.value).buildValueString();
- break;
- case ToscaFunctionType.STRING:
- value = constraint.value.value;
- break;
- default:
- value = JSON.stringify(constraint.value, null, 4);
+ if (ToscaFunctionHelper.isValueToscaFunction(constraint.value)) {
+ const toscaFunction = ToscaFunctionHelper.convertObjectToToscaFunction(constraint.value);
+ if (toscaFunction) {
+ value = toscaFunction.buildValueString();
+ } else {
+ value = JSON.stringify(constraint.value, null, 4);
}
} else {
value = JSON.stringify(constraint.value, null, 4);
}
- if (constraint instanceof CapabilityFilterConstraint) {
+ if (constraint.capabilityName) {
return `${constraint.capabilityName}: ${constraint.servicePropertyName} ${this.convertToSymbol(constraint.constraintOperator)} ${value}`;
}
@@ -40,25 +45,21 @@ export class FilterConstraintHelper {
public static convertToSymbol(constraintOperator: string) {
switch (constraintOperator) {
- case OPERATOR_TYPES.LESS_THAN: return '<';
- case OPERATOR_TYPES.EQUAL: return '=';
- case OPERATOR_TYPES.GREATER_THAN: return '>';
- case OPERATOR_TYPES.GREATER_OR_EQUAL: return '>=';
- case OPERATOR_TYPES.LESS_OR_EQUAL: return '<=';
+ case ConstraintOperatorType.LESS_THAN: return '<';
+ case ConstraintOperatorType.EQUAL: return '=';
+ case ConstraintOperatorType.GREATER_THAN: return '>';
+ case ConstraintOperatorType.GREATER_OR_EQUAL: return '>=';
+ case ConstraintOperatorType.LESS_OR_EQUAL: return '<=';
}
}
- private static isValueToscaFunction(value: any): boolean {
- return value instanceof Object && 'type' in value && (<any>Object).values(ToscaFunctionType).includes(value.type);
- }
-
}
-export const OPERATOR_TYPES = {
- EQUAL: 'equal',
- GREATER_THAN: 'greater_than',
- LESS_THAN: 'less_than',
- GREATER_OR_EQUAL: 'greater_or_equal',
- LESS_OR_EQUAL: 'less_or_equal'
-};
+export enum ConstraintOperatorType {
+ EQUAL = 'equal',
+ GREATER_THAN = 'greater_than',
+ LESS_THAN = 'less_than',
+ GREATER_OR_EQUAL = 'greater_or_equal',
+ LESS_OR_EQUAL = 'less_or_equal'
+}
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 <ToscaFunction> {
+ 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 && (<any>Object).values(ToscaFunctionType).includes(value.type);
+ }
+
+}