/** * For the specified Interpreter type node, parse all subordinate Interpreter definitions and add * them to the specified container. */ private void populateValidatorType(Element validatorTypeElement) { // Retrieve the 'id' attribute and the corresponding Interpreter type // object String id = validatorTypeElement.getAttribute(ATTR_ID); IValidatorType validatorType = ValidatorManager.getValidatorTypeFromID(id); if (validatorType != null) { // For each validator child node, populate the container with a // subordinate node NodeList validatorNodeList = validatorTypeElement.getChildNodes(); for (int i = 0; i < validatorNodeList.getLength(); ++i) { Node childNode = validatorNodeList.item(i); short type = childNode.getNodeType(); if (type == Node.ELEMENT_NODE) { Element validatorElement = (Element) childNode; if (validatorElement.getNodeName().equalsIgnoreCase(NODE_VALIDATOR)) { populateValidator(validatorType, validatorElement); } } } } else { final String msg = ValidatorMessages.ValidatorDefinitionsContainer_unknownValidatorType; ValidatorsCore.warn(NLS.bind(msg, id)); } }