1 package org.djutils.base; 2 3 import java.util.Objects; 4 5 /** 6 * A simple version of a mutable byte with get() and set(byte) functions. 7 * <p> 8 * Copyright (c) 2023-2024 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 MutableByte 16 { 17 /** the current value of the mutable byte. */ 18 private byte value; 19 20 /** 21 * Initialize the mutable byte with a value. 22 * @param value byte; the initial value of the mutable byte 23 */ 24 public MutableByte(final byte value) 25 { 26 set(value); 27 } 28 29 /** 30 * set the mutable byte to a new value. 31 * @param newValue byte; the new value of the mutable byte 32 */ 33 public void set(final byte newValue) 34 { 35 this.value = newValue; 36 } 37 38 /** 39 * @return byte; the current value of the mutable byte 40 */ 41 public byte get() 42 { 43 return this.value; 44 } 45 46 /** 47 * Increment the modifiable byte with a value. 48 * @param increment byte; the value to increment the modifiable byte with 49 */ 50 public void inc(final byte increment) 51 { 52 this.value += increment; 53 } 54 55 /** 56 * Increment the modifiable byte with 1. 57 */ 58 public void inc() 59 { 60 inc((byte) 1); 61 } 62 63 /** 64 * Decrement the modifiable byte with a value. 65 * @param decrement byte; the value to decrement the modifiable byte with 66 */ 67 public void dec(final byte decrement) 68 { 69 this.value -= decrement; 70 } 71 72 /** 73 * Decrement the modifiable byte with 1. 74 */ 75 public void dec() 76 { 77 dec((byte) 1); 78 } 79 80 /** 81 * Increment the modifiable byte with a value. 82 * @param multiplier byte; the value to multiply the modifiable byte with 83 */ 84 public void mul(final byte multiplier) 85 { 86 this.value *= multiplier; 87 } 88 89 /** 90 * Divide the modifiable byte by a value. 91 * @param divisor byte; the value to divide the modifiable byte by 92 */ 93 public void div(final byte divisor) 94 { 95 this.value /= divisor; 96 } 97 98 @Override 99 public int hashCode() 100 { 101 return Objects.hash(this.value); 102 } 103 104 @Override 105 @SuppressWarnings("checkstyle:needbraces") 106 public boolean equals(final Object obj) 107 { 108 if (this == obj) 109 return true; 110 if (obj == null) 111 return false; 112 if (getClass() != obj.getClass()) 113 return false; 114 MutableByte other = (MutableByte) obj; 115 return this.value == other.value; 116 } 117 118 @Override 119 public String toString() 120 { 121 return "MutableByte [value=" + this.value + "]"; 122 } 123 124 }