1 /*******************************************************************************
2 * Copyright (c) 2007, 2014 Massimiliano Ziccardi
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *******************************************************************************/
16 package it.jnrpe.events;
17
18 import java.util.HashMap;
19 import java.util.Map;
20
21 /**
22 * A basic, very simple, general purpose event.
23 *
24 * @author Massimiliano Ziccardi
25 */
26 class SimpleEvent implements IJNRPEEvent {
27 /**
28 * The log event associated with this object.
29 */
30 private LogEvent logEventType = null;
31
32 /**
33 * The parameters of the vent.
34 */
35 private Map<String, Object> parametersMap = new HashMap<String, Object>();
36
37 /**
38 * The custom event type (if it is not a log event).
39 */
40 private String customEventType = null;
41
42 /**
43 * Builds the {@link SimpleEvent} object with a LogEvent.
44 *
45 * @param evt
46 * The Log Event
47 * @param paramsAry
48 * The Log Event parameters
49 */
50 public SimpleEvent(final LogEvent evt, final Object[] paramsAry) {
51 if (evt == null) {
52 throw new NullPointerException("Event type can't be null");
53 }
54 logEventType = evt;
55 for (int i = 0; paramsAry != null && i < paramsAry.length; i += 2) {
56 parametersMap.put((String) paramsAry[i], paramsAry[i + 1]);
57 }
58 }
59
60 /**
61 * Builds the {@link SimpleEvent} object with a custom event type.
62 *
63 * @param custEvtType
64 * The Custom Event Type
65 * @param paramsAry
66 * The Event parameters
67 */
68 public SimpleEvent(final String custEvtType, final Object[] paramsAry) {
69 if (custEvtType == null) {
70 throw new NullPointerException("Event type can't be null");
71 }
72
73 customEventType = custEvtType;
74 for (int i = 0; paramsAry != null && i < paramsAry.length; i += 2) {
75 EventParam param = (EventParam) paramsAry[i];
76 parametersMap.put(param.getName(), param.getValue());
77 }
78 }
79
80 /**
81 * Returns the event name.
82 *
83 * @return The event name
84 */
85 public String getEventName() {
86 if (customEventType != null) {
87 return customEventType;
88 }
89 return logEventType.name();
90 }
91
92 /**
93 * Returns the LogEvent type (<code>null</code> if it is not a log event).
94 *
95 * @return The LogEvent type
96 */
97 LogEvent getLogEvent() {
98 return logEventType;
99 }
100
101 /**
102 * Returns the event parameters.
103 *
104 * @return The event parameters
105 */
106 public Map<String, Object> getEventParams() {
107 return parametersMap;
108 }
109
110 }