1 package org.djutils.base;
2
3 import java.util.Objects;
4
5 /**
6 * A simple version of a mutable boolean with get() and set(boolean) functions.
7 * <p>
8 * Copyright (c) 2023-2025 Delft University of Technology, Jaffalaan 5, 2628 BX Delft, the Netherlands. All rights reserved. See
9 * for project information <a href="https://djutils.org" target="_blank"> https://djutils.org</a>. The DJUTILS project is
10 * distributed under a three-clause BSD-style license, which can be found at
11 * <a href="https://djutils.org/docs/license.html" target="_blank"> https://djutils.org/docs/license.html</a>.
12 * </p>
13 * @author <a href="https://www.tudelft.nl/averbraeck">Alexander Verbraeck</a>
14 */
15 public class MutableBoolean
16 {
17 /** the current value of the mutable boolean. */
18 private boolean value;
19
20 /**
21 * Initialize the mutable boolean with a value.
22 * @param value the initial value of the mutable boolean
23 */
24 public MutableBoolean(final boolean value)
25 {
26 set(value);
27 }
28
29 /**
30 * set the mutable boolean to a new value.
31 * @param newValue the new value of the mutable boolean
32 */
33 public void set(final boolean newValue)
34 {
35 this.value = newValue;
36 }
37
38 /**
39 * @return the current value of the mutable boolean
40 */
41 public boolean get()
42 {
43 return this.value;
44 }
45
46 /**
47 * Flip the value of modifiable boolean.
48 */
49 public void flip()
50 {
51 this.value = !this.value;
52 }
53
54 @Override
55 public int hashCode()
56 {
57 return Objects.hash(this.value);
58 }
59
60 @Override
61 @SuppressWarnings("checkstyle:needbraces")
62 public boolean equals(final Object obj)
63 {
64 if (this == obj)
65 return true;
66 if (obj == null)
67 return false;
68 if (getClass() != obj.getClass())
69 return false;
70 MutableBoolean other = (MutableBoolean) obj;
71 return this.value == other.value;
72 }
73
74 @Override
75 public String toString()
76 {
77 return "MutableBoolean [value=" + this.value + "]";
78 }
79
80 }