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.openecomp.sdc.be.datatypes.elements;
23 import org.openecomp.sdc.be.datatypes.tosca.ToscaDataDefinition;
25 import java.io.Serializable;
26 import java.util.List;
30 * Schema allows to create new types that can be used along TOSCA definitions.
32 public class SchemaDefinition extends ToscaDataDefinition implements Serializable {
37 private static final long serialVersionUID = 7117891081909380577L;
39 private String derivedFrom;
40 private List<String> constraints;
41 private Map<String, PropertyDataDefinition> properties;
43 private PropertyDataDefinition property;
47 public SchemaDefinition() {
52 public SchemaDefinition(String derivedFrom, List<String> constraints,
53 Map<String, PropertyDataDefinition> properties) {
56 this.setDerivedFrom(derivedFrom);
57 this.setConstraints( constraints);
58 this.setProperties( properties);
62 public String getDerivedFrom() {
66 public void setProperty(PropertyDataDefinition property) {
67 this.property = property;
70 public PropertyDataDefinition getProperty() {
74 public void setDerivedFrom(String derivedFrom) {
75 this.derivedFrom = derivedFrom;
78 public List<String> getConstraints() {
82 public void setConstraints(List<String> constraints) {
83 this.constraints = constraints;
86 public Map<String, PropertyDataDefinition> getProperties() {
90 public void setProperties(Map<String, PropertyDataDefinition> properties) {
91 this.properties = properties;
94 public void addProperty(String key, PropertyDataDefinition property) {
96 properties.put(key, property);
100 public int hashCode() {
101 final int prime = 31;
103 result = prime * result + ((constraints == null) ? 0 : constraints.hashCode());
104 result = prime * result + ((derivedFrom == null) ? 0 : derivedFrom.hashCode());
105 result = prime * result + ((properties == null) ? 0 : properties.hashCode());
106 result = prime * result + ((property == null) ? 0 : property.hashCode());
111 public boolean equals(Object obj) {
116 if (getClass() != obj.getClass())
118 SchemaDefinition other = (SchemaDefinition) obj;
119 if (constraints == null) {
120 if (other.constraints != null)
122 } else if (!constraints.equals(other.constraints))
124 if (derivedFrom == null) {
125 if (other.derivedFrom != null)
127 } else if (!derivedFrom.equals(other.derivedFrom))
129 if (properties == null) {
130 if (other.properties != null)
132 } else if (!properties.equals(other.properties))
134 if (property == null) {
135 if (other.property != null)
137 } else if (!property.equals(other.property))
143 public String toString() {
144 return "SchemaDefinition [" + "derivedFrom='" + derivedFrom + ", constraints=" + constraints + ", properties="
145 + properties + ", property=" + property + ']';