1 package org.djutils.serialization.serializers;
2
3 /**
4 * Container for an offset.
5 * <p>
6 * Copyright (c) 2019-2023 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved. <br>
7 * BSD-style license. See <a href="https://djutils.org/docs/current/djutils/licenses.html">DJUTILS License</a>.
8 * <p>
9 * @version $Revision$, $LastChangedDate$, by $Author$, <br>
10 * @author <a href="https://www.tudelft.nl/averbraeck">Alexander Verbraeck</a>
11 * @author <a href="https://www.tudelft.nl/staff/p.knoppers/">Peter Knoppers</a>
12 */
13 public class Pointer
14 {
15 /** Current value of the offset. */
16 private int offset;
17
18 /**
19 * Construct a new Pointer with specified initial offset.
20 * @param initialOffset int; the initial offset
21 */
22 Pointer(final int initialOffset)
23 {
24 this.offset = initialOffset;
25 }
26
27 /**
28 * Construct a new Pointer with offset 0.
29 */
30 public Pointer()
31 {
32 this(0);
33 }
34
35 /**
36 * Retrieve the offset.
37 * @return int; the offset
38 */
39 public int get()
40 {
41 return this.offset;
42 }
43
44 /**
45 * Retrieve the current value of offset and increment it. The returned value is the value <b>before</b> applying the
46 * increment.
47 * @param increment int; the amount by which the offset must be incremented
48 * @return int; the offset (before the increment was added)
49 */
50 public int getAndIncrement(final int increment)
51 {
52 int result = this.offset;
53 this.offset += increment;
54 return result;
55 }
56
57 /**
58 * Increment the offset.
59 * @param increment int; the amount by which the offset must be incremented
60 */
61 public void inc(final int increment)
62 {
63 this.offset += increment;
64 }
65
66 /** {@inheritDoc} */
67 @Override
68 public String toString()
69 {
70 return "Pointer [offset=" + this.offset + "]";
71 }
72
73 }