Add models imports endpoint and persistence structure
[sdc.git] / common / onap-tosca-datatype / src / main / java / org / onap / sdc / tosca / datatypes / model / CapabilityDefinition.java
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 lombok.Getter;
25 import lombok.Setter;
26 import org.onap.sdc.tosca.services.DataModelCloneUtil;
27
28 @Getter
29 @Setter
30 public class CapabilityDefinition implements Cloneable {
31
32     private String type;
33     private String description;
34     private Map<String, PropertyDefinition> properties;
35     private Map<String, AttributeDefinition> attributes;
36     private List<String> valid_source_types;
37     private Object[] occurrences;
38
39     public CapabilityDefinition() {
40         occurrences = new Object[] {1, "UNBOUNDED"};
41     }
42
43     public CapabilityDefinition(final String type) {
44         this.type = type;
45     }
46
47     @Override
48     public CapabilityDefinition clone() {
49         CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
50         capabilityDefinition.setOccurrences(new Object[]{this.getOccurrences()[0], this.getOccurrences()[1]});
51         capabilityDefinition.setProperties(DataModelCloneUtil.clonePropertyDefinitions(this.getProperties()));
52         capabilityDefinition.setType(this.getType());
53         capabilityDefinition.setAttributes(DataModelCloneUtil.cloneAttributeDefinitions(this.getAttributes()));
54         capabilityDefinition.setDescription(this.getDescription());
55         capabilityDefinition.setValid_source_types(DataModelCloneUtil.cloneListString(this.getValid_source_types()));
56         return capabilityDefinition;
57     }
58 }