summaryrefslogtreecommitdiffstats
path: root/aai-core/src/main
diff options
context:
space:
mode:
authorHarish Venkata Kajur <vk250x@att.com>2018-12-28 17:25:05 -0500
committerHarish Venkata Kajur <vk250x@att.com>2018-12-28 17:30:03 -0500
commit69c5de8f6d5f4f05e152094bc1e40c03922dcd72 (patch)
treeb71cc7efe674b24b393ec4a79b2400483d9f5042 /aai-core/src/main
parente42c7cf9d25b5a5ec3e3bf2cbb5e04441ec45359 (diff)
Update DBSerializer for relationships retrieving
Enhance the code for how the db serializer works when it comes to dealing with the relationships For a particular vertex, when retrieving its relationship vertexes it doesn't need to get all the properties of the relationship vertex as it only cares about the aai-uri and named properties so only partially retrieving those props that is needed for relationships Issue-ID: AAI-1987 Change-Id: I1440c561d187ff180a599a3f52ac5c8715d5c8e3 Signed-off-by: Harish Venkata Kajur <vk250x@att.com>
Diffstat (limited to 'aai-core/src/main')
-rw-r--r--aai-core/src/main/java/org/onap/aai/serialization/db/DBSerializer.java52
1 files changed, 24 insertions, 28 deletions
diff --git a/aai-core/src/main/java/org/onap/aai/serialization/db/DBSerializer.java b/aai-core/src/main/java/org/onap/aai/serialization/db/DBSerializer.java
index 9d107b1f..95582b98 100644
--- a/aai-core/src/main/java/org/onap/aai/serialization/db/DBSerializer.java
+++ b/aai-core/src/main/java/org/onap/aai/serialization/db/DBSerializer.java
@@ -928,16 +928,7 @@ public class DBSerializer {
* @throws SecurityException the security exception
*/
private void copySimpleProperty(String property, Introspector obj, Vertex v) {
-
- final Map<PropertyMetadata, String> metadata = obj.getPropertyMetadata(property);
- String dbPropertyName = property;
-
- if (metadata.containsKey(PropertyMetadata.DB_ALIAS)) {
- dbPropertyName = metadata.get(PropertyMetadata.DB_ALIAS);
- }
-
-
- final Object temp = v.<Object>property(dbPropertyName).orElse(null);
+ final Object temp = getProperty(obj, property, v);
if (temp != null) {
obj.setValue(property, temp);
}
@@ -1181,10 +1172,9 @@ public class DBSerializer {
VertexProperty cousinVertexNodeType = cousin.property(AAIProperties.NODE_TYPE);
if(cousinVertexNodeType.isPresent()){
- if(namedPropNodes.contains(cousinVertexNodeType.value().toString())){
- Introspector cousinObj = loader.introspectorFromName(cousinVertexNodeType.value().toString());
- this.simpleDbToObject(cousinObj, cousin);
- this.addRelatedToProperty(result, cousinObj);
+ String cousinType = cousinVertexNodeType.value().toString();
+ if(namedPropNodes.contains(cousinType)){
+ this.addRelatedToProperty(result, cousin, cousinType);
}
}
@@ -1244,37 +1234,43 @@ public class DBSerializer {
return UriBuilder.fromPath(uri).build();
}
- /**
- * Adds the r
- *
- * @param relationship the relationship
- * @param child the throws IllegalArgumentException, AAIUnknownObjectException child
- * @throws AAIUnknownObjectException
- * @throws IllegalArgumentException elated to property.
- */
- public void addRelatedToProperty(Introspector relationship, Introspector child) throws AAIUnknownObjectException {
- String nameProps = child.getMetadata(ObjectMetadata.NAME_PROPS);
+ public void addRelatedToProperty(Introspector relationship, Vertex cousinVertex, String cousinType) throws AAIUnknownObjectException {
+ Introspector obj = loader.introspectorFromName(cousinType);
+ String nameProps = obj.getMetadata(ObjectMetadata.NAME_PROPS);
List<Introspector> relatedToProperties = new ArrayList<>();
if (nameProps != null) {
String[] props = nameProps.split(",");
for (String prop : props) {
+ final Object temp = getProperty(obj, prop, cousinVertex);
Introspector relatedTo = relationship.newIntrospectorInstanceOfNestedProperty("related-to-property");
- relatedTo.setValue("property-key", child.getDbName() + "." + prop);
- relatedTo.setValue("property-value", child.getValue(prop));
+ relatedTo.setValue("property-key", cousinType + "." + prop);
+ relatedTo.setValue("property-value", temp);
relatedToProperties.add(relatedTo);
}
}
if (!relatedToProperties.isEmpty()) {
List relatedToList = (List) relationship.getValue("related-to-property");
- for (Introspector obj : relatedToProperties) {
- relatedToList.add(obj.getUnderlyingObject());
+ for (Introspector introspector : relatedToProperties) {
+ relatedToList.add(introspector.getUnderlyingObject());
}
}
}
+ private Object getProperty(Introspector obj, String prop, Vertex vertex){
+
+ final Map<PropertyMetadata, String> metadata = obj.getPropertyMetadata(prop);
+ String dbPropertyName = prop;
+
+ if (metadata.containsKey(PropertyMetadata.DB_ALIAS)) {
+ dbPropertyName = metadata.get(PropertyMetadata.DB_ALIAS);
+ }
+
+ return vertex.<Object>property(dbPropertyName).orElse(null);
+ }
+
/**
* Creates the edge.
*