1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.scxml;
19
20 /***
21 * A class representing an event. Specific event types have been
22 * defined in reference to SCXML.
23 *
24 */
25 public class TriggerEvent {
26
27 /***
28 * Constructor.
29 *
30 * @param name The event name
31 * @param type The event type
32 * @param payload The event payload
33 */
34 public TriggerEvent(final String name, final int type,
35 final Object payload) {
36 super();
37 this.name = name;
38 this.type = type;
39 this.payload = payload;
40 }
41
42 /***
43 * Constructor.
44 *
45 * @param name The event name
46 * @param type The event type
47 */
48 public TriggerEvent(final String name, final int type) {
49 this(name, type, null);
50 }
51
52 /***
53 * <code>CALL_EVENT</code>.
54 */
55 public static final int CALL_EVENT = 1;
56
57 /***
58 * <code>CHANGE_EVENT</code>.
59 *
60 */
61 public static final int CHANGE_EVENT = 2;
62
63 /***
64 * <code>SIGNAL_EVENT</code>.
65 *
66 */
67 public static final int SIGNAL_EVENT = 3;
68
69 /***
70 * <code>TIME_EVENT</code>.
71 *
72 */
73 public static final int TIME_EVENT = 4;
74
75 /***
76 * <code>ERROR_EVENT</code>.
77 *
78 */
79 public static final int ERROR_EVENT = 5;
80
81 /***
82 * The event name.
83 *
84 */
85 private String name;
86
87 /***
88 * The event type.
89 *
90 */
91 private int type;
92
93 /***
94 * The event payload.
95 *
96 */
97 private Object payload;
98
99 /***
100 * @return Returns the name.
101 */
102 public String getName() {
103 return name;
104 }
105
106 /***
107 * @return Returns the payload.
108 */
109 public Object getPayload() {
110 return payload;
111 }
112
113 /***
114 * @return Returns the type.
115 */
116 public int getType() {
117 return type;
118 }
119
120 /***
121 * Define an equals operator for TriggerEvent.
122 *
123 * @see java.lang.Object#equals(java.lang.Object)
124 */
125 public boolean equals(final Object obj) {
126 if (obj instanceof TriggerEvent) {
127 TriggerEvent te2 = (TriggerEvent) obj;
128 if (type == te2.type && name.equals(te2.name)
129 && ((payload == null && te2.payload == null)
130 || (payload != null && payload.equals(te2.payload)))) {
131 return true;
132 }
133 }
134 return false;
135 }
136
137 /***
138 * Returns a string representation of this TriggerEvent object.
139 *
140 * @see java.lang.Object#toString()
141 */
142 public String toString() {
143 StringBuffer buf = new StringBuffer("TriggerEvent{name=");
144 buf.append(name).append(",type=").append(type);
145 if (payload != null) {
146 buf.append(",payload=").append(payload.toString());
147 }
148 buf.append("}");
149 return String.valueOf(buf);
150 }
151
152 /***
153 * Returns the hash code for this TriggerEvent object.
154 *
155 * @see java.lang.Object#hashCode()
156 */
157 public int hashCode() {
158 return String.valueOf(this).hashCode();
159 }
160
161 }
162