1 17 package com.sun.syndication.io.impl; 18 19 import com.sun.syndication.feed.module.Module; 20 import com.sun.syndication.io.ModuleParser; 21 import org.jdom.Element; 22 import org.jdom.Namespace; 23 24 import java.util.ArrayList ; 25 import java.util.List ; 26 27 29 public class ModuleParsers extends PluginManager { 30 31 public ModuleParsers(String propertyKey) { 32 super(propertyKey); 33 } 34 35 public String getKey(Object obj) { 36 return ((ModuleParser)obj).getNamespaceUri(); 37 } 38 39 public List getModuleNamespaces() { 40 return getKeys(); 41 } 42 43 public List parseModules(Element root) { 44 List parsers = getPlugins(); 45 List modules = null; 46 for (int i=0;i<parsers.size();i++) { 47 ModuleParser parser = (ModuleParser) parsers.get(i); 48 String namespaceUri = parser.getNamespaceUri(); 49 Namespace namespace = Namespace.getNamespace(namespaceUri); 50 if (hasElementsFrom(root,namespace)) { 51 Module module = parser.parse(root); 52 if (module!=null) { 53 if (modules==null) { 54 modules = new ArrayList (); 55 } 56 modules.add(module); 57 } 58 } 59 } 60 return modules; 61 } 62 63 64 private boolean hasElementsFrom(Element root,Namespace namespace) { 65 boolean itHas = false; 66 List children = root.getChildren(); 67 for (int i=0;!itHas && i<children.size();i++) { 68 Element child = (Element) children.get(i); 69 itHas = namespace.equals(child.getNamespace()); 70 } 71 return itHas; 72 } 73 74 75 } 76 | Popular Tags |