private void configureFeatures( Element configElement, SmooksResourceConfiguration resourceConfig) { Element featuresElement = DomUtils.getElement(configElement, "features", 1); if (featuresElement != null) { NodeList features = featuresElement.getChildNodes(); for (int i = 0; i < features.getLength(); i++) { if (features.item(i).getNodeType() == Node.ELEMENT_NODE) { Element feature = (Element) features.item(i); String uri = feature.getAttribute("feature"); if (DomUtils.getName(feature).equals("setOn")) { resourceConfig.setParameter("feature-on", uri); } else { resourceConfig.setParameter("feature-off", uri); } } } } }
private void digestParameters( Element resourceConfigElement, SmooksResourceConfiguration resourceConfig) { NodeList configNodes = resourceConfigElement.getElementsByTagName("param"); for (int i = 0; i < configNodes.getLength(); i++) { Element paramNode = (Element) configNodes.item(i); String paramName = DomUtils.getAttributeValue(paramNode, "name"); String paramType = DomUtils.getAttributeValue(paramNode, "type"); String paramValue = DomUtils.getAllText(paramNode, true); Parameter paramInstance; paramInstance = resourceConfig.setParameter(paramName, paramType, paramValue); paramInstance.setXML(paramNode); } }
private void configureParams(Element configElement, SmooksResourceConfiguration resourceConfig) { Element paramsElement = DomUtils.getElement(configElement, "params", 1); if (paramsElement != null) { NodeList params = paramsElement.getChildNodes(); for (int i = 0; i < params.getLength(); i++) { if (params.item(i).getNodeType() == Node.ELEMENT_NODE) { Element param = (Element) params.item(i); String name = param.getAttribute("name"); String value = DomUtils.getAllText(param, true); resourceConfig.setParameter(name, value); } } } }
private void configureHandlers( Element configElement, SmooksResourceConfiguration resourceConfig) { Element handlersElement = DomUtils.getElement(configElement, "handlers", 1); if (handlersElement != null) { NodeList handlers = handlersElement.getChildNodes(); for (int i = 0; i < handlers.getLength(); i++) { if (handlers.item(i).getNodeType() == Node.ELEMENT_NODE) { Element handler = (Element) handlers.item(i); String handlerClass = handler.getAttribute("class"); resourceConfig.setParameter("sax-handler", handlerClass); } } } }
private void digestResourceConfig( Element configElement, String defaultSelector, String defaultNamespace, String defaultProfile, String defaultConditionRef) throws SAXException { String selector = DomUtils.getAttributeValue(configElement, "selector"); String namespace = DomUtils.getAttributeValue(configElement, "selector-namespace"); String profiles = DomUtils.getAttributeValue(configElement, "target-profile"); Element resourceElement = getElementByTagName(configElement, "resource"); Element conditionElement = getElementByTagName(configElement, "condition"); String resource = null; SmooksResourceConfiguration resourceConfig; try { if (resourceElement != null) { resource = DomUtils.getAllText(resourceElement, true); } resourceConfig = new SmooksResourceConfiguration( (selector != null ? selector : defaultSelector), (namespace != null ? namespace : defaultNamespace), (profiles != null ? profiles : defaultProfile), resource); if (resourceElement != null) { resourceConfig.setResourceType(DomUtils.getAttributeValue(resourceElement, "type")); } // And add the condition, if defined... if (conditionElement != null) { ExpressionEvaluator evaluator = digestCondition(conditionElement); resourceConfig.setConditionEvaluator(evaluator); } else if (defaultConditionRef != null) { ExpressionEvaluator evaluator = getConditionEvaluator(defaultConditionRef); resourceConfig.setConditionEvaluator(evaluator); } } catch (IllegalArgumentException e) { throw new SAXException("Invalid unit definition.", e); } // Add the parameters... digestParameters(configElement, resourceConfig); resourcelist.add(resourceConfig); if (resource == null) { if (resourceConfig.getParameters(SmooksResourceConfiguration.PARAM_RESDATA) != null) { logger.debug( "Resource 'null' for resource config: " + resourceConfig + ". This is probably an error because the configuration contains a 'resdata' param, which suggests it is following the old DTD based configuration model. The new model requires the resource to be specified in the <resource> element."); } else { logger.debug( "Resource 'null' for resource config: " + resourceConfig + ". This is not invalid!"); } } if (logger.isDebugEnabled()) { logger.debug( "Adding smooks-resource config from [" + resourcelist.getName() + "]: " + resourceConfig); } }