if (!providerInstances.containsKey(iface)) {
// only initialize on first call and cache for subsequent calls
Class dfltImpl = XMLDCConstants.DFLT_PROVIDERS.get(iface);
if (dfltImpl != null) {
final DataControlProviderDefinition defFromDcx = getProviderDefinitions().get(iface);
final Provider impl = newProviderInstance(defFromDcx, iface, dfltImpl);
providerInstances.put(iface, impl);
}
}
return (T) providerInstances.get(iface);
}