public SplitResult process(RouteContext context, RouteHelper helper) throws Exception {
   DocumentContent docContent = context.getDocumentContent();
   Document xmlDocument = docContent.getDocument();
   NodeList branchNumberElements = xmlDocument.getElementsByTagName(BRANCH_NUMBER_ELEMENT);
   if (branchNumberElements != null && branchNumberElements.getLength() != 0) {
     Element branchNumberElement = (Element) branchNumberElements.item(0);
     String branchNumber = branchNumberElement.getTextContent();
     if (branchNumber != null && !branchNumber.trim().equals("")) {
       List<String> branchNames = new ArrayList<String>();
       branchNames.add("Branch" + branchNumber);
       return new SplitResult(branchNames);
     }
   }
   // if they didn't submit xml that helps us identify the branch number, just take all branches
   return super.process(context, helper);
 }
 private static Element getRootElement(DocumentContent docContent) {
   Element rootElement = null;
   try {
     rootElement = XmlHelper.buildJDocument(docContent.getDocument()).getRootElement();
   } catch (Exception e) {
     throw new WorkflowServiceErrorException("Invalid XML submitted", new ArrayList<Object>());
   }
   return rootElement;
 }