1 17 package com.sun.syndication.io.impl; 18 19 import com.sun.syndication.feed.module.Module; 20 import com.sun.syndication.io.ModuleGenerator; 21 import org.jdom.Element; 22 import java.util.List ; 23 import java.util.Map ; 24 import java.util.Set ; 25 import java.util.HashSet ; 26 27 29 public class ModuleGenerators extends PluginManager { 30 private Set _allNamespaces; 31 32 public ModuleGenerators(String propertyKey) { 33 super(propertyKey); 34 } 35 36 public ModuleGenerator getGenerator(String uri) { 37 return (ModuleGenerator) getPlugin(uri); 38 } 39 40 protected String getKey(Object obj) { 41 return ((ModuleGenerator)obj).getNamespaceUri(); 42 } 43 44 public List getModuleNamespaces() { 45 return getKeys(); 46 } 47 48 public void generateModules(List modules, Element element) { 49 Map generators = getPluginMap(); 50 for (int i = 0; i < modules.size(); i++) { 51 Module module = (Module) modules.get(i); 52 String namespaceUri = module.getUri(); 53 ModuleGenerator generator = (ModuleGenerator)generators.get(namespaceUri); 54 if (generator != null) { 55 generator.generate(module, element); 56 } 57 } 58 } 59 60 public Set getAllNamespaces() { 61 if (_allNamespaces==null) { 62 _allNamespaces = new HashSet (); 63 List mUris = getModuleNamespaces(); 64 for (int i=0;i<mUris.size();i++) { 65 ModuleGenerator mGen = getGenerator((String )mUris.get(i)); 66 _allNamespaces.addAll(mGen.getNamespaces()); 67 } 68 } 69 return _allNamespaces; 70 } 71 } 72 | Popular Tags |