144822d07d66c65d536f5465fffc83ce69e49c92
[sdc.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. 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 package org.onap.sdc.tosca.datatypes.model;
21
22 import java.util.List;
23 import java.util.Map;
24 import org.onap.sdc.tosca.services.DataModelCloneUtil;
25
26 public class CapabilityDefinition implements Cloneable {
27
28     private String type;
29     private String description;
30     private Map<String, PropertyDefinition> properties;
31     private Map<String, AttributeDefinition> attributes;
32     private List<String> valid_source_types;
33     private Object[] occurrences;
34
35     /**
36      * Constructor.
37      */
38     public CapabilityDefinition() {
39         occurrences = new Object[2];
40         occurrences[0] = 1;
41         occurrences[1] = "UNBOUNDED";
42     }
43
44     public String getType() {
45         return type;
46     }
47
48     public void setType(String type) {
49         this.type = type;
50     }
51
52     public String getDescription() {
53         return description;
54     }
55
56     public void setDescription(String description) {
57         this.description = description;
58     }
59
60     public Map<String, PropertyDefinition> getProperties() {
61         return properties;
62     }
63
64     public void setProperties(Map<String, PropertyDefinition> properties) {
65         this.properties = properties;
66     }
67
68     public Map<String, AttributeDefinition> getAttributes() {
69         return attributes;
70     }
71
72     public void setAttributes(Map<String, AttributeDefinition> attributes) {
73         this.attributes = attributes;
74     }
75
76     public List<String> getValid_source_types() {
77         return valid_source_types;
78     }
79
80     public void setValid_source_types(List<String> valid_source_types) {
81         this.valid_source_types = valid_source_types;
82     }
83
84     public Object[] getOccurrences() {
85         return occurrences;
86     }
87
88     public void setOccurrences(Object[] occurrences) {
89         this.occurrences = occurrences;
90     }
91
92     @Override
93     public CapabilityDefinition clone() {
94         CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
95         capabilityDefinition.setOccurrences(new Object[]{this.getOccurrences()[0], this.getOccurrences()[1]});
96         capabilityDefinition.setProperties(DataModelCloneUtil.clonePropertyDefinitions(this.getProperties()));
97         capabilityDefinition.setType(this.getType());
98         capabilityDefinition.setAttributes(DataModelCloneUtil.cloneAttributeDefinitions(this.getAttributes()));
99         capabilityDefinition.setDescription(this.getDescription());
100         capabilityDefinition.setValid_source_types(DataModelCloneUtil.cloneListString(this.getValid_source_types()));
101         return capabilityDefinition;
102     }
103 }