From 629837b3f7a282c74604987fd531ff4523f98a0c Mon Sep 17 00:00:00 2001 From: JvD_Ericsson Date: Tue, 18 Jul 2023 11:35:18 +0100 Subject: Backend support for operation milestones with activities Issue-ID: SDC-4577 Signed-off-by: JvD_Ericsson Change-Id: I6a8dab0e48da542424faa017a1dea384ebb2376f --- .../datatypes/elements/ActivityDataDefinition.java | 53 ++++++++++++++++++++++ .../elements/MilestoneDataDefinition.java | 44 ++++++++++++++++++ .../elements/OperationDataDefinition.java | 12 +++++ .../sdc/be/datatypes/enums/ActivityTypeEnum.java | 46 +++++++++++++++++++ .../be/datatypes/enums/JsonPresentationFields.java | 3 ++ .../sdc/be/datatypes/enums/MilestoneTypeEnum.java | 46 +++++++++++++++++++ .../java/org/openecomp/sdc/be/utils/TypeUtils.java | 3 ++ 7 files changed, 207 insertions(+) create mode 100644 common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/ActivityDataDefinition.java create mode 100644 common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/MilestoneDataDefinition.java create mode 100644 common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/ActivityTypeEnum.java create mode 100644 common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/MilestoneTypeEnum.java (limited to 'common-be') diff --git a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/ActivityDataDefinition.java b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/ActivityDataDefinition.java new file mode 100644 index 0000000000..8d76f68a67 --- /dev/null +++ b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/ActivityDataDefinition.java @@ -0,0 +1,53 @@ +/* + * + * ============LICENSE_START======================================================= + * Copyright (C) 2023 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========================================================= + */ + +package org.openecomp.sdc.be.datatypes.elements; + +import java.io.Serializable; +import lombok.NoArgsConstructor; +import org.openecomp.sdc.be.datatypes.enums.JsonPresentationFields; +import org.openecomp.sdc.be.datatypes.tosca.ToscaDataDefinition; + +@NoArgsConstructor +public class ActivityDataDefinition extends ToscaDataDefinition implements Serializable { + + public ActivityDataDefinition(ActivityDataDefinition activity) { + setType(activity.getType()); + setWorkflow(getWorkflow()); + } + + public String getType() { + return (String) getToscaPresentationValue(JsonPresentationFields.TYPE); + } + + public void setType(String type) { + setToscaPresentationValue(JsonPresentationFields.TYPE, type); + } + + public String getWorkflow() { + return (String) getToscaPresentationValue(JsonPresentationFields.OPERATION_ACTIVITIES_WORKFLOW); + } + + public void setWorkflow(String workflow) { + setToscaPresentationValue(JsonPresentationFields.OPERATION_ACTIVITIES_WORKFLOW, workflow); + } + +} diff --git a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/MilestoneDataDefinition.java b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/MilestoneDataDefinition.java new file mode 100644 index 0000000000..78681e1434 --- /dev/null +++ b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/MilestoneDataDefinition.java @@ -0,0 +1,44 @@ +/* + * + * ============LICENSE_START======================================================= + * Copyright (C) 2023 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========================================================= + */ + +package org.openecomp.sdc.be.datatypes.elements; + +import java.io.Serializable; +import lombok.NoArgsConstructor; +import org.openecomp.sdc.be.datatypes.enums.JsonPresentationFields; +import org.openecomp.sdc.be.datatypes.tosca.ToscaDataDefinition; + +@NoArgsConstructor +public class MilestoneDataDefinition extends ToscaDataDefinition implements Serializable { + + public MilestoneDataDefinition(MilestoneDataDefinition milestone) { + setActivities(milestone.getActivities()); + } + + public ListDataDefinition getActivities() { + return (ListDataDefinition) getToscaPresentationValue(JsonPresentationFields.OPERATION_ACTIVITIES); + } + + public void setActivities(ListDataDefinition activities) { + setToscaPresentationValue(JsonPresentationFields.OPERATION_ACTIVITIES, activities); + } + +} diff --git a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/OperationDataDefinition.java b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/OperationDataDefinition.java index f93e41cf51..a4bc7f1e0f 100644 --- a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/OperationDataDefinition.java +++ b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/elements/OperationDataDefinition.java @@ -21,7 +21,9 @@ package org.openecomp.sdc.be.datatypes.elements; import com.fasterxml.jackson.annotation.JsonCreator; +import java.util.Map; import org.openecomp.sdc.be.datatypes.enums.JsonPresentationFields; +import org.openecomp.sdc.be.datatypes.enums.MilestoneTypeEnum; import org.openecomp.sdc.be.datatypes.tosca.ToscaDataDefinition; import java.io.Serializable; @@ -46,6 +48,7 @@ public class OperationDataDefinition extends ToscaDataDefinition implements Seri } public OperationDataDefinition(OperationDataDefinition p) { + setMilestones(p.getMilestones()); setDescription(p.getDescription()); setImplementation(p.getImplementation()); setInputs(p.getInputs()); @@ -59,6 +62,15 @@ public class OperationDataDefinition extends ToscaDataDefinition implements Seri setWorkflowVersion(p.getWorkflowVersion()); } + public void setMilestones(Map milestones) { + setToscaPresentationValue(JsonPresentationFields.OPERATION_MILESTONES, milestones); + } + + public Map getMilestones() { + return (Map ) getToscaPresentationValue( + JsonPresentationFields.OPERATION_MILESTONES); + } + public String getDescription() { return (String) getToscaPresentationValue(JsonPresentationFields.DESCRIPTION); } diff --git a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/ActivityTypeEnum.java b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/ActivityTypeEnum.java new file mode 100644 index 0000000000..b3594f3029 --- /dev/null +++ b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/ActivityTypeEnum.java @@ -0,0 +1,46 @@ +/* + * + * ============LICENSE_START======================================================= + * Copyright (C) 2023 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========================================================= + */ + +package org.openecomp.sdc.be.datatypes.enums; + +import java.util.Optional; +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum ActivityTypeEnum { + DELEGATE("delegate"), + INLINE("inline"), + CALL_OPERATION("call_operation"), + SET_STATE("set_state"); + + private final String value; + + public static Optional getEnum(String name) { + for (ActivityTypeEnum activityType : values()) { + if (activityType.getValue().equals(name)) { + return Optional.of(activityType); + } + } + return Optional.empty(); + } +} diff --git a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/JsonPresentationFields.java b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/JsonPresentationFields.java index 638d23b0bb..c4d22a037f 100644 --- a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/JsonPresentationFields.java +++ b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/JsonPresentationFields.java @@ -257,6 +257,9 @@ public enum JsonPresentationFields { OPERATION_IMPLEMENTATION("implementation", null), OPERATION_INPUTS("inputs", null), OPERATION_OUTPUTS("outputs", null), + OPERATION_MILESTONES("milestones", null), + OPERATION_ACTIVITIES("activities", null), + OPERATION_ACTIVITIES_WORKFLOW("workflow", null), INPUTS("inputs", null), GET_PROPERTY("get_property", null), diff --git a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/MilestoneTypeEnum.java b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/MilestoneTypeEnum.java new file mode 100644 index 0000000000..1fa96b25d5 --- /dev/null +++ b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/enums/MilestoneTypeEnum.java @@ -0,0 +1,46 @@ +/* + * + * ============LICENSE_START======================================================= + * Copyright (C) 2023 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========================================================= + */ + +package org.openecomp.sdc.be.datatypes.enums; + +import java.util.Optional; +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum MilestoneTypeEnum { + ON_ENTRY("on_entry"), + ON_SUCCESS("on_success"), + ON_FAILURE("on_failure"), + ON_TIMEOUT("on_timeout"); + + private final String value; + + public static Optional getEnum(String name) { + for (MilestoneTypeEnum milestoneType : values()) { + if (milestoneType.getValue().equals(name)) { + return Optional.of(milestoneType); + } + } + return Optional.empty(); + } +} diff --git a/common-be/src/main/java/org/openecomp/sdc/be/utils/TypeUtils.java b/common-be/src/main/java/org/openecomp/sdc/be/utils/TypeUtils.java index a7e6975347..d4076aee5c 100644 --- a/common-be/src/main/java/org/openecomp/sdc/be/utils/TypeUtils.java +++ b/common-be/src/main/java/org/openecomp/sdc/be/utils/TypeUtils.java @@ -77,6 +77,9 @@ public class TypeUtils { DATA_TYPES("data_types"), NODE_TYPES("node_types"), POLICY_TYPES("policy_types"), IMPORTS("imports"), //Operations IMPLEMENTATION("implementation"), + MILESTONES("milestones"), + ACTIVITIES("activities"), + WORKFLOW("workflow"), SUBSTITUTION_FILTERS("substitution_filter"), DERIVED_FROM_NAME("derivedFromName"), INTERFACE_TYPES("interface_types"), -- cgit 1.2.3-korg