Fix Fortify scan violation
[aai/gizmo.git] / src / main / java / org / onap / schema / RelationshipSchemaValidator.java
index 53048be..15b1762 100644 (file)
@@ -1,16 +1,15 @@
 /**
  * ============LICENSE_START=======================================================
- * Gizmo
+ * org.onap.aai
  * ================================================================================
- * Copyright © 2017 AT&T Intellectual Property.
- * Copyright © 2017 Amdocs
- * All rights reserved.
+ * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright © 2017-2018 Amdocs
  * ================================================================================
  * 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,
@@ -18,8 +17,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  * ============LICENSE_END=========================================================
- *
- * ECOMP is a trademark and service mark of AT&T Intellectual Property.
  */
 package org.onap.schema;
 
@@ -31,6 +28,7 @@ import org.onap.crud.entity.Vertex;
 import org.onap.crud.exception.CrudException;
 import org.onap.crud.service.EdgePayload;
 import org.onap.crud.util.CrudServiceUtil;
+import org.onap.schema.OxmModelValidator.Metadata;
 import org.radeox.util.logging.Logger;
 
 import java.util.HashMap;
@@ -51,7 +49,7 @@ public class RelationshipSchemaValidator {
                                                             Map<String, String> filter)
       throws CrudException {
 
-    RelationshipSchema schema = RelationshipSchemaLoader.getSchemaForVersion(version);
+    RelationshipSchema schema = EdgeRulesLoader.getSchemaForVersion(version);
     if (schema == null) {
       throw new CrudException("", Status.NOT_FOUND);
     }
@@ -79,7 +77,7 @@ public class RelationshipSchemaValidator {
 
   public static void validateType(String version, String type) throws CrudException {
 
-    RelationshipSchema schema = RelationshipSchemaLoader.getSchemaForVersion(version);
+    RelationshipSchema schema = EdgeRulesLoader.getSchemaForVersion(version);
     if (!schema.isValidType(type)) {
       throw new CrudException("Invalid " + RelationshipSchema.SCHEMA_RELATIONSHIP_TYPE
           + ": " + type,
@@ -103,7 +101,7 @@ public class RelationshipSchemaValidator {
 
   public static Edge validateIncomingAddPayload(String version, String type, EdgePayload payload)
       throws CrudException {
-    RelationshipSchema schema = RelationshipSchemaLoader.getSchemaForVersion(version);
+    RelationshipSchema schema = EdgeRulesLoader.getSchemaForVersion(version);
 
     try {
 
@@ -153,7 +151,7 @@ public class RelationshipSchemaValidator {
 
   public static Edge validateIncomingPatchPayload(Edge edge, String version, EdgePayload payload)
       throws CrudException {
-    RelationshipSchema schema = RelationshipSchemaLoader.getSchemaForVersion(version);
+    RelationshipSchema schema = EdgeRulesLoader.getSchemaForVersion(version);
 
     try {
       if (payload.getSource() != null) {
@@ -179,6 +177,17 @@ public class RelationshipSchemaValidator {
           throw new CrudException("Target can't be updated", Status.BAD_REQUEST);
         }
       }
+      
+      // Remove the timestamp properties from the existing edge, as these should be managed by Champ.
+      Map<String,Object> existingProps = edge.getProperties();
+      
+      if (existingProps.containsKey(Metadata.CREATED_TS.propertyName())) {
+        existingProps.remove(Metadata.CREATED_TS.propertyName());
+      }
+      if (existingProps.containsKey(Metadata.UPDATED_TS.propertyName())) {
+        existingProps.remove(Metadata.UPDATED_TS.propertyName());
+      }
+      
       // create key based on source:target:relationshipType
 
       String key = edge.getSource().getType() + ":" + edge.getTarget().getType()
@@ -234,7 +243,7 @@ public class RelationshipSchemaValidator {
 
   public static Edge validateIncomingUpdatePayload(Edge edge, String version, EdgePayload payload)
       throws CrudException {
-    RelationshipSchema schema = RelationshipSchemaLoader.getSchemaForVersion(version);
+    RelationshipSchema schema = EdgeRulesLoader.getSchemaForVersion(version);
 
     try {
 
@@ -319,7 +328,7 @@ public class RelationshipSchemaValidator {
         .get()).source(edge.getSource())
         .target(edge.getTarget());
 
-    RelationshipSchema schema = RelationshipSchemaLoader.getSchemaForVersion(version);
+    RelationshipSchema schema = EdgeRulesLoader.getSchemaForVersion(version);
 
     String key = edge.getSource().getType() + ":" + edge.getTarget().getType()
         + ":" + edge.getType();