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