private void createRecord(Object data, XSQLBluePrintNode node) {
   Map<String, Object> rec = new HashMap<>();
   for (XSQLColumn c : this.fieldsInQuery) {
     if (c.getTableName().equals(node.getBluePrintNodeName())) {
       try {
         Method m = node.getInterface().getMethod(c.getName(), null);
         Object value = m.invoke(data, null);
         if (value != null) {
           rec.put(c.getName(), value);
         } else {
           rec.put(c.getName(), "");
         }
       } catch (Exception err) {
         err.printStackTrace();
       }
     }
   }
 }
 public void addRecord(ArrayList<?> hierarchy) {
   Map<String, Object> rec = new HashMap<>();
   for (int i = hierarchy.size() - 1; i >= 0; i--) {
     Object element = hierarchy.get(i);
     for (XSQLColumn c : fieldsInQuery) {
       if (c.getTableName().equals(element.getClass().getSimpleName())) {
         try {
           Method m = element.getClass().getMethod(c.getName(), null);
           Object value = m.invoke(element, null);
           rec.put(c.getName(), value);
         } catch (Exception err) {
           err.printStackTrace();
         }
       }
     }
   }
   this.records.add(rec);
 }