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.definitions;
26 public class EdgeSchema {
27 protected String name;
28 protected String source;
29 protected String target;
30 protected Multiplicity multiplicity;
31 protected Map<String, String> annotations;
32 protected Map<String, PropertySchema> properties;
34 public enum Multiplicity {
35 MANY_2_MANY, MANY_2_ONE, ONE_2_MANY, ONE_2_ONE
38 public String getName() {
42 public String getSource() {
46 public String getTarget() {
50 public Multiplicity getMultiplicity() {
54 public PropertySchema getPropertySchema(String propName) {
55 return properties.get(propName.toLowerCase());
58 public Map<String, PropertySchema> getPropertySchemaList() {
62 public String getAnnotationValue(String annotation) {
63 return annotations.get(annotation.toLowerCase());
66 public Map<String, String> getAnnotations() {
71 public int hashCode() {
72 String key = source + target + name;
73 return key.hashCode();
77 public boolean equals(Object obj) {
82 if (obj == null || getClass() != obj.getClass()) {
86 EdgeSchema other = (EdgeSchema) obj;
88 return (source.equals(other.getSource())) && (target.equals(other.getTarget()))
89 && (name.equals(other.getName()));
92 public String toString() {
93 StringBuilder sb = new StringBuilder();
94 sb.append("edge: " + getSource() + " -> " + getTarget() + "\n");
95 sb.append(" type: " + getName() + "\n");
96 sb.append(" multiplicity: " + getMultiplicity() + "\n");
98 sb.append(" annotations: " + "\n");
99 for (Map.Entry<String, String> entry : annotations.entrySet()) {
100 sb.append(" " + entry.getKey() + ": " + entry.getValue() + "\n");
102 sb.append(" properties: " + "\n");
103 for (PropertySchema attrSchema : getPropertySchemaList().values()) {
104 sb.append(attrSchema.toString());
107 return sb.toString();