2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright © 2019 AT&T Intellectual Property. All rights reserved.
6 * Copyright © 2019 Amdocs
7 * ================================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END=========================================================
22 package org.onap.aai.schemaif.json.definitions;
24 import com.google.gson.Gson;
25 import com.google.gson.GsonBuilder;
27 import java.util.List;
30 import org.onap.aai.schemaif.SchemaProviderException;
32 public class JsonVertexSchema {
33 private static final Gson gson = new GsonBuilder().create();
36 private String description;
37 private List<JsonPropertySchema> properties;
38 private Map<String, String> annotations;
40 public String getName() {
44 public void setName(String name) {
48 public String getDescription() {
52 public void setDescription(String description) {
53 this.description = description;
56 public List<JsonPropertySchema> getProperties() {
60 public void setProperties(List<JsonPropertySchema> properties) {
61 this.properties = properties;
64 public Map<String, String> getAnnotations() {
68 public void setAnnotations(Map<String, String> annotations) {
69 this.annotations = annotations;
72 public void validate() throws SchemaProviderException {
73 if ((getName() == null) || (getName().isEmpty())) {
74 throw new SchemaProviderException("Node definition missing a name");
77 if (getProperties() != null) {
78 for (JsonPropertySchema propSchema : getProperties()) {
79 propSchema.validate();
84 public String toJson() {
85 return gson.toJson(this);
88 public static JsonVertexSchema fromJson(String json) {
89 return gson.fromJson(json, JsonVertexSchema.class);
93 public String toString() {
94 return "JsonVertexSchema [name=" + name + ", description=" + description + ", properties=" + properties
95 + ", annotations=" + annotations + "]";
99 public int hashCode() {
100 final int prime = 31;
102 result = prime * result + ((annotations == null) ? 0 : annotations.hashCode());
103 result = prime * result + ((description == null) ? 0 : description.hashCode());
104 result = prime * result + ((name == null) ? 0 : name.hashCode());
105 result = prime * result + ((properties == null) ? 0 : properties.hashCode());
110 public boolean equals(Object obj) {
115 if (getClass() != obj.getClass())
117 JsonVertexSchema other = (JsonVertexSchema) obj;
118 if (annotations == null) {
119 if (other.annotations != null)
121 } else if (!annotations.equals(other.annotations))
123 if (description == null) {
124 if (other.description != null)
126 } else if (!description.equals(other.description))
129 if (other.name != null)
131 } else if (!name.equals(other.name))
133 if (properties == null) {
134 if (other.properties != null)
136 } else if (!properties.equals(other.properties))