public Data[] getData(DataRetrievalRequest request,
MessageContext msgContext) throws AxisFault {
Data[] data;
String dialect = request.getDialect();
AxisDataLocator dataLocator = null;
int nextDataLocatorIndex = 0;
int totalLocators = availableDataLocatorTypes.length;
for (int i = 0; i < totalLocators; i++) {
dataLocator = getDataLocator(availableDataLocatorTypes[i], dialect);
if (dataLocator != null) {
nextDataLocatorIndex = i + 1;
break;
}
}
if (dataLocator == null) {
return null;
}
data = dataLocator.getData(request, msgContext);
// Null means Data Locator not understood request. Automatically find
// Data Locator in the hierarchy to process the request.
if (data == null) {
if (nextDataLocatorIndex < totalLocators) {
data = bubbleupDataLocators(nextDataLocatorIndex, request,