Move to kernel style SPDX license identifiers
[lttng-ust.git] / liblttng-ust-java-agent / java / lttng-ust-agent-common / org / lttng / ust / agent / session / EventRule.java
1 /*
2 * SPDX-License-Identifier: LGPL-2.1-only
3 *
4 * Copyright (C) 2015 EfficiOS Inc.
5 * Copyright (C) 2015 Alexandre Montplaisir <alexmonthy@efficios.com>
6 */
7
8 package org.lttng.ust.agent.session;
9
10 /**
11 * Event filtering rule present in a tracing session.
12 *
13 * It typically comes from a "lttng enable-event" command, and contains a
14 * domain, event name, log level and filter string.
15 *
16 * @author Alexandre Montplaisir
17 */
18 public class EventRule {
19
20 private final String eventName;
21 private final LogLevelSelector logLevelSelector;
22 private final String filterString;
23
24 /**
25 * Constructor.
26 *
27 * @param eventName
28 * The name of the tracepoint
29 * @param logLevelSelector
30 * The log level of the event rule
31 * @param filterString
32 * The filtering string. May be null if there is no extra filter.
33 */
34 public EventRule(String eventName, LogLevelSelector logLevelSelector, String filterString) {
35 this.eventName = eventName;
36 this.logLevelSelector = logLevelSelector;
37 this.filterString = filterString;
38 }
39
40 /**
41 * Get the event name of this rule.
42 *
43 * @return The event name
44 */
45 public String getEventName() {
46 return eventName;
47 }
48
49 /**
50 * Get the log level filter configuration of the rule.
51 *
52 * @return The log level selector
53 */
54 public LogLevelSelector getLogLevelSelector() {
55 return logLevelSelector;
56 }
57
58 /**
59 * Get the filter string associated with this rule.
60 *
61 * @return The filter string, may be null for no filter string.
62 */
63 public String getFilterString() {
64 return filterString;
65 }
66
67 // ------------------------------------------------------------------------
68 // Methods from Object
69 // ------------------------------------------------------------------------
70
71 @Override
72 public int hashCode() {
73 final int prime = 31;
74 int result = 1;
75 result = prime * result + ((eventName == null) ? 0 : eventName.hashCode());
76 result = prime * result + ((filterString == null) ? 0 : filterString.hashCode());
77 result = prime * result + ((logLevelSelector == null) ? 0 : logLevelSelector.hashCode());
78 return result;
79 }
80
81 @Override
82 public boolean equals(Object obj) {
83 if (this == obj) {
84 return true;
85 }
86 if (obj == null) {
87 return false;
88 }
89 if (getClass() != obj.getClass()) {
90 return false;
91 }
92 EventRule other = (EventRule) obj;
93
94 if (eventName == null) {
95 if (other.eventName != null) {
96 return false;
97 }
98 } else if (!eventName.equals(other.eventName)) {
99 return false;
100 }
101 /* else, continue */
102
103 if (filterString == null) {
104 if (other.filterString != null) {
105 return false;
106 }
107 } else if (!filterString.equals(other.filterString)) {
108 return false;
109 }
110 /* else, continue */
111
112 if (logLevelSelector == null) {
113 if (other.logLevelSelector != null) {
114 return false;
115 }
116 } else if (!logLevelSelector.equals(other.logLevelSelector)) {
117 return false;
118 }
119 /* else, continue */
120
121 return true;
122 }
123
124 @Override
125 public String toString() {
126 return "Event name = " + getEventName() +
127 ", Log level selector = (" + getLogLevelSelector().toString() + ")" +
128 ", Filter string = " + getFilterString();
129 }
130 }
This page took 0.031331 seconds and 4 git commands to generate.