1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.module.rssaggregator;
35
36 import info.magnolia.module.ModuleRegistry;
37 import info.magnolia.module.rssaggregator.generator.FeedGenerator;
38
39 import java.util.HashMap;
40 import java.util.Map;
41
42 import org.apache.commons.lang.StringUtils;
43 import org.slf4j.Logger;
44 import org.slf4j.LoggerFactory;
45
46
47
48
49
50
51 public class RSSAggregator {
52
53 private static final Logger log = LoggerFactory.getLogger(RSSAggregator.class);
54
55 public static final String DEFAULT_FEEDTYPE = "rss_2.0";
56 public static final String DEFAULT_ENCODING = "UTF-8";
57 public static final String DEFAULT_CONTENT_TYPE = "text/xml";
58
59 private static final String MONTHS_INCLUDED_OPTION = "lastMonthsIncluded";
60
61 private static final String DEFAULT_MONTHS_INCLUDED = "3";
62
63 private Map<String, FeedGenerator> feedGenerators = new HashMap<String, FeedGenerator>();
64
65 private Map<String, String> planetOptions = new HashMap<String, String>();
66
67 public static RSSAggregator getInstance() {
68 return (RSSAggregator) ModuleRegistry.Factory.getInstance().getModuleInstance("rssaggregator");
69 }
70
71 public Map<String, FeedGenerator> getFeedGenerators() {
72 return new HashMap<String, FeedGenerator>(feedGenerators);
73 }
74
75 public void setFeedGenerators(HashMap<String, FeedGenerator> feedGenerators) {
76 this.feedGenerators.clear();
77 this.feedGenerators.putAll(feedGenerators);
78 }
79
80 public void addFeedGenerator(String name, FeedGenerator feedGenerator) {
81 this.feedGenerators.put(name, feedGenerator);
82 }
83
84 public int getMonthsIncluded() {
85 if (getPlanetOptions().containsKey(MONTHS_INCLUDED_OPTION)) {
86 String lastMonthOption = getPlanetOptions().get(MONTHS_INCLUDED_OPTION);
87 if (StringUtils.isNumeric(lastMonthOption)) {
88 return Integer.parseInt(lastMonthOption);
89 }
90
91 }
92 return Integer.parseInt(DEFAULT_MONTHS_INCLUDED);
93 }
94
95
96 public Map<String, String> getPlanetOptions() {
97 return planetOptions;
98 }
99
100 public void setPlanetOptions(Map<String, String> planetOptions) {
101 this.planetOptions = planetOptions;
102 }
103 }