1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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 /***
28 */
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 }