OXM v12 updates 57/28957/1
authorricharv <richard.vondadelszen@amdocs.com>
Tue, 23 Jan 2018 20:53:56 +0000 (15:53 -0500)
committerricharv <richard.vondadelszen@amdocs.com>
Tue, 23 Jan 2018 21:06:55 +0000 (16:06 -0500)
Change-Id: I213472211c24a52f4a6ccc87005739a82cf6b8de

Sync error fixes

Issue-ID: AAI-690
Change-Id: Ibcd1e1abf9e3b79f9f10fea5e67f4bfd5dbc0030
Signed-off-by: richarv <richard.vondadelszen@amdocs.com>
src/main/java/org/onap/aai/sparky/crossentityreference/sync/CrossEntityReferenceSynchronizer.java
src/main/java/org/onap/aai/sparky/sync/entity/IndexableCrossEntityReference.java
src/main/java/org/onap/aai/sparky/viewandinspect/entity/Relationship.java
src/test/java/org/onap/aai/sparky/synchronizer/IndexableCrossEntityReferenceTest.java [new file with mode: 0644]

index c8cef66..0f0cce1 100644 (file)
@@ -485,9 +485,16 @@ public class CrossEntityReferenceSynchronizer extends AbstractEntitySynchronizer
                 if (cerDescriptor != null) {
                   
                   String childEntityType = cerDefinition.getTargetEntityType();
+                  OxmEntityDescriptor childDesciptor = oxmEntityLookup.getEntityDescriptors().get(childEntityType);
                   
-                  List<String> childPrimaryKeyNames = cerDescriptor.getPrimaryKeyAttributeNames();
+                  List<String> childPrimaryKeyNames = null;
                   
+                  if (childDesciptor != null) {
+                    childPrimaryKeyNames = childDesciptor.getPrimaryKeyAttributeNames();
+                  } else {
+                    childPrimaryKeyNames = new ArrayList<String>();
+                  }
+                                
                   List<String> childKeyValues = new ArrayList<String>();
                   NodeUtils.extractFieldValuesFromObject(targetEntityInstance, childPrimaryKeyNames, childKeyValues);
                   
index cef7bfe..5f0fd81 100644 (file)
@@ -26,8 +26,8 @@ import java.util.ArrayList;
 
 import org.onap.aai.sparky.util.NodeUtils;
 
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
 
 
 /**
@@ -38,7 +38,6 @@ public class IndexableCrossEntityReference extends IndexableEntity implements In
 
   protected String crossReferenceEntityValues;
   protected ArrayList<String> crossEntityReferenceCollection = new ArrayList<String>();
-  protected ObjectMapper mapper = new ObjectMapper();
 
   /**
    * Instantiates a new indexable cross entity reference.
@@ -77,6 +76,7 @@ public class IndexableCrossEntityReference extends IndexableEntity implements In
     this.crossReferenceEntityValues = NodeUtils.concatArray(crossEntityReferenceCollection, ";");
   }
 
+  @JsonIgnore // Since this is a "get" we need to JSON ignore otherwise it will be called when converting to JSON
   @Override
   public String getAsJson() throws JsonProcessingException {
 
@@ -90,10 +90,6 @@ public class IndexableCrossEntityReference extends IndexableEntity implements In
         + (crossReferenceEntityValues != null
             ? "crossReferenceEntityValues=" + crossReferenceEntityValues + ", " : "")
         + (crossEntityReferenceCollection != null
-            ? "crossEntityReferenceCollection=" + crossEntityReferenceCollection + ", " : "")
-        + (mapper != null ? "mapper=" + mapper : "") + "]";
+            ? "crossEntityReferenceCollection=" + crossEntityReferenceCollection + ", " : "");
   }
-
-
-
 }
index 439acca..4ebaeec 100644 (file)
@@ -32,6 +32,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 public class Relationship {
 
   protected String relatedTo;
+  protected String relationshipLabel;
   protected String relatedLink;
   protected RelationshipData[] relationshipData;
   protected RelatedToProperty[] relatedToProperty;
@@ -45,6 +46,15 @@ public class Relationship {
     this.relatedTo = relatedTo;
   }
 
+  public String getRelationshipLabel() {
+    return relationshipLabel;
+  }
+
+  @JsonProperty("relationship-label")
+  public void setRelationshipLabel(String relationshipLabel) {
+    this.relationshipLabel = relationshipLabel;
+  }
+  
   public String getRelatedLink() {
     return relatedLink;
   }
@@ -63,8 +73,6 @@ public class Relationship {
     this.relationshipData = relationshipData;
   }
 
-
-
   public RelatedToProperty[] getRelatedToProperty() {
     return relatedToProperty;
   }
@@ -79,11 +87,8 @@ public class Relationship {
    */
   @Override
   public String toString() {
-    return "Relationship [relatedTo=" + relatedTo + ", relatedLink=" + relatedLink
-        + ", relationshipData=" + Arrays.toString(relationshipData) + ", relatedToProperty="
-        + Arrays.toString(relatedToProperty) + "]";
+    return "Relationship [relatedTo=" + relatedTo + ", relationshipLabel=" + relationshipLabel
+        + ", relatedLink=" + relatedLink + ", relationshipData=" + Arrays.toString(relationshipData)
+        + ", relatedToProperty=" + Arrays.toString(relatedToProperty) + "]";
   }
-
-
-
 }
diff --git a/src/test/java/org/onap/aai/sparky/synchronizer/IndexableCrossEntityReferenceTest.java b/src/test/java/org/onap/aai/sparky/synchronizer/IndexableCrossEntityReferenceTest.java
new file mode 100644 (file)
index 0000000..a7c34d0
--- /dev/null
@@ -0,0 +1,72 @@
+/**
+ * ============LICENSE_START===================================================
+ * SPARKY (AAI UI service)
+ * ============================================================================
+ * Copyright © 2017 AT&T Intellectual Property.
+ * Copyright © 2017 Amdocs
+ * 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
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=====================================================
+ *
+ * ECOMP and OpenECOMP are trademarks
+ * and service marks of AT&T Intellectual Property.
+ */
+
+package org.onap.aai.sparky.synchronizer;
+
+import java.io.IOException;
+import java.security.NoSuchAlgorithmException;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.onap.aai.sparky.sync.entity.IndexableCrossEntityReference;
+
+public class IndexableCrossEntityReferenceTest {
+
+  /**
+   * Inits the.
+   *
+   * @throws Exception the exception
+   */
+  @Before
+  public void init() throws Exception {
+
+  }
+
+  /**
+   * Validate basic construction.
+   *
+   * @throws NoSuchAlgorithmException the no such algorithm exception
+   * @throws IOException Signals that an I/O exception has occurred.
+   */
+  @Test
+  public void validateBasicConstruction() throws NoSuchAlgorithmException, IOException {
+
+    IndexableCrossEntityReference icer = new IndexableCrossEntityReference();
+    
+    icer.setId("MyId");
+    icer.setEntityType("Scott");
+    icer.setEntityPrimaryKeyValue("woot");
+    icer.setLink("me.link.yeeeeeaahhhh");
+    
+    icer.addCrossEntityReferenceValue("meow");
+    icer.addCrossEntityReferenceValue("kitty-goes");
+    icer.addCrossEntityReferenceValue("kitty-goes-meow");
+    
+    icer.deriveFields();
+    
+    System.out.println(icer.getAsJson());
+
+  }
+}