this.contents = contents;
}
public TemplatesBundle load(String bundleName, IProblemCollector collector) {
if(sourceForPackage == null) {
TemplatesBundle compositeBundle = TemplatesBundle.parse(name, contents, null, collector);
Map<String,List<IBundleEntity>> bundleToTemplates = new HashMap<String, List<IBundleEntity>>();
for(IBundleEntity t : compositeBundle.getEntities()) {
String tbundle = t.getPackage();
List<IBundleEntity> list = bundleToTemplates.get(tbundle);
if(list == null) {
list = new LinkedList<IBundleEntity>();
bundleToTemplates.put(tbundle, list);
}
list.add(t);
}
sourceForPackage = new HashMap<String, TemplatesBundle>();
for(Map.Entry<String, List<IBundleEntity>> entry : bundleToTemplates.entrySet()) {
List<IBundleEntity> list = entry.getValue();
sourceForPackage.put(entry.getKey(), new TemplatesBundle(name, list.toArray(new IBundleEntity[list.size()])));
}
}
return sourceForPackage.get(bundleName);
}