Map<String, Object> mutableParamValues =
new LinkedHashMap<String, Object>((Map<String, Object>) action.getParamsMap());
DataRequest dataRequest = new DataRequestImpl(structDef, mutableParamValues, invokedDef);
// get root XML element from dataProvider
final DataProvider dataProvider = invokedDef.getProviderInstance(DataProvider.class);
Element element = dataProvider.getRootElement(dataRequest);
if (logger.isFine() && !(dataProvider instanceof WSDataProvider)) {
// TODO: look at root data-provider not most outer provider(filter)
// TODO: shouldn't each filter log the element at finest so we can see work of each filter
// WSDataProvider takes care of its own logging
logger.fine("data-provider {0} returned XML:\n{1}", new Object[] {
dataProvider.getClass().getName(), Utils.xmlNodeToString(Utils.toXMLNode(element)) });
}
// create XMLDCElement from XML element
if (element == null) {
// returning null would cause refresh issues once parameters change and the DC no