private void digestExtendedResourceConfig(Element configElement, String defaultSelector, String defaultNamespace, String defaultProfile, String defaultConditionRef) {
String configNamespace = configElement.getNamespaceURI();
Smooks configDigester = getExtenededConfigDigester(configNamespace);
ExecutionContext executionContext = configDigester.createExecutionContext();
ExtensionContext extentionContext;
Element conditionElement = DomUtils.getElement(configElement, "condition", 1);
// Create the ExtenstionContext and set it on the ExecutionContext...
if(conditionElement != null && (conditionElement.getNamespaceURI().equals(XSD_V10) || conditionElement.getNamespaceURI().equals(XSD_V11))) {
extentionContext = new ExtensionContext(this, defaultSelector, defaultNamespace, defaultProfile, digestCondition(conditionElement));
} else if(defaultConditionRef != null) {
extentionContext = new ExtensionContext(this, defaultSelector, defaultNamespace, defaultProfile, getConditionEvaluator(defaultConditionRef));
} else {
extentionContext = new ExtensionContext(this, defaultSelector, defaultNamespace, defaultProfile, null);
}
ExtensionContext.setExtensionContext(extentionContext, executionContext);
// Filter the extension element through Smooks...
configDigester.filterSource(executionContext, new DOMSource(configElement), null);
// Copy the created resources from the ExtensionContext and onto the SmooksResourceConfigurationList...
List<SmooksResourceConfiguration> resources = extentionContext.getResources();
for (SmooksResourceConfiguration resource : resources) {
resourcelist.add(resource);
}
}