1 package org.metricshub.jawk.jrt;
2
3 /*-
4 * ╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲
5 * Jawk
6 * ჻჻჻჻჻჻
7 * Copyright (C) 2006 - 2025 MetricsHub
8 * ჻჻჻჻჻჻
9 * This program is free software: you can redistribute it and/or modify
10 * it under the terms of the GNU Lesser General Public License as
11 * published by the Free Software Foundation, either version 3 of the
12 * License, or (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Lesser Public License for more details.
18 *
19 * You should have received a copy of the GNU General Lesser Public
20 * License along with this program. If not, see
21 * <http://www.gnu.org/licenses/lgpl-3.0.html>.
22 * ╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱
23 */
24
25 /**
26 * Tracks whether we are within a range defined by a pair of condition:
27 * <ul>
28 * <li>startCondition
29 * <li>endCondition
30 * </ul>
31 */
32 public class ConditionPair {
33
34 private boolean within = false;
35
36 /**
37 * <p>
38 * Constructor for ConditionPair.
39 * </p>
40 */
41 public ConditionPair() {}
42
43 /**
44 * Update the status of the condition pair according to
45 * whether the begin and end conditions match or not
46 *
47 * @param startMatches True if the start condition is true, which means
48 * we're entering the range
49 * @param endMatches True if the end condition is true, which means
50 * we're leaving the range
51 * @return wether we're within the range
52 */
53 public boolean update(boolean startMatches, boolean endMatches) {
54 if (startMatches) {
55 within = true;
56 }
57
58 boolean result = within;
59
60 if (endMatches) {
61 within = false;
62 }
63
64 return result;
65 }
66 }