62f6a20d5506ff950f9583e854f887ed2dc558e5
[sdc.git] /
1 /*
2  * Copyright © 2016-2018 European Support Limited
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package org.onap.sdc.tosca.datatypes.model;
18
19 import java.util.Map;
20 import java.util.Objects;
21 import org.onap.sdc.tosca.services.DataModelCloneUtil;
22
23 public class OperationDefinitionTemplate extends OperationDefinition {
24
25     private Implementation implementation;
26     private Map<String, Object> inputs;
27
28     public Implementation getImplementation() {
29         return implementation;
30     }
31
32     public void setImplementation(Implementation implementation) {
33         this.implementation = implementation;
34     }
35
36     public Map<String, Object> getInputs() {
37         return inputs;
38     }
39
40     public void setInputs(Map<String, Object> inputs) {
41         this.inputs = inputs;
42     }
43
44     @Override
45     public boolean equals(Object o) {
46         if (this == o) {
47             return true;
48         }
49         if (!(o instanceof OperationDefinitionTemplate)) {
50             return false;
51         }
52         OperationDefinitionTemplate that = (OperationDefinitionTemplate) o;
53         return Objects.equals(implementation, that.implementation) && Objects.equals(inputs, that.inputs);
54     }
55
56     @Override
57     public int hashCode() {
58
59         return Objects.hash(implementation, inputs);
60     }
61
62     @Override
63     public OperationDefinitionTemplate clone()  {
64         OperationDefinition operationDefinition = super.clone();
65         OperationDefinitionTemplate operationDefinitionTemplate = new OperationDefinitionTemplate();
66         operationDefinitionTemplate.setDescription(operationDefinition.getDescription());
67         operationDefinitionTemplate.setImplementation(this.getImplementation());
68         operationDefinitionTemplate.setInputs(DataModelCloneUtil.cloneStringObjectMap(this.getInputs()));
69         return operationDefinitionTemplate;
70     }
71 }