View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *     http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.apache.commons.scxml;
18  
19  /***
20   * A class representing an event. Specific event types have been
21   * defined in reference to SCXML.
22   *
23   */
24  public class TriggerEvent {
25  
26      /***
27       * Constructor.
28       *
29       * @param name The event name
30       * @param type The event type
31       * @param payload The event payload
32       */
33      public TriggerEvent(final String name, final int type,
34              final Object payload) {
35          super();
36          this.name = name;
37          this.type = type;
38          this.payload = payload;
39      }
40  
41      /***
42       * Constructor.
43       *
44       * @param name The event name
45       * @param type The event type
46       */
47      public TriggerEvent(final String name, final int type) {
48          this(name, type, null);
49      }
50  
51      /***
52       * <code>CALL_EVENT</code>.
53       */
54      public static final int CALL_EVENT = 1;
55  
56      /***
57       * <code>CHANGE_EVENT</code>.
58       *
59       */
60      public static final int CHANGE_EVENT = 2;
61  
62      /***
63       * <code>SIGNAL_EVENT</code>.
64       *
65       */
66      public static final int SIGNAL_EVENT = 3;
67  
68      /***
69       * <code>TIME_EVENT</code>.
70       *
71       */
72      public static final int TIME_EVENT = 4;
73  
74      /***
75       * <code>ERROR_EVENT</code>.
76       *
77       */
78      public static final int ERROR_EVENT = 5;
79  
80      /***
81       * The event name.
82       *
83       */
84      private String name;
85  
86      /***
87       * The event type.
88       *
89       */
90      private int type;
91  
92      /***
93       * The event payload.
94       *
95       */
96      private Object payload;
97  
98      /***
99       * @return Returns the name.
100      */
101     public String getName() {
102         return name;
103     }
104 
105     /***
106      * @return Returns the payload.
107      */
108     public Object getPayload() {
109         return payload;
110     }
111 
112     /***
113      * @return Returns the type.
114      */
115     public int getType() {
116         return type;
117     }
118 
119     /***
120      * Define an equals operator for TriggerEvent.
121      *
122      * @see java.lang.Object#equals(java.lang.Object)
123      */
124     public boolean equals(final Object obj) {
125         if (obj instanceof TriggerEvent) {
126             TriggerEvent te2 = (TriggerEvent) obj;
127             if (type == te2.type && name.equals(te2.name)
128                 && ((payload == null && te2.payload == null)
129                      || (payload != null && payload.equals(te2.payload)))) {
130                 return true;
131             }
132         }
133         return false;
134     }
135 
136     /***
137      * Returns a string representation of this TriggerEvent object.
138      *
139      * @see java.lang.Object#toString()
140      */
141     public String toString() {
142         StringBuffer buf = new StringBuffer("TriggerEvent{name=");
143         buf.append(name).append(",type=").append(type);
144         if (payload != null) {
145             buf.append(",payload=").append(payload.toString());
146         }
147         buf.append("}");
148         return String.valueOf(buf);
149     }
150 
151     /***
152      * Returns the hash code for this TriggerEvent object.
153      *
154      * @see java.lang.Object#hashCode()
155      */
156     public int hashCode() {
157         return String.valueOf(this).hashCode();
158     }
159 
160 }
161