private void AssembleResourceLoaderInitializers()
{
if (resourceLoaderInitializersActive)
{
return;
}
ArrayList resourceLoaderNames = runtimeServices.Configuration.GetVector(RuntimeConstants.RESOURCE_LOADER);
for(int i = 0; i < resourceLoaderNames.Count; i++)
{
/*
* The loader id might look something like the following:
*
* file.resource.loader
*
* The loader id is the prefix used for all properties
* pertaining to a particular loader.
*/
String loaderID = string.Format("{0}.{1}", resourceLoaderNames[i], RuntimeConstants.RESOURCE_LOADER);
ExtendedProperties loaderConfiguration = runtimeServices.Configuration.Subset(loaderID);
/*
* we can't really count on ExtendedProperties to give us an empty set
*/
if (loaderConfiguration == null)
{
runtimeServices.Warn(
string.Format("ResourceManager : No configuration information for resource loader named '{0}'. Skipping.",
resourceLoaderNames[i]));
continue;
}
/*
* add the loader name token to the initializer if we need it
* for reference later. We can't count on the user to fill
* in the 'name' field
*/
loaderConfiguration.SetProperty(RESOURCE_LOADER_IDENTIFIER, resourceLoaderNames[i]);
/*
* Add resources to the list of resource loader
* initializers.
*/
sourceInitializerList.Add(loaderConfiguration);
}
resourceLoaderInitializersActive = true;
}