private void sortNodes(List<MedusaNode> nodes) {
   Collections.sort(nodes, new MedusaNodeComparator());
   for (MedusaNode mNode : nodes) {
     if (!mNode.getChildNodes().isEmpty()) {
       sortNodes((List<MedusaNode>) mNode.getChildNodes());
     }
   }
 }
 private String getNodeValue(MedusaNode m) {
   String nodeType = m.getType();
   BusinessObject mBo = m.getBo();
   if (!StringUtils.isNotBlank(nodeType) || mBo == null) {
     return "medusa: unknown medusa node type";
   } else {
     if (StringUtils.equals(nodeType, "award")) {
       return nodeType + ((Award) mBo).getAwardNumber();
     } else if (StringUtils.equals(nodeType, "IP"))
       return nodeType + ((InstitutionalProposal) mBo).getProposalNumber();
     else if (StringUtils.equals(nodeType, "DP"))
       return nodeType + ((DevelopmentProposal) mBo).getProposalNumber();
     else return "medusa: unsupported medusa node type";
   }
 }