1 package org.apache.helix.controller.stages;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.util.HashMap;
23 import java.util.Map;
24
25 import org.apache.log4j.Logger;
26
27 public class ClusterEvent
28 {
29 private static final Logger logger = Logger.getLogger(ClusterEvent.class
30 .getName());
31 private final String _eventName;
32 private final Map<String, Object> _eventAttributeMap;
33
34 public ClusterEvent(String name)
35 {
36 _eventName = name;
37 _eventAttributeMap = new HashMap<String, Object>();
38 }
39
40 public void addAttribute(String attrName, Object attrValue)
41 {
42 if (logger.isTraceEnabled())
43 {
44 logger.trace("Adding attribute:" + attrName);
45 logger.trace(" attribute value:" + attrValue);
46 }
47
48 _eventAttributeMap.put(attrName, attrValue);
49 }
50
51 public String getName()
52 {
53 return _eventName;
54 }
55
56 @SuppressWarnings("unchecked")
57 public <T extends Object> T getAttribute(String attrName)
58 {
59 Object ret = _eventAttributeMap.get(attrName);
60 if (ret != null)
61 {
62 return (T) ret;
63 }
64 return null;
65 }
66
67 @Override
68 public String toString()
69 {
70 StringBuilder sb = new StringBuilder();
71 sb.append("name:"+ _eventName).append("\n");
72 for(String key:_eventAttributeMap.keySet()){
73 sb.append(key).append(":").append(_eventAttributeMap.get(key)).append("\n");
74 }
75 return sb.toString();
76 }
77 }