diff options
Diffstat (limited to 'aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/EdgeRuleValidator.java')
-rw-r--r-- | aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/EdgeRuleValidator.java | 119 |
1 files changed, 60 insertions, 59 deletions
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/EdgeRuleValidator.java b/aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/EdgeRuleValidator.java index 38dcbb7e..4eedaa07 100644 --- a/aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/EdgeRuleValidator.java +++ b/aai-schema-ingest/src/main/java/org/onap/aai/validation/edges/EdgeRuleValidator.java @@ -21,37 +21,37 @@ package org.onap.aai.validation.edges; import com.jayway.jsonpath.DocumentContext; + +import java.util.*; + import org.onap.aai.edges.JsonIngestor; import org.onap.aai.edges.TypeAlphabetizer; import org.onap.aai.edges.enums.EdgeField; - import org.onap.aai.setup.ConfigTranslator; import org.onap.aai.setup.SchemaVersion; import org.onap.aai.validation.SchemaErrorStrategy; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import java.util.*; - /** * Runs all validations against the ingested schema */ @Component public class EdgeRuleValidator { - private Map<SchemaVersion, List<DocumentContext>> versionJsonFilesMap; - private final SchemaErrorStrategy strat; - protected final EdgeFieldsValidationModule fieldValidator; - protected final UniqueLabelValidationModule labelValidator; - protected final SingleContainmentValidationModule containsValidator; - protected final CousinDefaultingValidationModule defaultsValidator; - protected final NodeTypesValidationModule typeValidator; + private Map<SchemaVersion, List<DocumentContext>> versionJsonFilesMap; + private final SchemaErrorStrategy strat; + protected final EdgeFieldsValidationModule fieldValidator; + protected final UniqueLabelValidationModule labelValidator; + protected final SingleContainmentValidationModule containsValidator; + protected final CousinDefaultingValidationModule defaultsValidator; + protected final NodeTypesValidationModule typeValidator; @Autowired public EdgeRuleValidator(ConfigTranslator config, SchemaErrorStrategy strat, - EdgeFieldsValidationModule fieldValidator, UniqueLabelValidationModule labelValidator, - SingleContainmentValidationModule containsValidator, CousinDefaultingValidationModule defaultsValidator, - NodeTypesValidationModule typeValidator) { - //TODO - Need to change this to use files/schemaservice + EdgeFieldsValidationModule fieldValidator, UniqueLabelValidationModule labelValidator, + SingleContainmentValidationModule containsValidator, CousinDefaultingValidationModule defaultsValidator, + NodeTypesValidationModule typeValidator) { + // TODO - Need to change this to use files/schemaservice this.versionJsonFilesMap = new JsonIngestor().ingest(config.getEdgeFiles()); this.strat = strat; this.fieldValidator = fieldValidator; @@ -61,49 +61,50 @@ public class EdgeRuleValidator { this.typeValidator = typeValidator; } - public boolean validate() { - - for (Map.Entry<SchemaVersion, List<DocumentContext>> verEntry : versionJsonFilesMap.entrySet()) { - SchemaVersion v = verEntry.getKey(); - List<DocumentContext> ctxs = verEntry.getValue(); - List<Map<String, String>> rules = collectRules(ctxs); - Set<String> nodeTypePairs = new HashSet<>(); - TypeAlphabetizer alpher = new TypeAlphabetizer(); - - for (Map<String, String> rule : rules) { - handleResult(fieldValidator.verifyFields(rule)); - nodeTypePairs.add(alpher.buildAlphabetizedKey(rule.get(EdgeField.FROM.toString()), rule.get(EdgeField.TO.toString()))); - } - - for (String nodeTypePair : nodeTypePairs) { - handleResult(labelValidator.validate(nodeTypePair, ctxs)); - handleResult(containsValidator.validate(nodeTypePair, ctxs)); - handleResult(defaultsValidator.validate(nodeTypePair, ctxs)); - } - - handleResult(typeValidator.validate(nodeTypePairs, v)); - } - - return strat.isOK(); - } - - private List<Map<String, String>> collectRules(List<DocumentContext> ctxs) { - List<Map<String, String>> rules = new ArrayList<>(); - - for (DocumentContext ctx : ctxs) { - rules.addAll(ctx.read("$.rules.*")); - } - - return rules; - } - - private void handleResult(String result) { - if (!"".equals(result)) { - strat.notifyOnError(result); - } - } - - public String getErrorMsg() { - return strat.getErrorMsg(); - } + public boolean validate() { + + for (Map.Entry<SchemaVersion, List<DocumentContext>> verEntry : versionJsonFilesMap.entrySet()) { + SchemaVersion v = verEntry.getKey(); + List<DocumentContext> ctxs = verEntry.getValue(); + List<Map<String, String>> rules = collectRules(ctxs); + Set<String> nodeTypePairs = new HashSet<>(); + TypeAlphabetizer alpher = new TypeAlphabetizer(); + + for (Map<String, String> rule : rules) { + handleResult(fieldValidator.verifyFields(rule)); + nodeTypePairs.add(alpher.buildAlphabetizedKey(rule.get(EdgeField.FROM.toString()), + rule.get(EdgeField.TO.toString()))); + } + + for (String nodeTypePair : nodeTypePairs) { + handleResult(labelValidator.validate(nodeTypePair, ctxs)); + handleResult(containsValidator.validate(nodeTypePair, ctxs)); + handleResult(defaultsValidator.validate(nodeTypePair, ctxs)); + } + + handleResult(typeValidator.validate(nodeTypePairs, v)); + } + + return strat.isOK(); + } + + private List<Map<String, String>> collectRules(List<DocumentContext> ctxs) { + List<Map<String, String>> rules = new ArrayList<>(); + + for (DocumentContext ctx : ctxs) { + rules.addAll(ctx.read("$.rules.*")); + } + + return rules; + } + + private void handleResult(String result) { + if (!"".equals(result)) { + strat.notifyOnError(result); + } + } + + public String getErrorMsg() { + return strat.getErrorMsg(); + } } |