01: package com.sun.portal.ubt.report.data.file.aggregate;
02:
03: import com.sun.portal.ubt.report.data.file.raw.PortletRenderMiner;
04:
05: import java.util.TreeMap;
06: import java.util.Iterator;
07:
08: /**
09: *
10: */
11: public class PortletRenderMinerAggregator extends
12: DataMinerAggregatorAdapter {
13: private TreeMap aggregatedata = new TreeMap(); //map(portlet, map(mode, map(windowstate, count))) [portlet -> entityID]
14:
15: public PortletRenderMinerAggregator() {
16: this .minerClassName = PortletRenderMiner.class.getName();
17: }
18:
19: protected void add(Object o) {
20: TreeMap minerData = (TreeMap) o;
21: Iterator portletIt = minerData.keySet().iterator();
22: while (portletIt.hasNext()) {
23: Object portlet = portletIt.next();
24: if (aggregatedata.containsKey(portlet)) {
25: //elaborate
26: TreeMap aggergatePortletMap = (TreeMap) aggregatedata
27: .get(portlet);
28: TreeMap portletMap = (TreeMap) minerData.get(portlet);
29: Iterator modeIt = portletMap.keySet().iterator();
30: while (modeIt.hasNext()) {
31: Object mode = modeIt.next();
32: if (aggergatePortletMap.containsKey(mode)) {
33: //elaborate
34: TreeMap aggregateModeMap = (TreeMap) aggergatePortletMap
35: .get(mode);
36: TreeMap modeMap = (TreeMap) portletMap
37: .get(mode);
38: Iterator windowStateIt = modeMap.keySet()
39: .iterator();
40: while (windowStateIt.hasNext()) {
41: Object window = windowStateIt.next();
42: if (aggregateModeMap.containsKey(window)) {
43: //elaborate
44: Integer aggregateCount = (Integer) aggregateModeMap
45: .get(window);
46: Integer count = (Integer) modeMap
47: .get(window);
48: aggregateModeMap.put(window,
49: new Integer(aggregateCount
50: .intValue()
51: + count.intValue()));
52: } else {
53: aggregateModeMap.put(window, modeMap
54: .get(window));
55: }
56: }
57: } else {
58: aggergatePortletMap.put(mode, portletMap
59: .get(mode));
60: }
61: }
62:
63: } else {
64: aggregatedata.put(portlet, minerData.get(portlet));
65: }
66: }
67:
68: }
69:
70: public Object getData() {
71: return aggregatedata;
72: }
73:
74: public void setData(Object data) {
75: aggregatedata = (TreeMap) data;
76: }
77: }
|