Update schema ingest library call schema service
[aai/aai-common.git] / aai-schema-ingest / src / main / java / org / onap / aai / setup / SchemaVersions.java
index 2205b14..028ebde 100644 (file)
@@ -2,13 +2,13 @@
  * ============LICENSE_START=======================================================
  * org.onap.aai
  * ================================================================================
- * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-18 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- *    http://www.apache.org/licenses/LICENSE-2.0
+ *   http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
@@ -25,7 +25,6 @@ import org.springframework.context.annotation.PropertySource;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.PostConstruct;
-import javax.xml.validation.Schema;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -36,124 +35,99 @@ public class SchemaVersions {
 
     @Value("#{'${schema.version.list}'.split(',')}")
     private List<String> apiVersions;
-
     @Value("${schema.version.api.default}")
     private String defaultApiVersion;
-
     @Value("${schema.version.edge.label.start}")
     private String edgeLabelStartVersion;
-
     @Value("${schema.version.depth.start}")
     private String depthStartVersion;
-
     @Value("${schema.version.app.root.start}")
     private String appRootStartVersion;
-
     @Value("${schema.version.related.link.start}")
     private String relatedLinkStartVersion;
-
     @Value("${schema.version.namespace.change.start}")
-    private String namespaceChangeStartVersion;
 
-    private List<SchemaVersion> versions;
-
-    private SchemaVersion edgeLabelVersion;
-    private SchemaVersion defaultVersion;
-    private SchemaVersion depthVersion;
-    private SchemaVersion appRootVersion;
-    private SchemaVersion relatedLinkVersion;
-    private SchemaVersion namespaceChangeVersion;
+    protected String namespaceChangeStartVersion;
+    protected List<SchemaVersion> versionsValue;
+    protected SchemaVersion edgeLabelVersionValue;
+    protected SchemaVersion defaultVersionValue;
+    protected SchemaVersion depthVersionValue;
+    protected SchemaVersion appRootVersionValue;
+    protected SchemaVersion relatedLinkVersionValue;
+    protected SchemaVersion namespaceChangeVersionValue;
 
     @PostConstruct
     public void initialize() {
-        versions = apiVersions.stream().map(SchemaVersion::new).collect(Collectors.toList());
-
-        edgeLabelVersion       = new SchemaVersion(edgeLabelStartVersion);
-        defaultVersion         = new SchemaVersion(defaultApiVersion);
-        depthVersion           = new SchemaVersion(depthStartVersion);
-        appRootVersion         = new SchemaVersion(appRootStartVersion);
-        relatedLinkVersion     = new SchemaVersion(relatedLinkStartVersion);
-        namespaceChangeVersion = new SchemaVersion(namespaceChangeStartVersion);
-
-        if (!versions.contains(edgeLabelVersion)) {
-            throw new AAISchemaValidationException(
-                    "Invalid, edge label version is not in the api versions list"
+        versionsValue = apiVersions.stream().map(SchemaVersion::new).collect(Collectors.toList());
+        edgeLabelVersionValue = new SchemaVersion(edgeLabelStartVersion);
+        defaultVersionValue = new SchemaVersion(defaultApiVersion);
+        depthVersionValue = new SchemaVersion(depthStartVersion);
+        appRootVersionValue = new SchemaVersion(appRootStartVersion);
+        relatedLinkVersionValue = new SchemaVersion(relatedLinkStartVersion);
+        namespaceChangeVersionValue = new SchemaVersion(namespaceChangeStartVersion);
+        this.validate();
+    }
+
+
+    protected void validate() {
+       String errorMessage = "Invalid, edge label version is not in the api versions list"
                     + ", please check schema.version.list and ensure that the"
-                    + " schema.version.edge.label.start is in that list"
-            );
+                    + " schema.version.edge.label.start is in that list";
+        if (!versionsValue.contains(edgeLabelVersionValue)) {
+            throw new AAISchemaValidationException(errorMessage);
         }
 
-        if (!versions.contains(defaultVersion)) {
-            throw new AAISchemaValidationException(
-                    "Invalid, default version is not in the api versions list"
-                            + ", please check schema.version.list and ensure that the"
-                            + " schema.version.api.default is in that list"
-            );
+        if (!versionsValue.contains(defaultVersionValue)) {
+            throw new AAISchemaValidationException(errorMessage);
         }
 
-        if (!versions.contains(depthVersion)) {
-            throw new AAISchemaValidationException(
-                    "Invalid, depth version is not in the api versions list"
-                            + ", please check schema.version.list and ensure that the"
-                            + " schema.version.depth.start is in that list"
-            );
+        if (!versionsValue.contains(depthVersionValue)) {
+            throw new AAISchemaValidationException(errorMessage);
         }
 
-        if(!versions.contains(appRootVersion)){
-            throw new AAISchemaValidationException(
-                    "Invalid, app root version is not in the api versions list"
-                            + ", please check schema.version.list and ensure that the"
-                            + " schema.version.app.root.start is in that list"
-            );
+        if (!versionsValue.contains(appRootVersionValue)) {
+            throw new AAISchemaValidationException(errorMessage);
         }
 
-        if(!versions.contains(relatedLinkVersion)){
-            throw new AAISchemaValidationException(
-                    "Invalid, related link version is not in the api versions list"
-                            + ", please check schema.version.list and ensure that the"
-                            + " schema.version.related.link.start is in that list"
-            );
+        if (!versionsValue.contains(relatedLinkVersionValue)) {
+            throw new AAISchemaValidationException(errorMessage);
         }
 
-        if(!versions.contains(namespaceChangeVersion)){
-            throw new AAISchemaValidationException(
-                    "Invalid, namespace change start version is not in the api versions list"
-                            + ", please check schema.version.list and ensure that the"
-                            + " schema.version.related.link.start is in that list"
-            );
+        if (!versionsValue.contains(namespaceChangeVersionValue)) {
+            throw new AAISchemaValidationException(errorMessage);
         }
     }
-
+    
     public List<SchemaVersion> getVersions() {
-        return versions;
+        return versionsValue;
     }
 
     public SchemaVersion getEdgeLabelVersion() {
-        return edgeLabelVersion;
+        return edgeLabelVersionValue;
     }
 
     public SchemaVersion getDefaultVersion() {
-        return defaultVersion;
+        return defaultVersionValue;
     }
 
     public SchemaVersion getDepthVersion() {
-        return depthVersion;
+        return depthVersionValue;
     }
 
-    public SchemaVersion getAppRootVersion(){
-        return appRootVersion;
+    public SchemaVersion getAppRootVersion() {
+        return appRootVersionValue;
     }
 
-    public SchemaVersion getRelatedLinkVersion(){
-        return relatedLinkVersion;
+    public SchemaVersion getRelatedLinkVersion() {
+        return relatedLinkVersionValue;
     }
 
     public SchemaVersion getNamespaceChangeVersion() {
-        return namespaceChangeVersion;
+        return namespaceChangeVersionValue;
     }
 
     public void setNamespaceChangeVersion(SchemaVersion namespaceChangeVersion) {
-        this.namespaceChangeVersion = namespaceChangeVersion;
+        this.namespaceChangeVersionValue = namespaceChangeVersion;
     }
 
 }