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
68
69
70 public static RSSAggregator getInstance() {
71 return (RSSAggregator) ModuleRegistry.Factory.getInstance().getModuleInstance("rssaggregator");
72 }
73
74 public Map<String, FeedGenerator> getFeedGenerators() {
75 return new HashMap<String, FeedGenerator>(feedGenerators);
76 }
77
78 public void setFeedGenerators(HashMap<String, FeedGenerator> feedGenerators) {
79 this.feedGenerators.clear();
80 this.feedGenerators.putAll(feedGenerators);
81 }
82
83 public void addFeedGenerator(String name, FeedGenerator feedGenerator) {
84 this.feedGenerators.put(name, feedGenerator);
85 }
86
87 public int getMonthsIncluded() {
88 if (getPlanetOptions().containsKey(MONTHS_INCLUDED_OPTION)) {
89 String lastMonthOption = getPlanetOptions().get(MONTHS_INCLUDED_OPTION);
90 if (StringUtils.isNumeric(lastMonthOption)) {
91 return Integer.parseInt(lastMonthOption);
92 }
93
94 }
95 return Integer.parseInt(DEFAULT_MONTHS_INCLUDED);
96 }
97
98
99 public Map<String, String> getPlanetOptions() {
100 return planetOptions;
101 }
102
103 public void setPlanetOptions(Map<String, String> planetOptions) {
104 this.planetOptions = planetOptions;
105 }
106 }