2 * ============LICENSE_START=======================================================
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
11 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
21 package org.onap.sdc.tosca.datatypes.model;
23 import com.fasterxml.jackson.annotation.JsonProperty;
24 import java.util.Objects;
27 import org.apache.commons.lang3.StringUtils;
31 public class AttributeDefinition implements Cloneable {
34 private String description;
35 @JsonProperty("default")
36 private Object _default;
37 private String status;
38 private EntrySchema entry_schema;
40 public AttributeDefinition() {
41 status = Status.SUPPORTED.getName();
44 public AttributeDefinition(final String type,
45 final String description,
46 final Object _default,
48 final EntrySchema entry_schema) {
50 this.setDescription(description);
51 this.set_default(_default);
52 this.setStatus(StringUtils.isEmpty(status) ? Status.SUPPORTED.getName() : status);
53 this.setEntry_schema(entry_schema);
57 public AttributeDefinition clone() {
58 AttributeDefinition attributeDefinition = new AttributeDefinition();
59 attributeDefinition.setType(this.getType());
60 attributeDefinition.setDescription(this.getDescription());
61 attributeDefinition.set_default(this.get_default());
62 attributeDefinition.setStatus(this.getStatus());
63 attributeDefinition.setEntry_schema(
64 Objects.isNull(this.getEntry_schema()) ? null : this.getEntry_schema().clone());
65 return attributeDefinition;