001
014
015 package com.liferay.portal.kernel.util;
016
017 import java.util.ArrayList;
018 import java.util.List;
019 import java.util.MissingResourceException;
020 import java.util.ResourceBundle;
021
022
025 public class AggregateResourceBundleLoader implements ResourceBundleLoader {
026
027 public AggregateResourceBundleLoader(
028 ResourceBundleLoader... resourceBundleLoaders) {
029
030 _resourceBundleLoaders = resourceBundleLoaders;
031 }
032
033 @Override
034 public ResourceBundle loadResourceBundle(String languageId) {
035 List<ResourceBundle> resourceBundles = new ArrayList<>();
036
037 for (ResourceBundleLoader resourceBundleLoader :
038 _resourceBundleLoaders) {
039
040 try {
041 ResourceBundle resourceBundle =
042 resourceBundleLoader.loadResourceBundle(languageId);
043
044 if (resourceBundle != null) {
045 resourceBundles.add(resourceBundle);
046 }
047 }
048 catch (Exception e) {
049 }
050 }
051
052 if (resourceBundles.isEmpty()) {
053 throw new MissingResourceException(
054 "Resource bundle loader " + this + " was unable to load " +
055 "resource bundle for " + languageId,
056 StringPool.BLANK, languageId);
057 }
058
059 if (resourceBundles.size() == 1) {
060 return resourceBundles.get(0);
061 }
062
063 return new AggregateResourceBundle(
064 resourceBundles.toArray(
065 new ResourceBundle[resourceBundles.size()]));
066 }
067
068 private final ResourceBundleLoader[] _resourceBundleLoaders;
069
070 }