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=========================================================
21 package org.onap.aai.schemaif.json.definitions;
23 import java.util.List;
26 import org.onap.aai.schemaif.SchemaProviderException;
28 import com.google.gson.Gson;
29 import com.google.gson.GsonBuilder;
31 public class JsonVertexSchema {
32 private static final Gson gson = new GsonBuilder().create();
35 private String description;
36 private List<JsonPropertySchema> properties;
37 private Map<String,String> annotations;
39 public String getName() {
43 public void setName(String name) {
47 public String getDescription() {
51 public void setDescription(String description) {
52 this.description = description;
55 public List<JsonPropertySchema> getProperties() {
59 public void setProperties(List<JsonPropertySchema> properties) {
60 this.properties = properties;
63 public Map<String,String> getAnnotations() {
67 public void setAnnotations(Map<String,String> annotations) {
68 this.annotations = annotations;
71 public void validate() throws SchemaProviderException {
72 if ( (getName() == null) || (getName().isEmpty()) ) {
73 throw new SchemaProviderException("Node definition missing a name");
76 if (getProperties() != null) {
77 for (JsonPropertySchema propSchema : getProperties()) {
78 propSchema.validate();
83 public String toJson() {
84 return gson.toJson(this);
87 public static JsonVertexSchema fromJson(String json) {
88 return gson.fromJson(json, JsonVertexSchema.class);
92 public String toString() {
93 return "JsonVertexSchema [name=" + name + ", description=" + description + ", properties="
94 + properties + ", annotations=" + annotations + "]";
98 public int hashCode() {
101 result = prime * result + ((annotations == null) ? 0 : annotations.hashCode());
102 result = prime * result + ((description == null) ? 0 : description.hashCode());
103 result = prime * result + ((name == null) ? 0 : name.hashCode());
104 result = prime * result + ((properties == null) ? 0 : properties.hashCode());
109 public boolean equals(Object obj) {
114 if (getClass() != obj.getClass())
116 JsonVertexSchema other = (JsonVertexSchema) obj;
117 if (annotations == null) {
118 if (other.annotations != null)
120 } else if (!annotations.equals(other.annotations))
122 if (description == null) {
123 if (other.description != null)
125 } else if (!description.equals(other.description))
128 if (other.name != null)
130 } else if (!name.equals(other.name))
132 if (properties == null) {
133 if (other.properties != null)
135 } else if (!properties.equals(other.properties))