01: package com.sun.portal.ubt.report.data.file.aggregate;
02:
03: import com.sun.portal.ubt.report.data.file.raw.ContainerWiseUserActionsMiner;
04:
05: import java.util.TreeMap;
06: import java.util.Iterator;
07: import java.util.TreeSet;
08:
09: /**
10: *
11: */
12: public class ContainerWiseUserActionsMinerAggregator extends
13: DataMinerAggregatorAdapter {
14: private TreeMap portalCustomizationAggregate = new TreeMap();
15: private TreeMap portalCustomizationIntentionsAggregate = new TreeMap(); //Map(container, map(user, TreeSet(timestamp)))
16: private TreeMap portalCustomizationSuccessfulAggregate = new TreeMap(); //Map(container, map(user, TreeSet(timestamp)))
17:
18: public ContainerWiseUserActionsMinerAggregator() {
19: this .minerClassName = ContainerWiseUserActionsMiner.class
20: .getName();
21: portalCustomizationAggregate.put(
22: ContainerWiseUserActionsMiner.INTENTIONS,
23: portalCustomizationIntentionsAggregate);
24: portalCustomizationAggregate.put(
25: ContainerWiseUserActionsMiner.SUCCESSFUL,
26: portalCustomizationSuccessfulAggregate);
27: }
28:
29: protected void add(Object o) {
30: TreeMap portalCustomization = (TreeMap) o;
31: TreeMap portalCustomizationIntentions = (TreeMap) portalCustomization
32: .get(ContainerWiseUserActionsMiner.INTENTIONS);
33: TreeMap portalCustomizationSuccessful = (TreeMap) portalCustomization
34: .get(ContainerWiseUserActionsMiner.SUCCESSFUL);
35: add((TreeMap) portalCustomizationAggregate
36: .get(ContainerWiseUserActionsMiner.INTENTIONS),
37: portalCustomizationIntentions);
38: add((TreeMap) portalCustomizationAggregate
39: .get(ContainerWiseUserActionsMiner.SUCCESSFUL),
40: portalCustomizationSuccessful);
41: }
42:
43: private void add(TreeMap aggregateData, TreeMap minerData) {
44: Iterator containerIt = minerData.keySet().iterator();
45: while (containerIt.hasNext()) {
46: Object container = containerIt.next();
47: if (aggregateData.containsKey(container)) {
48: //elaborate
49: TreeMap containerMap = (TreeMap) minerData
50: .get(container);
51: TreeMap aggregateContainerMap = (TreeMap) aggregateData
52: .get(container);
53: Iterator userIt = containerMap.keySet().iterator();
54: while (userIt.hasNext()) {
55: Object user = userIt.next();
56: if (aggregateContainerMap.containsKey(user)) {
57: //elaborate
58: ((TreeSet) aggregateContainerMap.get(user))
59: .addAll((TreeSet) containerMap
60: .get(user));
61: } else {
62: aggregateContainerMap.put(user, containerMap
63: .get(user));
64: }
65: }
66: } else {
67: aggregateData.put(container, minerData.get(container));
68: }
69: }
70: }
71:
72: public Object getData() {
73: return portalCustomizationAggregate;
74: }
75:
76: public void setData(Object data) {
77: portalCustomizationAggregate = (TreeMap) data;
78: this .portalCustomizationIntentionsAggregate = (TreeMap) portalCustomizationAggregate
79: .get(ContainerWiseUserActionsMiner.INTENTIONS);
80: this .portalCustomizationSuccessfulAggregate = (TreeMap) portalCustomizationAggregate
81: .get(ContainerWiseUserActionsMiner.SUCCESSFUL);
82: }
83: }
|