aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/org/onap/aai/graphgraph/reader/BasicSchemaReader.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/onap/aai/graphgraph/reader/BasicSchemaReader.java')
-rw-r--r--src/main/java/org/onap/aai/graphgraph/reader/BasicSchemaReader.java17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/main/java/org/onap/aai/graphgraph/reader/BasicSchemaReader.java b/src/main/java/org/onap/aai/graphgraph/reader/BasicSchemaReader.java
index 1c58550..b2d766b 100644
--- a/src/main/java/org/onap/aai/graphgraph/reader/BasicSchemaReader.java
+++ b/src/main/java/org/onap/aai/graphgraph/reader/BasicSchemaReader.java
@@ -51,9 +51,14 @@ import org.onap.aai.setup.SchemaVersion;
public class BasicSchemaReader implements SchemaReader {
private Map<String, Introspector> allEntities;
- Graph<String, MetadataEdge> graph = new DefaultDirectedGraph<>(MetadataEdge.class);
+ private Graph<String, MetadataEdge> graph = new DefaultDirectedGraph<>(MetadataEdge.class);
private EdgeIngestor edgeIngestor;
private String version;
+ private List<String> schemaErrors = new LinkedList<>();
+
+ public List<String> getSchemaErrors() {
+ return schemaErrors;
+ }
public BasicSchemaReader(String version) {
this.version = version;
@@ -119,10 +124,20 @@ public class BasicSchemaReader implements SchemaReader {
String[] split = label.split("\\.");
label = split[split.length - 1];
}
+ checkVertexExist(graph, parent);
+ checkVertexExist(graph, child);
+
graph.addEdge(child, parent,
new MetadataEdge(EdgeType.EDGE_RULE.getTypeName(), child, parent, label));
}
+ private void checkVertexExist(Graph<String, MetadataEdge> graph, String vertex) {
+ if (! graph.vertexSet().contains(vertex)) {
+ graph.addVertex(vertex);
+ schemaErrors.add(String.format("Schema is inconsistent, missing node %s", vertex));
+ }
+ }
+
private void addParentChildEdge(String parent, String child, Graph<String, MetadataEdge> graph) {
graph.addEdge(parent, child,
new MetadataEdge(EdgeType.PARENT.getTypeName(), parent, child, EdgeType.PARENT.getTypeName()));