X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-dom-xsql%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fdom%2Fxsql%2Fjdbc%2FJDBCResultSet.java;h=757f1a8b0487d675661bc35c45ef8a38ae1c6861;hb=dbe561b2089c25a41cb20231fb2c1d2e75c77fa1;hp=37eacd5595975404a03cbf0390e12994d65bbe8c;hpb=8decf2dbd1e08651d98c9292ba012b3a46005549;p=controller.git diff --git a/opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/jdbc/JDBCResultSet.java b/opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/jdbc/JDBCResultSet.java index 37eacd5595..757f1a8b04 100644 --- a/opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/jdbc/JDBCResultSet.java +++ b/opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/jdbc/JDBCResultSet.java @@ -66,16 +66,18 @@ public class JDBCResultSet implements Serializable, ResultSet, } public JDBCResultSet addSubQuery(String _sql,String logicalName) { - if(subQueries == null) + if (subQueries == null) { subQueries = new HashMap(); + } JDBCResultSet rs = new JDBCResultSet(_sql); this.subQueries.put(logicalName,rs); return rs; } public Map getSubQueries() { - if(this.subQueries==null) + if (this.subQueries==null) { this.subQueries = new HashMap<>(); + } return this.subQueries; } @@ -381,13 +383,15 @@ public class JDBCResultSet implements Serializable, ResultSet, for (Object child : children) { String odlNodeName = XSQLODLUtils.getNodeIdentiofier(child); - if (odlNodeName == null) + if (odlNodeName == null) { continue; + } XSQLBluePrintNode eNodes[] = bluePrint .getBluePrintNodeByODLTableName(odlNodeName); - if (eNodes == null) + if (eNodes == null) { continue; + } boolean match = false; for (XSQLBluePrintNode enode : eNodes) { @@ -397,8 +401,9 @@ public class JDBCResultSet implements Serializable, ResultSet, } } - if (!match) + if (!match) { continue; + } if (child.getClass().getName().endsWith("ImmutableContainerNode")) { result.add(child); @@ -418,20 +423,20 @@ public class JDBCResultSet implements Serializable, ResultSet, return result; } - public List addRecords(Object element, XSQLBluePrintNode node, - boolean root, String tableName, XSQLBluePrint bluePrint) { - + public List addRecords(Object element, XSQLBluePrintNode node,boolean root, String tableName, XSQLBluePrint bluePrint) { List result = new LinkedList(); + //In case this is a sibling to the requested table, the elenment type + //won't be in the path of the leaf node + if(node==null){ + return result; + } String nodeID = XSQLODLUtils.getNodeIdentiofier(element); if (node.getODLTableName().equals(nodeID)) { - XSQLBluePrintNode bluePrintNode = bluePrint - .getBluePrintNodeByODLTableName(nodeID)[0]; + XSQLBluePrintNode bluePrintNode = bluePrint.getBluePrintNodeByODLTableName(nodeID)[0]; Record rec = new Record(); rec.element = element; - XSQLBluePrintNode bpn = this.tablesInQueryMap.get(bluePrintNode - .getBluePrintNodeName()); - if (this.criteria.containsKey(bluePrintNode.getBluePrintNodeName()) - || bpn != null) { + XSQLBluePrintNode bpn = this.tablesInQueryMap.get(bluePrintNode.getBluePrintNodeName()); + if (this.criteria.containsKey(bluePrintNode.getBluePrintNodeName()) || bpn != null) { Map allKeyValues = collectColumnValues(element, bpn); if (!(isObjectFitCriteria(allKeyValues, bpn.getBluePrintNodeName()) == 1)) { @@ -448,8 +453,7 @@ public class JDBCResultSet implements Serializable, ResultSet, } XSQLBluePrintNode parent = node.getParent(); - List subRecords = addRecords(element, parent, false, tableName, - bluePrint); + List subRecords = addRecords(element, parent, false, tableName,bluePrint); for (Record subRec : subRecords) { List subO = getChildren(subRec.element, tableName, bluePrint); @@ -466,8 +470,9 @@ public class JDBCResultSet implements Serializable, ResultSet, for (XSQLBluePrintNode eNode : eNodes) { bpn = this.tablesInQueryMap.get(eNode .getBluePrintNodeName()); - if (bpn != null) + if (bpn != null) { break; + } } boolean isObjectInCriteria = true; if (bpn != null) { @@ -482,8 +487,9 @@ public class JDBCResultSet implements Serializable, ResultSet, if (isObjectInCriteria) { if (root) { - if (!rec.data.isEmpty()) + if (!rec.data.isEmpty()) { addRecord(rec.data); + } } else { result.add(rec); }