private static InputElement extractInputElement(Element inputElementElement) { InputElement inputElement = new InputElement(); inputElement.elementName = inputElementElement.getAttribute(NAME_ATTRIBUTE); inputElement.logEntry = (Boolean.toString(true).equals(inputElementElement.getAttribute(LOG_ENTRY_ATTRIBUTE))) ? true : false; NodeList nodeList = inputElementElement.getChildNodes(); for (int i = 0; i < nodeList.getLength(); i++) { Node node = nodeList.item(i); String nodeName = node.getNodeName(); if (nodeName.equals(INPUT_DATA_ELEMENT)) { Element inputDataElement = (Element) node; inputElement.inputName = inputDataElement.getAttribute(NAME_ATTRIBUTE); inputElement.inputAction = Integer.parseInt(inputDataElement.getAttribute(ACTION_ATTRIBUTE)); inputElement.inputFormat = inputDataElement.getAttribute(FORMAT_ATTRIBUTE); } else if (nodeName.equals(ATTRIBUTE_ELEMENT)) { Element attributeElement = (Element) node; InputAttribute attribute = new InputAttribute(); attribute.attributeName = attributeElement.getAttribute(NAME_ATTRIBUTE); NodeList attributeNodeList = attributeElement.getChildNodes(); for (int j = 0; j < attributeNodeList.getLength(); j++) { Node attributeNode = attributeNodeList.item(j); String attributeNodeName = attributeNode.getNodeName(); if (attributeNodeName.equals(INPUT_DATA_ELEMENT)) { Element inputDataElement = (Element) attributeNode; attribute.inputName = inputDataElement.getAttribute(NAME_ATTRIBUTE); attribute.inputAction = Integer.parseInt(inputDataElement.getAttribute(ACTION_ATTRIBUTE)); attribute.inputFormat = inputDataElement.getAttribute(FORMAT_ATTRIBUTE); } } inputElement.addAttribute(attribute); } else if (nodeName.equals(INPUT_ELEMENT_ELEMENT)) { Element childInputElementElement = (Element) node; InputElement childInputElement = extractInputElement(childInputElementElement); if (childInputElement != null) { inputElement.addChild(childInputElement); } } } return inputElement; }