/** * Loads definitions from the sources. * * @param customizationKey The locale to use when loading Resources. * @return The loaded definitions. * @since 2.1.0 */ protected Map<String, Definition> loadDefinitionsFromResources(Locale customizationKey) { Map<String, Definition> localeDefsMap = loadRawDefinitionsFromResources(customizationKey); Map<String, Definition> defsMap = definitionResolver .storeDefinitionPatterns(copyDefinitionMap(localeDefsMap), customizationKey); locale2definitionMap.put(customizationKey, defsMap); return localeDefsMap; }
/** * Loads the raw definitions from the sources associated with a locale. * * @param customizationKey The locale to use when loading Resources. * @return The loaded definitions. * @since 2.1.3 */ protected Map<String, Definition> loadRawDefinitionsFromResources( Locale customizationKey) { Map<String, Definition> localeDefsMap; Locale parentLocale = LocaleUtil.getParentLocale(customizationKey); localeDefsMap = new LinkedHashMap<String, Definition>(); if (parentLocale != null) { Map<String, Definition> parentDefs = loadRawDefinitionsFromResources(parentLocale); if (parentDefs != null) { localeDefsMap.putAll(parentDefs); } } // For each source, the resource must be loaded. for (ApplicationResource resource : sources) { ApplicationResource newResource = applicationContext.getResource(resource, customizationKey); if (newResource != null) { Map<String, Definition> defsMap = loadDefinitionsFromResource(newResource); if (defsMap != null) { localeDefsMap.putAll(defsMap); } } } return localeDefsMap; }