View Javadoc

1   /**
2    * Copyright (c) 2011, University of Konstanz, Distributed Systems Group
3    * All rights reserved.
4    * 
5    * Redistribution and use in source and binary forms, with or without
6    * modification, are permitted provided that the following conditions are met:
7    * * Redistributions of source code must retain the above copyright
8    * notice, this list of conditions and the following disclaimer.
9    * * Redistributions in binary form must reproduce the above copyright
10   * notice, this list of conditions and the following disclaimer in the
11   * documentation and/or other materials provided with the distribution.
12   * * Neither the name of the University of Konstanz nor the
13   * names of its contributors may be used to endorse or promote products
14   * derived from this software without specific prior written permission.
15   * 
16   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17   * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18   * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19   * DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
20   * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21   * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22   * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24   * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25   * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26   */
27  
28  package org.treetank.service.xml.diff;
29  
30  /**
31   * Container for transaction cursor depths in both the old and new revision.
32   * 
33   * @author Johannes Lichtenberger, University of Konstanz
34   * 
35   */
36  final class DepthCounter {
37      /** Depth in new revision. */
38      private transient int mNewDepth;
39  
40      /** Depth in old revision. */
41      private transient int mOldDepth;
42  
43      /**
44       * Constructor.
45       * 
46       * @param paramNewDepth
47       *            depth of transaction cursor in new revision
48       * @param paramOldDepth
49       *            depth of transaction cursor in old revision
50       */
51      DepthCounter(final int paramNewDepth, final int paramOldDepth) {
52          mNewDepth = paramNewDepth;
53          mOldDepth = paramOldDepth;
54      }
55  
56      /** Increment depth in new revision. */
57      void incrementNewDepth() {
58          mNewDepth++;
59      }
60  
61      /** Decrement depth in new revision. */
62      void decrementNewDepth() {
63          mNewDepth--;
64      }
65  
66      /** Increment depth in old revision. */
67      void incrementOldDepth() {
68          mOldDepth++;
69      }
70  
71      /** Decrement depth in old revision. */
72      void decrementOldDepth() {
73          mOldDepth--;
74      }
75  
76      /**
77       * Get depth in new revision.
78       * 
79       * @return depth in new revision
80       */
81      int getNewDepth() {
82          return mNewDepth;
83      }
84  
85      /**
86       * Get depth in old revision.
87       * 
88       * @return depth in old revision
89       */
90      int getOldDepth() {
91          return mOldDepth;
92      }
93  }