Implement Attributes/Outputs BE (part 1)
[sdc.git] / catalog-model / src / main / java / org / openecomp / sdc / be / model / ComponentInstanceOutput.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2021, Nordix Foundation. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.openecomp.sdc.be.model;
22
23 import java.util.List;
24 import lombok.Getter;
25 import lombok.Setter;
26 import org.openecomp.sdc.be.datatypes.elements.AttributeDataDefinition;
27 import org.openecomp.sdc.be.datatypes.elements.PropertyRule;
28
29 @Getter
30 @Setter
31 public class ComponentInstanceOutput extends OutputDefinition implements IComponentInstanceConnectedElement, IAttributeOutputCommon {
32
33     /**
34      * The unique id of the attribute value on graph
35      */
36     private String valueUniqueUid;
37
38     private List<String> path = null;
39
40     private List<PropertyRule> rules = null;
41     private String componentInstanceName;
42     private String componentInstanceId;
43
44     public ComponentInstanceOutput(AttributeDataDefinition curPropertyDef, String outputId, String value,
45                                    String valueUniqueUid) {
46         super(curPropertyDef);
47         setOutputId(outputId);
48         setValue(value);
49         this.valueUniqueUid = valueUniqueUid;
50     }
51
52     public ComponentInstanceOutput(OutputDefinition pd, String value, String valueUniqueUid) {
53         super(pd);
54
55         setValue(value);
56         this.valueUniqueUid = valueUniqueUid;
57     }
58
59     public ComponentInstanceOutput(AttributeDataDefinition attributeDataDefinition) {
60         super(attributeDataDefinition);
61         if (attributeDataDefinition.getGetOutputValues() != null && !attributeDataDefinition.getGetOutputValues()
62             .isEmpty()) {
63             setOutputId(attributeDataDefinition.getGetOutputValues().get(0).getInputId());
64         }
65     }
66
67     @Override
68     public String toString() {
69         return "ComponentInstanceOutput [ " + super.toString() + " , value=" + getValue() + ", valueUniqueUid = "
70             + valueUniqueUid + " , rules=" + rules + " , path=" + path + " ]";
71     }
72
73 }