/** Initialises the template descriptor and Root Elements. */ private void initialize() { TemplateDescriptor desc = template.getTemplateDescriptor(); Element root = desc.getRootElement(); conditionalProcessGroupList = new ArrayList<ConditionalProcessGroup>(); List<Element> nodeList = TemplateEngine.getChildrenOfElementByTag(root, TemplateDescriptor.IF); for (int j = 0, l = nodeList.size(); j < l; j++) { conditionalProcessGroupList.add( new ConditionalProcessGroup(template, nodeList.get(j), j + 1)); } // Collect all free-hanging processes in one ConditionalProcessGroup object with condition true. nodeList = TemplateEngine.getChildrenOfElementByTag(root, TemplateDescriptor.PROCESS); conditionalProcessGroupList.add( new ConditionalProcessGroup(template, nodeList.toArray(new Element[nodeList.size()]))); }