diff options
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.java | 17 |
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())); |